21 ms·
Technical interview methods pale in comparison to playing Factorio with someone
- omginternets 6y agoIt seems like Factorio itself doesn't matter here, and that any programming language can be used instead. So really, this article is saying "live, self-directed coding is the best technical interview", which isn't very original.
- deleted 6y ago[deleted]
- tstrimple 6y agoThere may be an anxiety factor which negatively impacts live coding interviews which wouldn't manifest as often in demonstrating similar skillsets in a game. It would be interesting to see how much of a difference something like this makes.
- omginternets 6y agoYeah ... maybe... There might also be anxiety around playing a game you don’t know well, which wouldn’t manifest in a language you were familiar with. Honestly, this article is pretty superficial.
- Rule35 6y agoPerformance anxiety (or the lack thereof) is a job skill.
- kilbuz 6y agoHow well does Factorio performance correlate with job performance over different periods of time and different employee backgrounds? I don't see this mentioned in the article.
- cloogshicer 6y agoYour comment assumes that both 'Factorio performance' and 'job performance' are measurable. That is questionable, in my opinion.
- InitialLastName 6y agoIf someone is going to argue that Factorio is a useful tool for technical interviews, it's only reasonable to expect that they will present a visible correlation between in-game performance and real-life performance. Otherwise, how is this anything other than a novel just-so story?
- cloogshicer 6y agoHow do you show correlation of two concepts that are inherently not measurable? Do only statements that are measurable have value in your opinion?
- InitialLastName 6y agoEven if something isn't measurable, you can provide anecdotal evidence that a correlation exists. If you're going to say "Methods X and Y pale in comparison to Method Z for evaluating W" and expect anyone to draw conclusions from it, one would hope for even just a little bit of evidence.
- cloogshicer 6y agoOk, that's fair, I agree.
- francisduvivier 6y agoHow can this not have a huge bias in favor of gamers? Might work for them because that's the kind of culture fit they need, but I doesn't look all that generalizable for other companies.
- Toutouxc 6y agoYou only have to understand how to move your character using WASD, the concept of Inventory and pointing at different places on the ground with a cursor. Failing to understand this simple set of rules would disqualify a person from most jobs ever invented.
- me_me_me 6y agoBut its biased against people who can't use mouse and keyboard :) But on serious note, People who played the game could just hide the fact that they know the game mechanics. And act like they are catching up faster then normal person would.
- boomfus 6y agoIsn't that a common criticism of every interview style? Whether it's whiteboard questions, take-home projects, soft skill questions, lots of people will lie and say they've never seen the question before.
- plank_time 6y agoAt this point, you would be foolish to admit that you’ve seen a question before. Everyone is faking it, and if you be honest, you’ll just keep getting harder and harder questions from the interviewer. The only time you should not fake it is if you’ve been asked that question at the same company. I think they would keep track of that and if you didn’t mention it, they would look deceitful on your part if they catch you.
- stale2002 6y ago
- S_A_P 6y agoI don't know that I agree. I don't really play games so I would be a bit lost here, but if you needed me to design and start coding a large distributed system I would happily oblige while he watched...
- shawnz 6y agoIsn't a factory a large distributed system? What's the difference between this and a visual programming language like LabVIEW?
- S_A_P 6y agoIn the abstract sure, but in the concrete and in the way I think through problems its just not the same.
- EdwardDiego 6y agoWell, LabView doesn't have locals who get pissed off by your pollution, for one.
- inetknght 6y agoIn Factorio you can turn off the locals. But turning off the locals for your factory is probably not what you want to do.
- tyingq 6y agoI don't think there is any silver bullet way to do technical interviews. The idea that you can extrapolate a few hours of exposure to a person into a reliable predictor of future performance is somewhat silly to me. Any technique you use is going to be biased for people that are good at "X", where "X" is a tiny subset of what you need in an employee. Obviously, you still need to do interviews, but keep some perspective when deciding. Don't overweight any one thing.
- pydry 6y agoYou can choose to make X (what's tested for in the interview) a representative cross section of the harder things that you need. Or don't even try and make X not even intersect with anything you need. It still puzzles me how many people opt "don't even try".
- tyingq 6y agoI see what you mean, but in my experience there's this tendency where you think you're testing for "X", but you aren't really. A whiteboard FizzBuzz might be actually testing for memorization, deliberate interview prep, extrovert tendencies, etc. And not for any kind of actual technical skill. Failing the FizzBuzz could also just mean high social anxiety.
- pydry 6y agoTrue. I find I have to iterate on my processes quite a few times before I squash these issues. They're conceptually similar to software bugs - inevitable, often surprising and impossible to fix all at once.
- omgwtfbbq 6y agoBeyond Fizbuzz, the standard algo type interviews are just optimizing for time spent on Leetcode or length of time since finishing College.
- Rule35 6y agoI heard good advice for life and interviews (be they for work, marriage, etc). For life, it's that you aren't your weaknesses but your strengths. Don't worry about filling the skill hole in juggling for instance, put that time into your strengths or hobbies. Be a better you, not a more complete someone else. For hiring though, if you've assured basic competence you're now more interested in weaknesses than strengths. You don't need the world's best person in the role, you need someone who won't bring down the group - either in their incompetence, malaise, nasty behavior, or whatever. So when being interviewing for a role don't worry about being the best, shoot for 60% and you're golden - but do your best to avoid showing even a single red flag.
- arcturus17 6y agoAn amusing thought experiment but obviously it would have catastrophic consequences in real life... Pretty much anyone can get good at the game by watching Let’s Plays or reading guides.
- huehehue 6y agoI agree with the sentiment, but the ability to study (read guides) and demonstrate understanding/retention of the material by actually doing something (playing Factorio) is a good signal.
- Toutouxc 6y agoSounds like copying and pasting jQuery snippets from Stack Overflow.
- erichdongubler 6y agoHonest question: is that fundamentally any different than building skills by imitating StackOverflow solutions or studying principles and patterns to build knowledge? I would view those as respective software development analogues, though there's definitely room for disagreement, particularly for very deep problem and solution spaces.
- MrKristopher 6y agoThe difference is that what you can learn on StackOverflow might actually be useful on the job.
- arcturus17 6y agoI don’t know, but I wouldn’t take the risk to find out in a professional environment.
- KineticLensman 6y agoThe conclusion of the article somewhat contradicts the title: "What's the takeaway from this? I don't know. We certainly can't switch to using Factorio as an interviewing method - you might as well just give a candidate a take-home assignment. At the very least, we can do better than whiteboard interviews." So it's not a description of how to use Factorio for interviewing, beyond a simple assignment of Factorio tasks to seniority levels. It does however make an interesting comparison between Factorio and software mechanisms.
- kevincox 6y agoI seriously think that "personal projects" are very underrated when it comes to hiring. If I see that someone has a lot of personal projects and has lots of time in Factorio they probably know how to code. I'm not sure you can rank them as Junior/Senior too effectively as these two things don't require much leadership, but you can basically skip the trivial phone interview questions at this point.
- leetcrew 6y agooften in multiplayer factorio playthroughs you get one player who becomes the defacto "lead dev". it takes some nontrivial organization to get subgoals completed in a way that people aren't blocking each other. a common mistake is two players building separate factories too close together, which leads to some very messy solutions and limits how much the throughput can be upgraded.
- zrail 6y agoLooking at personal projects biases against people who don’t want to or can’t do them, either contractually or due to time/energy constraints.
- scpedicini 6y agoWhy wouldn't I want to take every possible factor into consideration? If I have two people, one of whom has a github with lots of personal projects and the other one does not, I'm naturally going to get a better sense of the github developer in terms of their overall capabilities. That doesn't automatically make him the better candidate but it definitely gives me more information to act on. If people don't want to or can't work on personal projects then that's fine, but I'm not going to ignore the people who are passionate about building their own stuff.
- Rule35 6y agoNot unreasonably. Like it or not, at else being equal someone with more current experience is probably the better employee. There's this feeling that employers should just take the next person who fits some quota because to pick and choose is to be biased which has somehow become a bad phrase. My employer literally pays me to be biased. My job skills include having appropriate and helpful biases.
- endisneigh 6y agoisn't the best technical interview inherently just doing the job itself? find some aspects of the job that's representative of it and have the candidate do it - if they can, then you're hired. the issue is with technical jobs it's difficult to surmise what exactly is "representative" to begin with. I imagine the only reason candidates aren't just asked to work in the actual job for say, 8 hours instead of doing say, 7 irrelevant 45min interviews is because of intellectual property. I wonder if Google or another large company has ever tried to re-interview all employees with more than say, 4 years of experience and correlated their interview performance with past job performance.
- doix 6y agoWhen I was responsible for recruiting interns, I always wanted to use TIS-100 as an interview tool, or more likely a modified version of TIS-100 with different instructions/architecture to not give an advantage to people that have "played" it before. It would test their ability to read documentation and apply what they've read to problem. It also doesn't rely on them memorizing frameworks/API's etc. And it even in the early "levels" you can ask them to optimize for program size or cycle-count. Unfortunately no one would let me do it.
- wskinner 6y agoIt’s unclear if this article is satire or not. Given that you will be spending 20 hours of at least two people’s time (one candidate, at least one employee), the space of alternative interviews is quite large. You could, for example, spend 20 hours observing them perform an actual software task. This piece doesn’t consider alternatives at all, merely asserting that this particular 20 hour game is the best that can be done. I see no reason to believe that comparing the play of a practiced factorio player to that of a brand new player would carry much signal at all. That means that a company carrying out this type of interview would need to ask candidates to study by playing the game.
- detaro 6y agoThe article clearly states that this is not a realistic thing to do.
- lvice 6y agoThis winter break I spent an embarrassing amount of time on Satisfactory on Steam, which is essentially a nicer (and probably easier) modern refresh of Factorio. While I played, I came to similar conclusions to the article. Building factories in this game is very very similar conceptually to building software. I ran into exactly the same problems that I ran while I build software like: - If I don't plan ahead enough the scope and layout of the factory, I end up with a spaghetti mess that is very difficult to rectify (technical debt) - If I plan too much ahead, I overwhelm myself without even starting. The amount over-engineering and over-preparation becomes counterproductive and demoralizing. - Starting new factories is fun. Maintaining and extending a factory that is starting to show serious design issues is a chore. I always tend to want to scrap the factory and start fresh. - While designing a factory, modularization is key. You can go with a "monolithic" factory where you provide all possible materials as input, and try to build everything as output. It is very efficient transportation wise, and can centralize all management, but it can and it will become an unmaintainable mess. You can also design factories as "microservices", where each factory is a very compact, clean and scoped. It will only produce nails, or rubber, or copper wire. When you need to increase production of that item, you just duplicate the module (horizontal scaling). It seems fantastic at first, but the issue is now transportation. Dozens of micro-factories have to communicate with themselves to combine and produce more complicated items. The physical distance makes planning transportation a logistic and construction nightmare. So you have to find the right compromise between monolithic and micro-services. I think I agree with the article that you can extract a lot of information about how good a person can be at software development by the way he plays Factorio/Satisfactory. Not so practical though :)
- zionic 6y ago+1 on this. I could never get into Factorio with the simple graphics and 2D top-down. Satisfactory is freakin incredible and it is easily the best new game I have played in the last 10 years.
- lacksconfidence 6y agoIf you enjoyed Satisfactory you might also want to try out Dyson Sphere Program. It doesn't provide the veritical building but it is a different take on the factorio/satisfactory style of gameplay.
- desireco42 6y agoI found refactoring demo... GildedRose to work well. It is super fun for people and they can talk through it. It helps surface how they are thinking about code, definitely not the something that can answer all the questions but reduces tension a lot with candidates.
- BoiledCabbage 6y agoClick-Bait title, and judging by comments here everyone went for the click-bait. The author doesn't actually use factorio for interviewing, and thinks it world be a bad idea to do so. A more accurate title would be "Comparison between Factorio and Software Engineering Concepts" - but that wouldn't have gotten it to the top of HN so fast, nor gotten so many comments so quickly.
- neogodless 6y agoI believe we may be at a point where it is understood that headlines are created with the goal of attracting readers to the article, and it may no longer be necessary to point this out for each article we come across.
- UncleMeat 6y agoThat's not even the case. The point of headlines is to attract readers to the comment section on facebook, reddit, twitter, HN, etc. Some small percentage of people who have become engaged in the discussion seeded by the title then click through and provide a bit of ad revenue.
- ouid 6y agoI'll stop when I'm dead.
- enumjorge 6y agoWhat’s the limit? What if I write an article with a title like “Breaking: Google to deprecate its search engine, will get into selling beanie babies instead” but in reality the article is about the many different types of mayonnaise one can buy? I think it’s reasonable to expect the title to somewhat reflect the content of the article.
- Sodman 6y agoThere's a difference between editorializing a headline vs having an article titled "X is the best", where the content is literally "Well X obviously isn't the best, that would be ridiculous. Also we have no idea what the best is."
- beaconstudios 6y agosoftware engineering and factorio are cybernetics and systems theory. That's the overlap - dealing with causal loops, buffers, queue theory, feedback, all that. It really pisses me off that we as an industry don't broadly know our roots and the actual theory that we are putting into practice when we work. The "coding is engineering or art" debate? Easy; it's systems engineering. The closest we get as an industry to teaching what's under the hood is to deal with computer science, which is great, but data structures and complexity heuristics are only a small piece of the puzzle. It's no great surprise that there's such a big problem with cargo culting when most of us don't explicitly know what it is that we're doing.
- deleted 6y ago[deleted]
- kstenerud 6y agoThe fact that all of the game's functionality mirrors real-world situations when building system shows that you could just ask someone to build a scaled down system rather than asking them to play this game. Any game sufficiently complicated as this will be akin to asking someone to write some example code in a language they've never used before, so you wouldn't be able to tell much anyway.
- lukehutch 6y agoI'm pretty sure the only thing that playing Factorio really tests is the player's ability to learn and play Factorio.
- h2odragon 6y ago4 hours would be a long job interview. Has anybody ever played less than 4hr of factorio?
- js8 6y agoYeah, Nefrums would pass the interview in less than 2 hours..
- DelightOne 6y agoJust drop them into a highest difficulty game and see how they are at crisis management. And at prioritizing. You could even see what they do at peace times.. Using it for personality analysis sounds like a bad idea.
- blacktriangle 6y agoI have a question about whiteboard interviews. I have used and continued to use whiteboard coding in interviews. However I emphasize to the person that I am interviewing that there is no expectation that what they write on the whiteboard compile, or even be a real language. I'll usually do a quick demo and joke that my own white boarding looks like the bastard child of Python and FORTRAN. The point of the exercise is to have a design conversation and see if the person can think about algorithms or solving problems, not write valid code with a marker. Do people still have the same level of disdain for this technique or am I misunderstanding the objections people have to whiteboard coding.
- Raidion 6y agoI don't think anyone is expecting syntactically valid code (or at least that would be huge red flag for me if I interviewed). You do get bonus points the more "real" and consistent your whiteboard code is though. I think people dislike whiteboard interviews because there is a significant subset of people who do not perform well under pressure, combined with the fact that a lot of software development is not terrifically algorithm heavy. This means that it's a (by nature) uncomfortable task and does not adequately represent the value the developer can bring to the business. In my current role, I would much rather have someone who can show strong knowledge of dependency injection and unit testing on my team over the person who understands how to balance a binary tree from memory. I really only use algo/code/sql whiteboarding for junior devs now, and most mid/senior devs get asked about some hard code bug they've solved, what their preferred software patterns are, and we whiteboard some architecture.
- douglaswlance 6y agoThe problem is that algorithms were discovered by mathematicians/computer scientists doing proofs for 40 hrs / week. It isn't something that can be reasoned about. It must be learned and memorized. This forces people to study that which is already embedded in the tools they use to perform their job. If you ask people to whiteboard out a system at a high level that accomplishes some task, then that can be reasoned about and better tests their understanding.
- 6y ago
- airza 6y agoI have a similar pet theory that Baba is You has incredibly high predictive power for skilled application security people. It would be pretty heinous to hire based on that, of course.
- rubyist5eva 6y agoOr you could just pair program with them on a real-world problem...
- chmod775 6y agoTwenty hours is too long? Considering the average number of per-month applicants for software developer positions is probably less than one, you ought to have that much time.
- blitz_skull 6y agoTIL I am a senior developer. I'm taking this thread to my manager right now.
- grogenaut 6y agoI actually bounced off from factorio becuase I'd rather solve it as a programming / optimization problem than run around im the game. I find this with a lot of management sim games.
- benlivengood 6y agoDid you bounce before construction and logistic robots? That is basically the shift from traditional rts-style game to programming/optimization game.
- grogenaut 6y agoyes... takes too long to get there. Also I played way before those existed.
- _e 6y agoYes, confidence to try something new and problem solving are important factors but once one solves for those then testing for the ability to communicate well with others might be as or even more important than having the required computer skills. I used Zachtronic's TIS-100 [0] as a test variable and found the best person to work with. I believe it was a two way street because they saw an opportunity to work with someone who attacks problems a little differently. I am in real estate. Who would have thought knowing something about assembly would be helpful? [0] https://www.zachtronics.com/tis-100/ https://www.zachtronics.com/tis-100/
- kentonv 6y agoWe used this a couple times at Sandstorm back in the day. At the end of the interview the candidate would play Factorio cooperatively with the team for a while. I think it is remarkably effective at identifying the kinds of skills and personality traits that a software engineer actually needs to have in day-to-day work. You can find out if someone is self-directed, how fast they work, whether they produce clean designs or spaghetti code, whether they are good at cooperating or tend to go off on their own, etc. Some people will just sit and watch and do nothing unless instructed... that's bad. Some people will build stuff, but with obvious efficiency flaws and "bugs"... also bad. Some people identify what needs doing and get it done effectively but without trying to be perfect... that's good. Factorio essentially compresses real-world work patterns into a shorter time period, giving you the chance to see how someone works in the space of a couple hours. I don't know anything else that does that. But, obviously, it's problematic. A person who has played the game before will have a big advantage. A person who doesn't play video games at all will have a big disadvantage. For these reasons, I don't think I could seriously recommend this approach be adopted more widely. But then, I don't know of any approach to interviewing that I think is fair. Everything has problems: * Regular interviews bias towards people that are charismatic, not effective. * Coding interviews bias towards people who can code under pressure with someone looking over their shoulder, which is almost nothing like real-world coding. * Puzzle-y algorithms questions identify people good at clever solutions but that's hardly what most people need to do day-to-day when coding. * Take-home assignments bias towards people who have lots of free time, and still don't really tell you how that person works with others. * Looking at GitHub history biases against people whose lives are too busy to code in their free time (e.g. maybe they have kids) and who weren't lucky enough to have a previous job that touched a lot of open source. * Looking at past work experience misses brilliant junior programmers coming out of college. * Don't even think about using ML for this, that doesn't solve biases, it just hides them in a black box. It seems like there's no right answer here.
- rhacker 6y agoThere really isn't. At the end of the day every company I have been in has: the asshole, the smart guy, the idiot, the guy everyone is scared of, the guy that can't be fired ("the originals"). Then you just kind of multiply them randomly depending on team size. These hiring articles are a huge pointless waste of time.
- commandlinefan 6y agoIf you think about it, that's not that far off of a professional licensing exam like the ones that lawyers and doctors take: it's something that's peripherally, but not directly, related to the actual work, takes a long time to complete, can be improved somewhat through careful study and can be objectively examined for success.
- SamBorick 6y agoFactorio is fascinating because it also simulates critical issues in productions: bugs will come and eat your beautiful factory. I also I threw together some thoughts about factorio and programming a few months ago: https://dev.to/samborick/what-factorio-taught-me-about-work-53gh https://dev.to/samborick/what-factorio-taught-me-about-work-...
- ChrisMarshallNY 6y ago> or, if the feature is sufficiently common, google it I do that all the time. I haven't yet, today, but I'm sure I will soon. I'm working on some stuff I haven't done in a while. Googling has the extra benefit of helping me to do something that I already know how to do, but more effectively. I can always learn new stuff. They also mention that people "don't have the time" for open source. But I do have the time, and the result is a pretty massive portfolio. It's been kind of amazing, watching it get ignored.
- ouid 6y agoI think Pyanodon's modpack might actually count as good interview material, if it didn't take 800 hours to play.
- miki123211 6y agoIf you ever actually want to do this, be aware that it's not only unethical, but possibly illegal. Requiring candidates to play a game discriminates against people with visual impairments, who can't play games, but can code as well as anyone else.
- deleted 6y ago[deleted]
- TruthWillHurt 6y agoI test my developers in Counter Strike to see if they have a backbone, teamwork and can control rage.
- benlivengood 6y agoI'm looking forward to "10 years experience with Factorio" appearing on job postings. Does 891 hours count? One downside is that Factorio is almost immediately rewarding whereas programming generally takes a lot more effort for mediocre payoffs; hiring good factorio players will bias you toward people with enough focus for high reward behavior but maybe not so much for standard software engineering.
- markus_zhang 6y agoFor anyone interested in Factorio as well as the technical notes of optimization. I highly recommend another game: Daison Sphere Program. https://store.steampowered.com/app/1366540/Dyson_Sphere_Program/ https://store.steampowered.com/app/1366540/Dyson_Sphere_Prog... The leading programmer uses some sophisticated ways of optimization, including: - DOP instead of OOP - Leveraging GPU for parellely calculating certain stuffs - Using a GTX 660 Ti for development Here is a technical post but in Chinese. Lemme know if you are interested and maybe I can do some translation. https://www.zhihu.com/question/442555442/answer/1711890146 https://www.zhihu.com/question/442555442/answer/1711890146
- jkingsbery 6y agoDyson Sphere Program is so good. I haven't played Factorio yet, but I think it has all the same sorts of things that this article described. When I started playing DSP at first, I was just putting stuff anywhere. Then I realized that there are advantages in trying to make things modular in a way roughly analogous with code. At the same time though, it is very different than code, as the design is spacial, not as abstract as coding. Refactoring code is very different as a result.
- markus_zhang 6y agoYeah exactly, those games really bring out the "programmer" mindset out of everyone :D
- pbhjpbhj 6y agoI've only played factorio demo (too expensive for me) but the parts seem almost identical. factorio doesn't have the different planets, and different solar systems, etc, AFAIK, but the basic by building blocks seem near identical to me. The curved build surface causes lots of interesting aspects to arise.
- bb010g 6y agoWhat is DOP?
- 6y ago
- jontas 6y agoI am a senior engineer and have been programming for close to two decades. I picked up Factorio a few months ago and felt overwhelmed. I couldn't finish the tutorial. I think my problem is spatial relations--it is something I've always struggled with (how to arrange furniture in a room, solve a jigsaw, etc). I don't think this is a detriment to my programming ability at all--spatial relations really never enters into architecting a large system. Of course you need to think about design constraints but none of them exist on a physical plane. Factorio, on the other hand, requires actual spatial relation ability. You need to visualize how belts intersect and how to best position things so they dont interfere with each other. This is where I struggled.
- wideareanetwork 6y agoWell according to the thesis put forward here you aren’t a developer they’d want to employ . As a job seeker you need to identify these companies fast so you can avoid wasting your time on them.
- pbhjpbhj 6y agoThat's not really how interview processes work. If factorio interviews fill all roles with competent personnel, reduces hiring of incompetent people, etc., then it could be "good enough". Sure, you miss a lot of people who would also be good [enough]. They're not saying people who can't play factorio can't develop; it's the opposite. The hypothesis is surely that the can't+can't group has a large overlap.
- gentleman11 6y agoWhy not use starcraft instead and filter by apm and multitasking? You are sure to miss out on a few good candidates but you will filter out a lot of people who cannot manage 3 bases really effectively while watching the minimap, while designing custom build orders that can survive in the current meta. It’s like interviewing boxers on their blitz chess playing ability because you want “people who can think ahead under pressure.” Please. Skipping candidates “just in case” is like not hiring women “just in case” they distract the men. Those defensive hiring practices destroy diversity, diversity of thought, and the chance for a human to be evaluated in a fair or rational way.
- draw_down 6y agoYes, everyone has their own obscure way of doing phrenology to decide if you have the right kind of engineer brain. I'm sure asking me to play this game will tell you so much more than asking me to figure out how many golf balls will fit in a 747.
- noisy_boy 6y agoI guess I'm the only person here who doesn't like playing Factorio because my fingers just hurt too much from the constant clicking and dragging and dropping.
- christiansakai 6y agoPlease no, no. We are talking about fixing the interview process. We already have Leetcode game and people complained already. Please don't make me play another game.
- yodelshady 6y agoOn a related note, feature request for factorio - comments/labels/documentation. For instance, I like to group chem plants together as a block, that I can move around easily, set up remote bases, or duplicate easily. That, of course, means a common input "format". I'd love for in-game blueprints to be able to label that (or am I missing it?).
- Filligree 6y agoThe common meta, aka. what you get on https://www.factorio.school/ https://www.factorio.school/, is to mark inputs using constant combinators. Alternately, at larger scales a couple of chunk-sized (and absolute-tiled) railroad blocks will do nicely; the railway stations work as labels. If you dive even slightly into the (enormous) mod ecosystem, there's one that lets you make physical labels, at one tile per letter. (Text Plates, https://mods.factorio.com/mod/textplates https://mods.factorio.com/mod/textplates) Since blueprint tiling was added, it's become absolutely obligatory to make good use of them. Almost every blueprint should have at least relative tiling enabled. Note, the tile size shouldn't necessarily be the exact size of the blueprint -- it's often convenient to have tileable blueprints overlap slightly, and it supports that just fine by making the tiles slightly smaller.
- lmilcin 6y agoI dislike defining seniority by your technical knowledge or skills. I have a different, I think more useful definition that I use. It overlaps a little bit but excludes knowledge, intelligence and focuses on mindset and ownership. More senior person is one that has more mature approach to their work. One that can get better results with less resources. Typically more senior people can also accept wider variety of tasks. What is better results and what is less resources will depend on the project. It has nothing to do with the knowledge or experience, in my opinion. You can have good senior person get better results in a technology they have no previous experience with compared to a very experienced / intelligent / knowledgeable person that has track record of making bad decisions. Senior person will use their good judgement to warn the manager they are running outside of their knowledge and to know when they need to use some resources (like help) from somebody more knowledgeable. A knowledgeable but less senior person may think they know anything but not be able to recognize they are trying to achieve something that is outside their area of expertise or not be able to recognize or accept they are bad at something. For me senior developer is somebody I can entrust they will put honest, worthwhile attempt at making good decisions when it is called for and recognize when they need to come back for further direction. Senior developers show ownership in that they seek to uncover problems and discuss those problems with the team, proactively and productively. Senior developers can smell problems even if they don't necessarily know the solution. They can act on the signs of the bad smell and maybe seek discussion (with architect? client? manager? team?) to figure out what is going on and what needs to be done further. Senior developers understand there are many ways/levels to solve the problem and sometimes solution isn't more code but maybe procedural change or a shift in paradigm. Senior developers can meaningfully help/direct more junior team members individually without taking over their projects. Senior developers can keep working relationships even with difficult people or people they don't like. And so on.
- goddess33 6y agoAs good-intentioned as this is... it's the type of behaviour that just adds more barriers for women trying to break into tech. When hobbies like these - video games made exclusively by white men [0], played (almost) exclusively by men - are used to assess a candidate's ability as a software engineer, who do you think benefits? [0]https://factorio.com/game/about https://factorio.com/game/about
- benmller313 6y agoWhy wouldn't a woman be able to be good at a game made by a white man?
- LanceH 6y agoIt is especially dangerous territory saying women can't be good at Factorio since it has such analogs to programming. Saying women can't play it is very close to saying women can't program or think logically. Saying they don't like it because it was written by women is: first, sexist; second, who the hell looks up who made the game before they've played it.
- tryonenow 6y agoIsn't it racist and sexist to presume that women and POC won't play a game just because it's made by white men? How is that relevant? Is anyone else concerned over this kind of overt, casual, anti-white racism and misandry that has become socially acceptable as of late?
- fghfghfghfghfgh 6y agoYes, for one I am concerned. Not so much for myself but for the future of my little boy
- ummonk 6y agoDon’t be disingenuous. It’s almost exclusively played by mostly white (and some Asian) men, often on the spectrum. And you know this is true and that it isn’t sexist or racist to point it out.
- kjjjjjjjjjjjjjj 6y agoPro tip: Don't take advice or listen to people who use furry or anime profile pics.
- typon 6y agoEven worse: the combination of the two.
- abootstrapper 6y agoI have 100 hours in Factorio. I’m looking for a job. Where do I apply?
- andyxor 6y agowhy there is no standardized Leetcode-style tests like SAT or GRE that can be administered once and applied to all software job applications. The current situation is like every company coming up with its own version of IQ test, the randomness factor is huge. if current employees of any company were to simply retake their own tests most will fail.
- Mauricebranagh 6y agoI suspect that a lot western companies don't want to go down the "chitty" route. And those tests are gameable as are IQ tests and discriminate.
- MrKristopher 6y agoEven though FANG and startups are giving similar whiteboard interviews, they are evaluating on different dimensions to select candidates that fit their respective companies and the specific position. Reducing the Leetcode skill to a single number would not work well for this reason.
- odshoifsdhfs 6y agoPlease don't. Better, I'll remove the please and go JUST DONT FUCKING DO IT. Hiring is broken because most people hiring aren't good at it and the people working in tech are pretty much idiots (I'm focusing more on SV-startup, 5hour discussion about aeropress, put people down because they chose vim or emacs - people kinds). From 'cultural' fit interviews (who the fuck cares if you are a sikh or an atheist, whiskey drinking or think alcohol is evil? You are hired to do a job, not much more). This 'i have my social life at work, so I want people I can hang out with' shit has got to end. I work remotely for 10+ years and I can see in interviews/meetings the people that seem to base their identity and life around work, and the ones that actually are well rounded people that don't care about which coffee grind size you use on your morning crap of joe. I have been a professional boxer and dabbled with MMA/Grappling. I can say most things in the article can apply. So.. at the end of the interview just get them in gloves and duke a few rounds? I would be sued out of existence, but for some reason, between take home assignments, 10h whiteboard drilling and whatever the fuck is hip now (leetcode or what not), interviewing is broken because people are idiots. I have been interviewing people for the last 5 years. If in an one hour talk that is semi technical, you can't understand if the person knows what the fuck they are doing or not, then the problem is you, not the whiteboard or the take-home or the paid assignment. Just admit most people interviewing others for technical positions have not fucking clue or training, BUT, hey, they are smart people from Standford or MIT, so 'how hard can it be' and we get the clusterfuck that it is now
- imbnwa 6y agoThank you for writing this. It bothers me that the genealogy of leetcode has been completely obscured as it comes from competitive programming competitions whose primary demographic were who? Those smart people from Stanford or MIT. Once you realize the "who", it becomes even more clear for me why we're dealing with 'i have my social life at work, so I want people I can hang out with'-type people when we're preparing for interviewing. Not to mention that crowd is least likely to have any experience communicating with, say for example, Black folk, amongst other demos, as peers, you you get all these issues surrounding application of "culture fit".
- 6y ago
- tehjoker 6y agoLooking forward to this becoming the new standard with an ecosystem of bootcamps, an infinite stream of blogs, youtube videos, and personal tutors teaching you how to play optimal factorio while candidates sweat bullets and cry.
- MrKristopher 6y agoAlso don't forget all the blog posts about how hiring is broken, particularly because high school dropouts are able to put hundreds of hours into the game while senior swe are busy with their jobs and families.
- theptip 6y agoThis is a great way to end up with a monoculture, with all of the fragility that’s associated with it. That might be a fun way to hire engineers 1-5 in a startup but it will hold you back in the end. Many good engineers have no interest in games, and won’t present well in that arena. You’ll get lots of false negatives. “Fizzbuzz is all we have...” is a myopic take. Interviewing is hard but not as hard as the article makes out. There is a legitimate debate between take-home and on-site interview practices, but at the end of the day you want to see a work sample that is as realistic as possible from your candidate. Companies that are good at hiring understand this. Factorio has a tenuous (at best) correlation to the work you’re asked to do. It’s like doing puzzle questions because you “can see how they think about problems”, but interviewers are really just selecting for people that think like they do. (And for context I like Factorio.)
- Rule35 6y ago> but interviewers are really just selecting for people that think like they do. No. We don't care how you get it done, but that you try in a way that would be worth paying you for. My job isn't a calm safe place, it's the chaotic result of two departments and the proverbial rubber hitting the road in one spot. It's not intentionally bad, mean, hard, or long, and we weed out people who don't cooperate well, but every crazy thing you can imagine has happened. But even in previous, easier, positions people were still put on the spot by being assigned to work with customer support on some issue way up the stack from their normal job, which required to be on a call with 20+ outsiders, from CEOs to SREs, and representing us and our department properly. The people on HN who talk about giving people calm interviews to see their true selves don't get it, the performance under a small amount of stress is far more interesting. Do you get mean and snappy, get entitled, shut down, or what? If being asked, kindly, to solve a basic leetcode is too much then there's no way you'd be suitable for anything else we do.
- golemiprague 6y agoHow does it work in other professions? I think in most professions once you have some experience you don't get tested in every job interview, people just rely on your history and their impression. I have decided to hire like that, just look at people history of work and talk to them in an interview and I think the rate of success was not worst than any other method. People got pretty good intuition in general for other people capabilities.
- ummonk 6y agoClickbait title with very long content that people can’t be expected to read in full before the conclusion finally makes it clear that factorio is being used as an analogy, not a serious suggestion for interviewing.
- sangnoir 6y ago> A senior developer should be able to explore the UI and figure out a goal, then establish a plan for accomplishing that goal. I'm confounded on why the author thinks being a senior developer (say, in embedded systems) would make someone better at exploring a game UI compared to an intern-candidate who puts 20+ hours into gaming per week... I would probably walk out of the interview if someone suggested I play factorio as part of the hiring process - I have been intentionally avoiding it - you might as well offer me a free hit of crack cocaine while you're at it.
- fennecfoxen 6y agoFactorio isn't a game about shooting things. It is a systems-design game. Your goal is to orchestrate the processing of several different resources (iron, copper, coal, oil, stone) into several different intermediate products (gears, circuit boards, sulfuric acid, radar systems, etc), in service of a final deliverable (a rocket launch, or if you're ambitious, a continuous series of rocket launches). To that end you must manage a variety of subsystems and how they interact with each other and with the components that you build. You will be rewarded for consistency, for modularity, for automation of frequent tasks, for reproducible designs, for looking ahead and preparing for scalability. You will be punished for failing to plan ahead. You will also be punished for trying to scale too fast, too soon. The interview is a bad idea, yes. Even if all candidates were experienced with the game, as a showcase of how to build things, you'd still need many more hours than a typical interviewee is willing to provide, to showcase the approach. But it's not a game you get better at by focusing on "gaming".
- sangnoir 6y ago> Factorio isn't a game about shooting things. Thank you for providing additional information, but I already had a good idea of what Factorio is; that is how I know I would be addicted if I were to ever try it. I was specifically criticizing the idea that a senior developer should automatically be more proficient than an intern at navigating the UI of a game - even when that game is Factorio. It's seems preposterous to me, even though it's a tiny detail in a larger essay.
- aj7 6y ago$30 to practice infinitely.
- mariksolo 6y agoI bet the author of his article will change their tune if someone makes them do an interview with a game they don't have any experience in, like chess, kerbal space program, OpenTTD etc.
- notJim 6y agoGood lord, this is an awful idea. I've played a ton of Factorio, and I'm a decent engineer, and while the skillsets are similar conceptually, the actual execution and mechanics of them are very very different. Factorio involves a lot of care with spatial layout, tricks to optimize loading the conveyer belts, ensuring that the right ratios of pre-cursors are sent, etc etc. You could get a candidate who perfectly understands design patterns for programming, because they've studied programming and know how to program using programming languages and programming tools, but they don't translate that very well into the spatial environment of Factorio. Debugging and optimizing in Factorio again are conceptually similar to doing so in a programming language, but the actual techniques and patterns available to do so are very very different, and you have to learn them. Most of us do not figure these things out from scratch by ourselves. As others have pointed out, it also is begging for a monoculture. Plenty of people who are good at programming don't give a shit about video games, and will either do poorly in this interview, or will skip it altogether. The result would be hiring one type of person, and not having any other skillsets on your team. Even as someone who would do well in this interview, I would run screaming, as I do not want to work in a monoculture.
- jmarcher 6y agoAlso, you might end up with a bunch of industrial engineers who may not code (yet).
- DesiLurker 6y agointeresting, at one point I wanted to use sokoban puzzles to judge how candidates handle complex tasks. did not do it for variety of reasons but might not be such a bad idea to build a mock interview out of such non-whiteboard code schemes.
- dasil003 6y agoThe reason interviews suck is because FAANG pays multiples of most other career paths, so an awful lot of people want those jobs, therefore they need an ever higher bar for people to jump through. Then every other startup and mid-size company cargo cults the process because they want to hire "the best" even though their funnel looks nothing like FAANG. Basically at this stage whatever process the top company chooses is immediately subject to Goodhart's Law, and they end up hiring roughly the same number of muppets as every other big company, the only thing you get is maybe a slightly higher IQ floor. Casually playing Factorio with someone might give you a strong hint of someone's potential as a software engineer, but the minute you bring it anywhere near a high paying job interview process you are asking for disaster.
- teekert 6y agoWould be cool if Mineraft went this far. At least I can play that with my kids and I’m not haunted by that feeling that I’m building something virtual and useless. I can actually enjoy it, through my kids. Yeah it’s weird.
- danbrooks 6y agoJob candidates could die to biters during an interview! This needs to be tried once (and posted to youtube)! Preferably on max difficulty.
- splonk 6y agoI've never played Factorio and have no particular opinion on its value as an interview method, but I assume some of whatever value it has comes from forced team interaction rather than anything inherent in the game. I have turned down an interview because of Diablo. I got recruited a couple times by a startup that would have been a very good fit for me. The first time it was quite small and I chatted with the CEO about possible roles and product directions and such, but I'd just quit a long term job and eventually decided that I wanted to take a break for a while. The second time was years later after it had grown a lot and gotten tons of funding over multiple rounds. As it happens, the CTO was also a friend-of-a-friend. When the Diablo 3 beta came out, I played a bit with him and our mutual social circle, and he demonstrated enough personality traits during that brief experience that I decided I wasn't interested in socializing with him more, and just turned down the recruiter after checking to see that he was still the CTO. I would have at least discussed it further if he wasn't specifically in a leadership position.
- inopinatus 6y agoJesus wept, what a horrifying abomination of an idea. The way I play computer games is so utterly unlike how I write code or design/manage computing systems, I can only surmise this is the product of confirmation bias run amuck, a nightmarish echo chamber of bad ideas reinforcing someone’s ghastly monoculture. Cramming these tortured metaphors into your hiring process is worse than whiteboard programming, something I didn’t believe possible until reading this steaming pile of numberwang.
- davelacy 6y agoI'm going to assume this is satire
- fhifjfhjjjk 6y agoI do not want to live in a timeline where Factorio becomes the new Leetcode, please God
- ilaksh 6y agoThe problem with this is that a lot of it is actually learned skills. So someone with experience in the game or other games that are similar has a big advantage. Including the people judging noobs who already know strategies for layout etc.
- asimpletune 6y agoOne thing that has worked for me is to just give easier coding interviews. Not fizz-buzz easy, but not totally unnecessarily hard either. The trick from there is to be very well prepared yourself as an interviewer, and to make sure you’ve chosen a good problem. Good in this case can be anything, it should just be so thing that you know really well. I like this approach a lot because if they’re great, then they should code the problem flawlessly in, say, 10-15 minutes. If it’s just an off day for them then there’s plenty of time to talk and see how they go about figuring out how to fix their first problem, ie they don’t know how to start. This also closely emulates how work is too. Most of what you have to do at work is actually quite easy if you really understand why you’re there everyday. If it’s not, then how do you go about fixing that? So this approach accounts for a lot of different styles. Some people are just plain smart, and they’ll get it right away. Other people are very unassuming and just ask questions until they feel like they have the confidence to propose a plan. Also you have a way of screening people who aren’t ready for the job. If they rush into a solution that’s bad and are defensive, then they’re not ready. Remember, this is an easy problem. One thing I think is often left out when discussing interviewing is that it in fact is often a game, because work is often a game. You don’t get perfectly written asígnennos, delivered via email, where you just have to implement a function according to an interface. Instead, your job is to create business value for the company, while enjoying your life. I think a good interview format should actually lean into that. No, it’s not perfect, they don’t always perfectly test your coding skills, but real coding skills aren’t easy to test and are only part of what makes someone suitable. Ultimately, what matters is a.) can you recognize this is a game and b.) what trade offs do you make to win at the game, given your ability and character? I think sort of easy, well chosen problems, based off personal experience are really the best for getting these answers from a candidate. Then again, it’s still not a silver bullet because it requires a really well prepared, interviewer who’s committed to giving the candidate a good experience and a fair shot at demonstrating what they can do. I’ve had interviews where halfway I felt like the candidate was genuinely having fun, and others where we both knew this was the end for them. Like, the interview was so good at what it was designed for in either direction, yay or nay, both of us pretty much left agreeing with one another about how it went.
- lmilcin 6y agoI remember giving, for a period of time, candidate a simple kids block programming game. The task was to put blocks together to escape ever more complicated labyrinths. I stopped when I noticed candidates do worse at this game than actual 7 year old kids. For example, a simple labirynth. Kids just give simple instructions (forward 3 blocks, turn right, forward 2 blocks, turn left, etc.). Candidates... try to figure out a complicated algorithm with a result that they run out of time producing nothing. I wonder how much of this is effect of knowing you are being watched and your program analyzed and how much of this can be related to real world projects that developers just overcomplicate for no reason leading to worse results than just simple code you could throw in a fraction of the if you knew you are only judged for the effect and not for the code.
- BoiledCabbage 6y ago90 of it is probably that they're thinking there must be a more involved solution than something a 7yr old could solve, otherwise no reasonable person would use it to differentiate candidates with a university degree for a professional position. As an option, you could try prefacing the game with saying "the solution to this might be very easy", and see how many more solve it. Then you'd know you're likely not making a decision based on any signal of skill or ability at all, and just on them trying to make a prediction on what you're looking for. Edit: I had to come back to this, because the more I think about it the more it's mind boggling to me. You interview is very likely filtering out the smartest candidates and selecting for the rest. A typical strong candidate, that's prepped on interview questions, has maybe had other interviews at companies with challenging problems is going to look at it and think "This is a problem this interviewer uses to differentiate between top tier candidates and those who don't get offers. There is no way they're asking me a question that's so easy that any 7 year old child can answer it. There's gotta be something I'm missing." And keeps digging into it. And a very weak candidate will say think "This is my 10th interview, and sweet, finally a question I can answer!" These absurd backwards mindgames are exactly (one of the many things) thats wrong with software interviewing.
- lmilcin 6y agoFirst of all, this was many, many years ago. Nowadays my interview is half an hour of (hopefully) nice chat, followed by half an hour of technical questions followed by half an hour to an hour of coding exercise with real IDE. We all learn on mistakes, my interviewing process evolves as I learn which things do and which don't work. Second, one of the goals of the interview is to see whether you can deal with the problem analytically. I am purposefully setting up problems that do not require (much) prior knowledge to observe the process of how the candidate deals with the problems. While our knowledge of particular topics changes, our general approach to solving problems is almost set in stone for similar/related categories of problems. If you are developer who does not predict how the code is going to work but rather rely on running it umpteen number of times and reshuffling instructions until you happen to make it work, this isn't just a sign of your lack of knowledge but rather your general approach to dealing with them. I bet, and I have observed it many times, that the person will do roughly the same when faced with a number of varied problems.
- phendrenad2 6y agoIf you think this is a good hiring method, please do it so I can avoid your company. I specifically hate games like Factorio because they remind me of tech busywork, with very little intelligence or creative thought required. If you want creative thinkers, try another method.
- mikewarot 6y agoI've got 1,300 hours into Factorio... the factory must grow! It is analogous to programming, the programming I learned in the 1980s, not modern software development. On the plus side, once you level up a bit and get constructor robots there is a bit of copy/paste and undo capacity. You can load and save your work, and use more than 8.3 file names. 8) On the down side, there is no source control, no commenting, very limited macro capability (blueprints). The debugging tools are limited. On the analogy side, pollution as technical debt that causes bugs which will bite you, is spot on. My favorite game style is to do Rocket Rush on an island... and see if I can get rid of the enemy and get self-sustaining nuclear power with Kovarex going... the it rapidly becomes boring.
- emrah 6y agoOh boy.. I can already see the bootcamp-style websites popping up to help you excel at Factorio so you can land a lucrative sw dev job