Meta tags:
Headings (most frequently used words):
the, 2012, and, interview, november, 2015, friday, tuesday, thursday, python, pypy, future, software, call, for, lost, in, jit, idea, actual, aftermath, post, mortem, what, now, monday, 16, march, 20, 2013, december, july, 12, april, 19, february, 14, followers, about, me, blog, archive, api, road, into, hippyvm, goes, to, combinator, fails, questions, real, engineering, why, am, no, longer, voting, member, of, foundation, new, open, source, economy, model, global, immigration, reform, its, challenges,
Text of the page (most frequently used words):
the (186), and (88), that (67), for (56), you (49), this (41), not (39), with (38), have (33), pypy (32), but (32), can (30), are (29), like (24), all (24), there (21), don (20), people (20), one (19), would (19), which (18), open (18), step (18), more (17), #source (17), what (16), very (16), some (15), will (15), problem (15), about (14), work (14), good (14), from (14), software (14), other (12), was (12), time (12), enough (12), large (12), how (12), most (12), get (12), know (12), think (11), much (11), than (11), does (11), why (11), lot (11), model (11), interview (11), python (10), into (10), maciej (10), fijalkowski (10), also (10), where (10), they (10), way (10), however (10), make (10), these (10), only (9), want (9), any (9), who (9), api (8), because (8), far (8), cpython (8), code (8), really (8), small (8), has (8), your (8), need (8), few (8), company (8), now (8), better (8), posted (7), decisions (7), memory (7), well (7), out (7), companies (7), project (7), board (7), space (7), 2012 (6), future (6), fijal (6), both (6), might (6), solution (6), call (6), job (6), completely (6), place (6), working (6), value (6), important (6), their (6), sort (6), just (6), find (6), real (6), new (6), voting (6), interviews (6), days (6), funding (6), simple (5), november (5), comments (5), did (5), post (5), partly (5), slow (5), using (5), jit (5), running (5), each (5), should (5), usually (5), been (5), whole (5), actually (5), various (5), part (5), makes (5), questions (5), individuals (5), money (5), let (5), making (5), either (5), psf (5), body (5), actual (5), details (5), first (5), hippyvm (5), php (5), compiler (5), cheers (4), fit (4), stuff (4), performance (4), runtime (4), were (4), our (4), implementation (4), addressed (4), example (4), language (4), gcc (4), many (4), examples (4), while (4), potential (4), its (4), end (4), even (4), pretty (4), visa (4), passport (4), technology (4), typically (4), create (4), brings (4), mostly (4), after (4), trying (4), donate (4), kickstarter (4), everyone (4), possible (4), government (4), believe (4), able (4), bit (4), without (4), etc (4), those (4), take (4), over (4), google (4), things (4), support (4), understand (4), members (4), europe (4), generally (4), parliment (4), budget (4), idea (4), technical (4), engineering (4), ways (4), done (4), classic (4), answer (4), day (4), infrastructure (4), hhvm (4), business (4), willing (4), combinator (4), legacy (4), july (3), december (3), 2013 (3), 2015 (3), blog (3), home (3), here (3), simply (3), quite (3), fast (3), combination (3), rpython (3), optimizing (3), having (3), lots (3), too (3), least (3), next (3), question (3), help (3), often (3), piece (3), once (3), impact (3), start (3), decision (3), long (3), living (3), didn (3), them (3), change (3), send (3), single (3), big (3), internet (3), provide (3), means (3), within (3), happen (3), corporations (3), attached (3), such (3), system (3), say (3), opinion (3), sense (3), come (3), comes (3), relatively (3), projects (3), random (3), hard (3), faster (3), employed (3), cost (3), fraction (3), same (3), dynamic (3), platform (3), commonly (3), down (3), happy (3), power (3), smart (3), touch (3), parts (3), chat (3), research (3), note (3), formal (3), implementing (3), infinite (3), around (3), finite (3), languages (3), since (3), person (3), kind (3), quirks (3), kinds (3), photographic (3), right (3), being (3), bringing (3), got (3), team (3), went (3), ended (3), two (3), decided (3), through (3), baroquesoftware (3), commercial (3), further (3), powered (2), february (2), april (2), march (2), road (2), view (2), posts (2), worth (2), mention (2), list (2), non (2), doing (2), always (2), case (2), fact (2), level (2), usual (2), manpower (2), interpreter (2), design (2), tracing (2), true (2), complex (2), own (2), invest (2), caused (2), look (2), hand (2), optimize (2), group (2), tests (2), uses (2), reproducible (2), definitely (2), compilation (2), reasons (2), less (2), concern (2), developers (2), program (2), fairly (2), turn (2), tuesday (2), yet (2), immigration (2), every (2), confused (2), run (2), read (2), contributions (2), stay (2), state (2), above (2), high (2), positive (2), ecosystem (2), thursday (2), answers (2), startups (2), fund (2), strings (2), heavily (2), doubt (2), vcs (2), benefits (2), wrong (2), sound (2), must (2), cap (2), before (2), achieve (2), amount (2), probably (2), gittip (2), cannot (2), based (2), efficient (2), vague (2), reasonable (2), economy (2), main (2), regards (2), donations (2), improvements (2), point (2), explain (2), consulting (2), under (2), jobs (2), live (2), half (2), tools (2), experience (2), require (2), along (2), putting (2), points (2), startup (2), costs (2), platforms (2), building (2), reading (2), seriously (2), perfectly (2), vote (2), mission (2), member (2), almost (2), difference (2), behind (2), among (2), then (2), friday (2), comment (2), hiring (2), cover (2), focus (2), vaguely (2), happening (2), mail (2), interesting (2), correct (2), covers (2), combinations (2), revolves (2), programming (2), style (2), corresponds (2), customer (2), backend (2), messages (2), between (2), talk (2), development (2), works (2), replaceable (2), third (2), knowledge (2), something (2), hire (2), until (2), questionnaire (2), unusual (2), whether (2), rationale (2), second (2), already (2), essentially (2), informal (2), decent (2), month (2), values (2), still (2), goes (2), seem (2), different (2), started (2), related (2), basic (2), revenue (2), ideas (2), beginning (2), available (2), free (2), sure (2), backed (2), stable (2), world (2), san (2), francisco (2), told (2), sets (2), use (2), tangible (2), years (2), paul (2), later (2), compilers (2), old (2), framework (2), sufficiently (2), tickets (2), had (2), keep (2), apply (2), weekend (2), com (2), contract (2), growing (2), supporting (2), applications (2), calling (2), implemented (2), cffi (2), success (2), used (2), lost (2), theme, blogger, january, june, october, 2011, archive, complete, profile, followers, subscribe, atom, older, interfacing, relevant, consider, exhaustive, edit, thanks, bearing, influenced, accusations, dishonest, hope, clarified, weak, spots, page, similar, spend, unlike, solve, unoptimizing, medium, efforts, invested, lack, proceed, rapidly, again, issues, metalevel, takes, issue, current, edge, cases, programs, megamorphic, sites, test, suite, expect, eventually, warmup, higher, relative, immaturity, compared, former, emit, written, worse, operations, longs, slower, unable, effectively, generated, translator, connected, fundamental, situation, causes, general, inferior, representative, difficult, exammple, ideally, perfect, unit, executed, short, scripts, following, never, scientifically, measured, reports, outrageous, usage, cryptic, app, 300m, reported, measuring, benchmarks, providing, haunting, separate, effort, errors, confusing, users, type, inference, obviously, biased, progressing, areas, lagging, promises, hoped, arbitrary, order, challenges, madness, pointless, paperwork, failing, detached, reality, postcards, border, officer, suspicious, everyday, seek, employment, mcdonalds, track, record, bitbucket, exact, matter, country, stamp, clues, nomad, changed, camels, fossil, fuel, burning, jets, connection, hundreds, meters, physical, location, loose, scraps, sign, albeit, cheaper, stacks, ends, young, dent, universe, plumber, fixing, pipes, global, reform, yours, leaving, exit, beyond, event, horizon, fear, love, proven, silly, requirement, receipent, reside, selfish, rules, hollywood, ish, privileged, struggling, personally, could, earn, major, shortcoming, democratic, agency, intermediate, panel, decide, tell, words, admin, deliver, feature, shades, gray, postulates, economical, creates, viable, low, overheads, recent, additions, table, niches, although, particularly, talking, lifestyle, gather, sellable, reviews, documentation, predicting, near, continue, contributing, back, managed, generate, slightly, 000, optimization, lucky, considering, dedicate, roughly, pieces, trouble, includes, noone, else, cares, buildbot, maintenance, release, management, json, cheap, numpy, handful, maintain, variety, professions, corporate, interests, precedence, shitty, scramble, armin, rigo, operating, funds, mozilla, trace, jaeger, spider, monkey, three, sentence, hesitation, vms, said, alex, aside, concentrate, today, factor, data, provider, evidence, creation, plummeting, mentioned, factors, cloud, hosting, moore, law, ubiquitous, incredibly, self, serving, effective, beneficial, prefer, may, stop, disclaimer, bad, pinpoint, policies, feel, finding, manner, european, though, known, emeritus, wait, everything, crucial, paper, ever, happens, broadening, powers, water, united, states, direction, east, key, differencies, approach, democracy, mundane, typical, scenario, agile, hence, suited, quick, voted, instead, approved, longer, foundation, sidenote, challenging, problems, contact, info, findable, courtesy, summarize, conduct, resemble, see, maybe, human, ability, explore, systems, highly, ignorant, topic, please, papers, environment, presented, optimized, optimizer, constrain, progress, task, writing, tree, walking, algorithm, correctly, trivial, considered, number, constraint, constraints, explorable, concentrating, quickly, navigate, solved, rest, punch, cards, assembler, purely, mechanical, follows, engineer, especially, participate, steps, deal, primary, skill, moving, previous, wants, terms, bunch, overview, respond, architecture, choice, ajax, logic, http, computers, browsers, peers, sidestep, sequence, looks, categorized, groups, opinions, dismiss, applicable, imagine, treated, gears, extent, fourth, correlation, causation, thing, exist, uniform, vacuum, candidates, offers, win, last, involves, asking, defined, solutions, repeat, stressful, conditions, tired, ask, tips, tricks, handling, magic, sql, easily, googled, spent, favours, obscure, whatsoever, crazy, useless, impress, interviewer, put, bugs, section, manual, fortune, cookie, terminal, join, args, popular, entrenched, github, conferences, boils, establish, match, choices, tend, exploring, common, ground, week, permanent, fill, personal, hint, replaced, gear, tends, absent, pure, tech, corps, departments, banks, defence, contractors, four, strategies, exploration, bigger, others, welcome, little, prototype, year, mediawiki, significant, speedup, zend, counts, guess, photo, tied, facebook, seems, deter, area, outcompete, life, workloads, onto, improving, percentage, difficulties, stall, mortem, entity, during, coldfusion, off, missing, attention, somehow, unsurprisingly, sprint, lars, bak, contenders, corpo, oracle, microsoft, sponsoring, despite, mean, ruby, build, aftermath, sent, recognize, negative, months, bring, results, required, anything, buchheit, asked, jokingly, cool, guys, overrepresented, become, blatantly, obvious, term, vision, americans, sights, kid, block, cranking, showable, walked, expertise, widely, deployed, selling, optimizers, competition, thought, close, gets, submit, when, invitation, residence, south, africa, airport, turned, left, tries, admit, information, allowed, transfer, fortunately, 21st, century, calls, dhls, landed, scheduled, saturday, detained, sfo, flies, carrying, clothes, laptop, sleeping, bag, nobody, story, disaster, applied, haphazardly, summer, batch, expecting, reason, precisely, graham, pycon, keynote, mentioning, readers, developed, called, suitable, check, born, suppose, rounds, fails, best, preferably, regarding, bid, primarily, partners, implement, speed, completeness, pool, together, product, mit, license, structured, address, discussed, promise, codebase, structure, integrate, subset, labelling, forever, beta, incomplete, historically, sore, originally, loved, hated, ahead, supported, stunning, becoming, pypi, package, 5mln, downloads, ctypes, owes, ease, integration, existing, posix, apis, fortran, directly, cython, commercially, library, monday,
Text of the page (random words):
developed a language and a framework called rpython that s suitable for implementing fast dynamic languages so we decided to check if it works for php which is how hippyvm was born well i thought we have a framework that s as close as it gets this days to sufficiently smart compiler so i decided to submit why not when we got the y combinator invitation i was in europe at the time out from my usual place of residence south africa we got tickets went to the airport and it turned out my visa for the us had been left at home note us tries not to admit the fact that they keep visa information in any sort of system so if you get a new passport you are either allowed to use your old passport or you need to apply for a new visa no way to transfer to a new passport oh well fortunately for the most part we live in the 21st century and a few calls dhls and tickets later i landed in san francisco for a weekend with the interview scheduled for saturday that ended up in 3h of being detained at sfo since nobody flies to sf for a weekend carrying two sets of clothes a laptop and a sleeping bag the idea the idea was simple we have enough expertise in compilers to do hard things and php is the most widely deployed dynamic language also people are selling various php optimizers for money that don t really do much we can do better at the time hhvm was really not working very well and there was no other competition the actual interview we actually ended up having two sets of interviews which i think is pretty unusual the first team was probably very confused so they sent us down to the second one the positive part of the interview was that people at least those that use python generally recognize our work the negative part was that 3 months is by far not enough to bring any tangible results in the compiler world we required 1 2 years of work to provide anything tangible and that does not fit into their model paul buchheit asked us half jokingly why all the cool compiler guys are from europe which is as far as i know not true but europe is overrepresented i didn t have an answer at the time but later that day it become blatantly obvious that it s all about long term vision compilers take more time than americans typically have in their sights pypy is 10 years old and it s the new kid on the block we were told we should be home cranking code until we can get to something showable i walked out from the interview pretty sure we would not get in the aftermath unsurprisingly we didn t get in we ended up having a very good one day pypy sprint in san francisco we do not fit in the model now this brings me to an interesting question which is what lars bak told me there is no money in infrastructure like programming languages very few people are willing to invest in such companies and the contenders these days are all open source without a decent funding model or backed by a large corpo oracle google microsoft or both i have no idea how to go about sponsoring research like pypy or building a business model around it despite bringing a lot of value to the system and i don t mean just pypy also cpython ruby etc there does not seem to be a good way to build a business model there are good reasons why you want your infrastructure to be either open source or backed by a large stable entity and i m very much for that the world is a better place than it was during the coldfusion days and we re all better off however we re missing a business model where infrastructure people can get attention from vcs and a revenue model that somehow corresponds to the value they re bringing post mortem hippyvm got a little funding at the beginning to get us to some sort of prototype within a bit over than a year to a point where we were able to run mediawiki with a significant speedup over zend php however the hhvm team these days counts between 30 60 people that s what i can guess from the photo and is available for free sure it s tied to facebook but it seems to be enough to deter any business in this area we would not be able to outcompete hhvm by enough usually enough is 2x faster on real life workloads with a fraction of team and a fraction of their funding so we went onto improving pypy we did achieve most of what hhvm does at a small percentage of the cost but the difficulties in funding generally caused the hippyvm project to come to a stall what now i do consulting most of it is pypy related so i m pretty happy however i m still trying to find a model where basic research and infrastructure work can provide revenue which is related to the amount of value it s bringing to companies ideas welcome posted by maciej fijalkowski at 3 23 am 13 comments tuesday november 5 2013 interview questions and real software engineering note this post started as an exploration of interview questions however the problem space is much bigger than that i m trying to really understand what software engineering is and why some people are much better at it than others as far as my experience goes there seem to be four kinds of hiring strategies employed by various companies they often come in combinations with different values attached to different parts first comes the classic hr questionnaire that you have to fill out and or answer in person it s about personal values why you want to work for a company hint because i have no money is not the right answer etc this can essentially be replaced by a single question are you happy being a replaceable gear tends to be mostly absent these days in pure tech companies but is still employed by large corps with it departments e g banks or defence contractors second comes the i know you already kind very popular among startups and companies entrenched in open source they essentially view your work on github and or know you already from conferences and it all boils down to an informal chat to establish whether you are the right match if there is a technical interview it s very informal and mostly revolves around technology choices and the rationale behind them these companies also tend to have a decent way of exploring the common ground in the first month or week so the decision to hire is not permanent third is the classic knowledge based questionnaire they ll ask you unusual tips tricks in the technology that you know or you don t like handling of args in python or whether can you do some magic join in sql usually these answers can easily be googled and while the rationale is if you know all these quirks you have spent a lot of time on this platform it heavily favours people like me with a photographic memory for obscure details this photographic memory usually brings no value whatsoever i know a lot of crazy details about all kinds of platforms that are completely useless if you want to impress the potential interviewer put the bugs section from a random manual into your fortune cookie each time you start a terminal last but not least is the classic google style interview it involves asking you questions like this one you have a well defined problem and you have to find the right solution there are a few good solutions but only one that s really correct the problem space is very finite repeat for the whole day in stressful conditions until you re tired and way after that so once we have categorized these groups let s have some opinions first i would like to dismiss the classic hr one as not applicable to the software development i know i can t imagine a good project where people are treated as replaceable gears the third kind and to some extent the fourth kind have some sort of correlation to real knowledge but there is definitely no causation the only thing you can say is that a person who does not know a platform at all will not be able to answer questions about its quirks we have something to work with but the problem with it is that your company does not exist in a perfectly uniform vacuum if everyone does these kinds of interviews the candidates who know these quirks will have a lot more job offers than those who don t at the end of the day if you re the only company who does not do that you can hire all the good people who don t have photographic memory and you win now let s sidestep a bit and talk about how software development really works in my opinion the sequence looks vaguely like this step 0 customer problem i want to send messages to my peers step 1 technical problem we need to send messages between computers with browsers step 2 technology and architecture choice ajax program js logic python in the backend http step 3 implementation overview this is the backend api js has to respond to this step 4 actual implementation bunch of code usually a lot where each step corresponds to moving from the previous state to the next eg step 1 means understand what customer wants and explain it in technical terms now as a person working for a company as a software engineer especially a large company you might not participate in steps 1 or 2 working for a startup or a small company will require you to deal with it much more so the interview style where you just chat makes a lot of sense after all this will be your primary skill the problem with the rest is that step 3 is the hard step these days since we don t code on punch cards in assembler however most interviews will focus on step 4 which is not quite but almost purely mechanical in my opinion the difference is as follows step 4 covers a problem space within constraints that make it finite and explorable an interview concentrating on this will cover how quickly you can navigate a finite space i believe this step can be solved completely by better programming languages step 3 covers a space which can be considered infinite the number of possible combinations is just too large most of actual software engineering revolves around i need to find a simple solution for this formal but vague problem how do i constraint my infinite space so that it s possible note that even in a completely formal environment like implementing pypy which is a python interpreter step 3 is far more important than step 4 you re presented with a piece of code to be optimized you need to find an optimizer model that s simple enough and correct to optimize this piece of code while the problem is formal the potential space is infinite so you need to constrain it in various ways first before making any real progress once you have done that the actual task of e g writing a tree walking algorithm correctly is trivial now to summarize i don t really know how to conduct technical interviews that cover the most important parts of software engineering i think a lot of interviews focus on the wrong things and only vaguely resemble what is actually happening that s why we generally go with let s have a chat and we ll see as we go along but maybe there are better ways i don t think enough research has been done on the human ability to explore complex systems but on the other hand i might just be highly ignorant of that topic please mail me interesting papers if you know some on a sidenote we re hiring if you want to work with smart people on challenging problems get in touch contact info findable courtesy of google cheers maciej fijalkowski posted by maciej fijalkowski at 12 25 pm 1 comment friday december 7 2012 why i am no longer a voting member of the python software foundation i am from europe it s a place behind a big body of water from the united states generally in the direction of the east there are few key differencies among other things approach to democracy we would typically have a large body of people making all important decisions like a parliment and a small body of people making more mundane decisions like a government in a typical scenario the government has seriously less power than the parliment however it s also much more agile hence more suited for making quick decisions a good example is budget the government would create a budget that would then be voted by the parliment as far as i understand the idea is to not vote all the details but instead create a budget that will be approved by the parliment the psf is almost like this there is a large body of people psf members and a small body of people psf board there is one crucial difference the psf members have power only on paper the only voting that ever happens are for either broadening the powers of the board voting for the board or for voting in new members the board make all the actual decisions this is not to say that the board makes bad decisions i seriously cannot pinpoint a single time where it did happen i m very happy with the board and with it s policies however i don t feel i have any voting power i perfectly understand why it is that way the psf members is a big group and even finding a way for everyone to vote in a reasonable manner would be a mission as a european i would think it s a mission worth trying though but as of now i would stay as a non voting member also known as emeritus and wait for the board to make a decision on everything cheers fijal posted by maciej fijalkowski at 1 09 am no comments thursday july 12 2012 call for a new open source economy model disclaimer this post is incredibly self serving it only makes sense if you believe that open source is a cost effective way of building software and if you believe my contributions to the pypy project are beneficial to the ecosystem as a whole if you would prefer me to go and get a real job you may as well stop reading here there is a lot of evidence that startup creation costs are plummeting the most commonly mentioned factors are the cloud which brings down hosting costs moore s law which does the same ubiquitous internet platforms and open source putting all the other things aside i would like to concentrate on open source today not because it s the most important factor i don t have enough data to support that but because i m an open source platform provider working on pypy open source is cost efficient as alex points out pypy is operating on a fraction of the funds and manpower that google is putting into v8 or mozilla into trace jaeger spider monkey yet you can list all three projects in the same sentence without hesitation you would call them optimizing dynamic language vms the same can be said about projects like gcc open source is also people there is typically one or a handful of individuals who maintain the project those people are employed in a variety of professions in my experience they either work on their own or for corporations and corporate interests often take precedence over open source software have shitty jobs which don t actually require you to do a lot of work or scramble along like me or armin rigo let me step back a bit and explain what do i do for a living i work on numpy which has managed to generate slightly above 40 000 in donations so far i do consulting about optimization under pypy i look for other jobs and do random stuff i think i ve been relatively ...
|