20 ms·
Author of the interview question here. I came up with the idea after working at the company for a couple months and realizing that the skill of "diving into an
by ankrgyl 5y ago
Author of the interview question here. I came up with the idea after working at the company for a couple months and realizing that the skill of "diving into an unfamiliar area of the code and quickly figuring it out" was very important for us. Database codebases are large and complex -- so much so that almost every new feature you work on for the first year or so feels a lot like doing the question.
Over the years of evaluating with it, we learned a lot about its quirks (both false positives and false negatives). At one point, someone got so frustrated that they threw their laptop on the floor. Happy to answer any questions about it!
- dataflow 5y agoI definitely appreciate the intent of it, and think measuring along that axis is incredibly important (and rare). But as someone who continually struggles more to dive into some codebases than my peers, I can say that this task is far too easy and wouldn't help you gauge my ability to do that at all. Something that requires implementing a new feature that isn't a near-mirror of an existing one (ideally one that requires a bit of thought at the design level) would probably be a much better measure, but I don't know what that might be for something like memcached.
- deleted 5y ago[deleted]
- ankrgyl 5y agoThat's a great point! We didn't actually think of this question as much of a "measure" (and I think the blog post alludes to this as well with a "Fizz Buzz" analogy). We thought of it more like a filter — if you couldn't pass, then you _may_ not be adept at navigating through a database-y codebase at the pace that was necessary (at that time) for the work we did. We had other questions (which I won't spoil) that tested more complex system-design skills, without having to implement them within an existing codebase. We felt this provided clear independent signals (ability to "hack" within a codebase and ability to reason through complex system design) vs. conflating the two. As the team grew, and we needed folks who were much better at one or the other, this helped us round out the team with folks who excelled at either skill.
- sverhagen 5y agoI think you'd be surprised how many candidates you'd be able to filter out using a very easy task, despite the great credentials touted in their application. That said, I don't think this is a VERY easy task, per se. And even if it were, there's achieving the stated objective, and then there's you taking the ability to demonstrate some additional skills. I'm in the Java world, and whenever I requested candidates doing exercises, them building a solution with no unit tests, or at least not voluntarily acknowledging that omission, would be a red flag. And then I'd ask: let's say this wasn't an exercise, what things would you add before shipping this to production, which would be a great conversation starter around (again) testing (second chance), observability, logging, and so on.
- eminence32 5y agoHow did the logistics of this question work out? Did the interviewees work on the problem live, with you (or the interviewer) in the room acting as a sounding board or as some other resource?
- ankrgyl 5y agoWe gave candidates a heads up before the interview that they'd be working on a live coding question, and that they should familiarize themselves with editing code over SSH. Some candidates felt uncomfortable with this, and we were able to make alternate arrangements (e.g. setting up VisualStudio locally on a Windows machine). During the interview, the interviewee worked on the problem live, and the interviewer stayed silent, except for questions. If they didn't come up for air after 30 minutes or so, I'd check in and see if they were stuck, offer help, etc.
- deleted 5y ago[deleted]
- deleted 5y ago[deleted]
- ed25519FUUU 5y agoPersonally I feel this question ranks low on a quality scale. Too many moving parts and too many variables. There’s a million different reasons for why they could bomb it and a million different ways they could succeed at it and none of those reasons might be evident to the reviewer.
- sverhagen 5y agoI don't know. You seem, like others in the thread, focused on "implement 'mult' as age times parameter value", but the goal of the exercise seems much more around: what's your process of going into a code base, asking the right questions, making some good observations by yourself, and not getting stuck. It'd be interesting to hear from the original interviewer if they even cared about how well the solution ended up working, or if the candidate's ability to demonstrate understanding about the (presumably unfamiliar) code base was more important to them.
- ankrgyl 5y agoYou hit the nail on the head. We explicitly did not care about how "well" the solution was written (some solutions were very surgical, others involved a lot of copy/pasta, some folks wrote very detailed comments, etc.), although we did point out and ask you to fix solutions that were incorrect. For example, some candidates implemented "mult" as "add" in a loop, with the row lock acquired and released in each iteration. This solution is vulnerable to a data race if another user concurrently updates the value.
- jwmoz 5y agoCan you explain why some would go down this loop route? I don't know C but the obvious solution to me is what you posted.
- sverhagen 5y agoIt seems a simple way of building the "mult" solution as a composition of the existing primitive(s), here "add". But agreed, that I would not find the tradeof acceptable either.
- ugh123 5y agoWhere in the interview process was this question used? Were there other programming and/or system design questions before and after? Was this a senior-level candidate question?
- neapolisbeach 5y agoI was asked this questions this past fall as part of the 1st technical screen for a SWE intern. I think there was 45 minutes to do it. After I had two more technical interviews where I got asked more traditional leetcody questions.
- ankrgyl 5y agoWe experimented quite a bit. Since it was relatively inexpensive to administer (almost anyone could ramp up to conducting it), we were able to test it in a variety of scenarios (even for intern candidates). It ended up being _after_ the initial phone screen, but early into the on-site. There were several other questions that tested other skills (system design, algorithms knowledge, reasoning about concurrency, etc.). Every engineering candidate did the question, regardless of seniority, at least during my tenure.
- devoutsalsa 5y agoThis is the Recruiting Coordinator question. Just wait until you see the Principal Staff Engineer’s question!!!
- aluva 5y agoI recently got this question for an engineering manager position. I got it done in an hour and 20 minute with all test cases presented passing. But I don't particularly think this is a good question for senior level candidates since implementing is mostly copy pasting existing functions and renaming them and adding a new memcached VERB.
- FartyMcFarter 5y agoI imagine the hardest part would be to figure out what needs copy pasting?
- pxx 5y agoThree hours seems a bit much. Was there anybody where the signal wasn't clear in the first hour but the signal somehow became clear in hour 2 or 3?
- ankrgyl 5y agoI'm not sure where the three hour thing is coming from. During my tenure, we gave candidates one hour.
- Izkata 5y agoOut of thin air: > I forget how much time they gave for it. Let’s say three hours, counting the time to explain the problem.
- MrDOS 5y agoankrgyl claims to be the author of the question; I don't think they're the author of this blog post about the question.
- Izkata 5y agoThe blog post is where that duration came from; I think both the asker and the question author missed the first part of the line from it I quoted. If you search the rest of the comments here for "three hour" there's quite a few people jumping on that rather than just accepting it as "eh, I don't remember so I'll just throw something out there".
- est31 5y agoIt depends on the project, but it actually can take 2 or more hours. It can start with getting it to compile in the first place. I've spent days on building C code bases, getting the dependencies there, everything in place, then you wait, then there is some error, then you google, then you don't find anything, then you debug a makefile of one of the dependencies, etc etc. Some projects don't compile with packages from apt-get at all. Take most Rust projects for example, unless you are using a rolling release distro, your rustc version is too old. Then you need to look at the quality of the code base. Sure maybe it's just a simple else if chain and one of them has an add and sets result = a + b; inside. Then you can copy it, modify it for multiplication, done. Trivial! But maybe it's done via a plugin system and spread over 5 different components, and there's actually two plugins you have to add, one for the repl, one for the internal handling, and there is non trivial communication between them. So you copy the 2 thousand lines of plugin code spread over 8 files and there's a bug. How do you debug it? You also need to be able to start the thing. Maybe it's not meant to run on developer's laptops but instead is deployed in the cloud and you have to use some unfamiliar tooling to access it? Now, apparently in this instance the project was easy to compile, modular enough (and also not too modular) for the position needing the change to be identified in quick time, and easy enough to run and test that you could also explain your solution in one hour. But this is not guaranteed.
- robertwt7 5y agodid you finally got accepted in the company? curious..
- ankrgyl 5y agoAt the time I developed the question, I was employed by MemSQL as a full time software engineer. Eventually, I became the VP Eng. I spent 5.5 years there. It was an incredible experience.
- js2 5y agoI would pass the shit out of this question because it's right in my wheelhouse, but I don't consider myself a particularly exceptional programmer. I have a CS degree, but I'm positive I'd fail a FAANG interview w/o advance prep. I'm really comfortable at modifying existing code[1], gluing together existing solutions, and know enough C to get through this question. But the OP says this: > When you’re maintaining a large codebase, there are always going to be codepaths you don’t fully understand Ugh... I hate modifying code I don't understand. That doesn't mean I need to understand the entire code base, but if I'm modifying a portion of the code base, I'm loath to touch it till I understand what it's doing. Also, of all the work I do, I consider this the least expressive of my ability. It's such a mechanical thing to do and doesn't require a whole lot of thinking? So I guess I can see how this skill—for a job at your company—is necessary but in no way sufficient. [1] e.g. https://github.com/git/git/search?q=jaysoffian&type=commits https://github.com/git/git/search?q=jaysoffian&type=commits, https://github.com/google/breakpad/commit/6446cfcff088b8682ba473f65f9f4f95e780c894 https://github.com/google/breakpad/commit/6446cfcff088b8682b...
- jokethrowaway 5y agoIn my team I need someone like you to deliver features, not someone that can leetcode. I don't remember the last time I had to check an algorithm in Wikipedia. Probably 2-3 years ago. Most of the time it will be debugging some arcane crap or adding to an existing codebase, anyway.
- bornfreddy 5y agoAlgorithms are funny this way. Most of the time you don't need them, but when you do (and if you don't, you can't tell it when), it is a world of difference. Still, just knowing they exist and how to formulate the search is usually enough.
- treffer 5y ago100% this. I have "The Art of Computer Programming" on my book shelf, and I think I had to pull it out 2-3 times over the course of _years_. I am sure one was a reference in the golang source code. And I once wanted to check multi-way merge sorts (tournament sort).
- lisper 5y ago> Add a mult command to memcached You problem setup seems to assume that your interviewee is compeltely unfamiliar with memcached. So how do you expect someone to be able to answer this question if you haven't told them how to add commands to memcached? [UPDATE] Ah, I see you actually want them to go hack on the memcached code base. That is not at all clear from the problem description. The language of the problem setup is pretty elementary. I think anyone who is actually capable of doing this task would find the description pretty condescending.
- timClicks 5y agoThe description starts with downloading the source code that you'll be expected to modify.
- akhmatova 5y agoNot the description that we're seeing; it starts with downloading source code that you are told you will need to build.
- jfrbfbreudh 5y ago> That is not at all clear from the problem description. Seems like everyone else here thinks it’s perfectly clear.
- akhmatova 5y agoIt can't possibly be "clear" because it doesn't follow from the problem description. Which, verbatim, was simply this: Our programming challenge: Add a mult command to memcached. Maybe "adding a command" involves "hacking the codebase"; maybe it doesn't. From the problem statement as such, you can't tell.
- db48x 5y agoI confess to being a little confused by that. How can you “add a command to memcached” without altering memcached’s source code?
- divbzero 5y agoWhat are the quirks—both false positives and false negatives—that you discovered through years of evaluating this interview question? (I’m planning to give the interview question a shot before returning to read any more of your replies.)
- ankrgyl 5y agotl;dr False positives: we hired a few folks who could prototype changes but struggled to ship them. This question wasn't solely to blame for it, but it wasn't enough of a signal on someone's ability to _thoroughly_ work within a large codebase. False negatives: senior candidates who were very used to a particular programming environment (e.g. at Microsoft) and didn't have side projects that kept them up-to-speed with the basics of editing code on the command line over SSH. We did a lot of work over time to setup alternative environments for these candidates.
- boulos 5y agoI'll add to your false negative case. I only write code over ssh in mostly emacs (and sometimes vim). A couple years ago I was asked to interview via CoderPad and while I appreciate their attempt at having emacs and vim bindings, the fact that they're not actually accurate was worse than using Google Docs. That is, it's actively worse to be almost your editor of choice than I think it would be to obviously be a "clumsy editor". In the former case, the interviewer perceives you as poor at writing code when you're fighting with a slightly drunk editor, while in the latter (like at a whiteboard) the interviewer adjusts for the environment. Edit: the interviewers let me retry via projecting my screen while using emacs locally in a terminal. I hope CoderPad has improved it's key bindings since then, but I hope interviewers test out these editing environments before assuming people would be 100% proficient.
- ramraj07 5y agoDid they ask you to write 2000 lines or what? Does it matter if you fumble when writing 20-50 lines of code?
- t_mann 5y agoThis seems so much more relevant than what FAANG companies are asking apparently (never did an interview with them), ie undergrad algorithms and data structures problems, but in a really tricky way. I wonder why your approach to interview questions isn't the norm.
- grepfru_it 5y agoI had to finish a half completed tool that would validate dns. I finished the actual problem in 5 minutes. Staff engineer position for a FAANG
- t_mann 5y agoOk, that does sound more relevant. Either my sources gave an inaccurate picture, or that's only for junior roles.
- ankrgyl 5y agoAt the time we debuted the question, it was actually a recruiting advantage for us. People would interview with us and other "big tech" firms, and get excited about the opportunity because we asked this question.
- pipe_connector 5y agoI was asked this question when I interviewed in 2020 and finished in about 35 minutes without any C experience. I can confirm that this question made me very interested in working for MemSQL/Singlestore: I loved the experience. The next step of the interview was to implement a pretty large concurrent program. I was given conflicting/very little information from the recruiter on how to complete the assignment, which I thought was odd given that in my estimation this was far too large for an interview question. I submitted my work after a couple hours of effort in an incomplete state because I decided I didn't really want to work for the company anymore. I never heard back. Really soured me on the company.
- linhvn 5y agoSeconded this. I interviewed at MemSQL in 2013 as an intern, and that (plus other algo based questions) get me really hooked to MemSQL.
- db48x 5y agoHow much searching did you need to do before you found a good codebase to work on? Was memcached the only one you used or did you have a larger set of questions that you picked from?
- ankrgyl 5y agoI got super lucky and came up with the question an hour before I first administered the interview. Memcached was the first codebase I went for, because someone had asked me a question involving it a few months ago, and it was conceptually a "simpler" version of MemSQL. Later on, we tried to diversify the question to other codebases (because it leaked, although less publicly). I remember trying it out on Redis, which was too easy because the codebase is so nice. We never found a great alternative while I was there (through 2016). Although, the team may have found something since. At my current company, Impira, we have a similar question on a different codebase :)
- steve76 5y ago
- mherdeg 5y agoI'm curious about how you'd evaluate this author's solution. Where it does rank on the rubric you used compared with some of the other ways people approached the problem?
- ankrgyl 5y agoThe rubric was more of a "Y/N" for this question. But we'd refer to the author's solution as "great". Messier solutions would involve a lot of copy/pasta and occasionally inefficient or incorrect implementations that tried to repeatedly add. I can't remember exactly, but I probably administered the question for Arthur when he interviewed (he may remember). I do (fondly) remember working with him.
- FartyMcFarter 5y agoA "solution" that repeatedly adds would seem to violate the atomic property, so I think I would call that invalid and not an actual solution?
- the_af 5y agoThe author of TFA mentions these solutions usually acknowledge the need for atomicity, and try to achieve it by reusing memcached's locking primitives. I understand the failure is that either they don't get them right or use up all their time without a complete solution. To be honest: it's how I would have failed this question.
- master_yoda_1 5y agoWhat frustrate me about these interviews is one need to talk on phone and code at the same time. Who the fuck do that in real life.I am so fucked up with this thinking out loud shit.
- scruffyherder 5y agoIt's why despite constantly being asked to interview at FANG I don't, as I just don't feel like dealing with that kind of stress. I prefer to stagnante to being obsolete where I am. I saved up enough that I paid off my house and I opened a bar. I just don't have the heart for the /r/iamverysmart crowd, that always paints themselves into the same corners because "neat and new", or dealing with more political crap where the customer is never a thought in their equation
- jseban 5y agoDon't worry, there are a lot of jobs that don't do this kind of high pressure interviews. Especially outside of web development there are huge markets of people who are really happy to get their issues solved, and don't really care if it takes one or two days.
- db48x 5y agoI think you might be reading something that isn’t there. Look for comments by ankrgyl where he says that some candidates liked to talk about what they were doing as they did it, and others didn’t, and that it wasn’t really important to them one way or the other. Also, I think he said that these interviews were done in person, and that this replaced a question where coding on a whiteboard was expected.
- 3np 5y agoFrom the part2/spoilers: > This challenge is particularly well calibrated for an interview because there is only one correct answer: “change bool incr to int opcode” (or anything isomorphic to that). The codebase and problem statement together very clearly imply that there are currently two arithmetic opcodes, and your job is to extend that to three arithmetic opcodes. [...] Cloning even one of these functions is probably suboptimal, but I might spend twenty minutes before realizing that. I just completed it sans writing tests (took ~30min), considered and discarded that approach, instead duplicating the code-paths (leaving incr/decr untouched and instead making mult_ versions of everything). I did reuse the delta_result_type, though. Briefly my reasoning was that this would make the fork easier to maintain against hypothetical future upstream changes and keep the logic simpler, while guaranteeing that I didn't miss to implement any particularity - compiler would complain about missing constants or functions as long as I covered entrypoints. A bit of rule-of-three thinking: If in the future there would be even more arithmetic functions added, maybe it would be prudent to refactor and generalize parts of it? But not at this point. Curious to hear if you agree with OP that my approach was incorrect or with me that it's equally valid (:
- bombcar 5y agoI would lean this way - I'm not a software developer by trade but I can cut and paste and look at compiler output. Changing a bool to an int is the kind of thing that I would worry would have unknown side-effects somewhere, whereas adding new code paths is unlikely to explode the existing. Upstream would be a consideration, and potentially seeing what kind of a patch they'd accept.
- ankrgyl 5y agoIt's equally valid — your reasoning exceeds our expectation for the question. Essentially we're trying to test for whether you can understand at least one correct implementation. Whether or not your approach is "better" depends on factors that aren't part of the problem statement, so it would be a mistake to assess it as incorrect.
- jhgb 5y ago> instead duplicating the code-paths (leaving incr/decr untouched and instead making mult_ versions of everything) If there already are two arithmetic opcodes, shouldn't both of them already be handled by the same code, only with an operation parameter? In that case all that should be necessary is the handling of that parameter in the place where the operation is actually performed, and you only add one more value of that parameter. Having said that, I haven't looked and memcached yet how it actually implements these operations. I'll have to do that.
- tomkat0789 5y agoI'd love to hear some stories! People who failed, false positives, etc. I recently contributed to letting in a false positive into my org. Properly interviewing people is a skill I need to develop!
- Jach 5y agoI guess it seems like you kinda chose this question by chance, but for new similar types of questions, do you now do them yourself (or get a coworker to try) to get at least an n=1 sample for how long it ought to take? I like to give a 2x margin of time over my / a coworker's time, so anything that takes us over 30 minutes is right out or needs to be simplified when we only get an hour with the candidate. An experience with an intern at my last job who struggled with our large codebase (mostly in the way of being comfortable despite not having or being able to fit everything in working memory all the time) led me to conclude the same as you, i.e. it's an important signal (at least for our company's work) to be able to jump in and effectively work in a somewhat large existing codebase. I'm amused at the comments suggesting this is too easy (or your own suggesting the same for redis), I think if I tried this I would have filtered almost everyone, at least if they only had an hour (minus time for soft resume questions to ease them into it, and questions they have at the end). So many programmers have never even used grep (and that's not necessarily something to hold against them at least at my last job where the "As hire Bs and Bs hire Cs and Cs hire Ds" transition had already long since occurred). I've made two attempts at the idea though by crafting my own problem in its little framework, the latter attempt I used most involves writing several lines of code (not even involving a loop) into an "INSERT CODE HERE" method body, either in Java or JavaScript, and even that was hard enough to filter some people and still provide a bit of score distribution among those who passed. Still, I think it's the right approach if you have a large or complicated existing codebase, and even in the confines of an hour seems like a better use of time approximating the gold standard "work sample test" than asking a classic algorithm question.
- ankrgyl 5y agoYes definitely -- although it's pretty crazy how much not being under pressure affects your ability to complete the question in X minutes. I've learned over time that good interviews take a lot of experimentation, and the best thing you can do is test/refine questions in real interviews before you rely on them as a signal to make a hiring call on a candidate. I wouldn't necessarily consider these questions a substitute to an algorithms question, but rather a way of obtaining a different and important signal. An algorithms question may be a valuable signal too, depending on the nature of the role.
- xarope 5y agoI hate to say this, but I would have failed the type 2's as well, in just copying and pasting and changing pluses to multiplies. assuming signed int16 (for simplicity of discussion), 32767 + 1 is far easier to error handle (a simple check of the max_int value) than 10000 * 4, unless you are just blindly allowing the range of values and don't care about overflow/underflow.
- farmerstan 5y agoIf this question became popular how would you change it so that people who were prepared wouldn’t have an advantage?
- ankrgyl 5y agoLuckily I did not have to deal with that during my tenure (I left in 2016). However, we had experimented with other changes to memcached as well as similar changes to other codebases. There is no shortage of OSS projects to draw from. However, calibrating something that's doable in about an hour is really tough.
- balls187 5y agoNever worked at a DB business, but feel confident that > "diving into an unfamiliar area of the code and quickly figuring it out" was very important for us. Universally applies to all software jobs. What's I find interesting (based on my own personal history) is not only the ability to solve a task in an unfamiliar code base, but also do so without creating side effects (like say quadrupling the size of a binary since you incremented a poorly named constant that is reused as a size of a memory allocation by multiplying itself with itself).
- zimpenfish 5y ago> Universally applies to all software jobs. I dunno, I've worked at a bunch of places where it seems people have gone "I'm not bothering to understand the old code, I'll just replace it with <framework/technology du jour>[1] and GOOD LUCK MAINTAINERS." [1] Sometimes they write their own frameworks. These are almost always the worst.
- deleted 5y ago[deleted]
- jseban 5y agoI would probably also pass this question, but I would reject this company for this type of cliffhanger drama which tells me it's an unhealthy working environment.
- 3np 5y agoWould you elaborate what part of it makes it "cliffhanger drama"and why?
- db48x 5y agoMaybe he means the part1/part2 split? Perhaps he misunderstood that this is a device of the blog author, who wants to give his audience a chance to try out the question without spoilers, and that it wasn’t part of the interview itself?
- dclowd9901 5y agoKeen of you to see the value of that skill. It’s one that I also look for ways of testing for. I really like this interview question.
- robertknight 5y agoThis was a fun distraction to start the morning with, and I like that it is testing a set of directly-useful-on-the-job skills. It feels well calibrated in terms of difficulty.
- EdwardDiego 5y ago> At one point, someone got so frustrated that they threw their laptop on the floor. Happy to answer any questions about it! Did the laptop throwing make you think you'd gone too far?
- ankrgyl 5y agoYes it did, at first. It was one of the first times we presented the question, so we didn't have a great signal on its efficacy just yet. However, other red flags emerged during the interview process, and we decided to try the question out a few more times, with a lot more success. And the rest is history.
- rendall 5y agoI can't speak for the interviewers, but I for one would believe we dodged a bullet. Imagine working with someone with that kind of temper.
- EdwardDiego 5y agoI agree with you in that regard, but I'd still be re-assessing our interview process if that happened.
- rendall 5y agoEmpathy and kindness is the top, fundamental value I hold professionally, but I am struggling to understand why you would re-assess after a single incident. If a large fraction of candidates showed signs of extreme stress, sure. One candidate, though, isn't enough to determine anything meaningful, in my opinion. As Mack "Bumpy" Freeholder famously said "one thrown laptop is on them, but two thrown laptops is on me!"
- EdwardDiego 5y agoHaha, fair enough. And I'm not sure if that's a real quote, but I want to believe.
- lanbanger 5y agoSo you hire people who skip over the depth of the locking model and just copy and paste the addition code, but you fail the people who spend time to deeply understand the locking model but can't produce a solution in three hours? Interesting approach, I bet your codebase is a thing of beauty...
- jjice 5y agoLove questions like this since they're way more practical than some Leet Code algorithm I haven't seen since my sophomore year algorithms text book. Looks pretty fun too actually! Nice work and I hope you got some good engineers out of it. Any other retired interview questions you're particularly fond of?
- specialist 5y agoDo you let candidates noodle, on their own, for those three hours? Worst part of programmer interviews are coding as performance art. I don't code "out loud". I kind of get lost inside my own head. I can explain myself after I figure something out, not during. If I'm supposed to talk, then I'm thinking about talking, not programming. Obviously: I've never liked pair programming. Rubber ducking has never worked for me.
- ankrgyl 5y agoWe let the candidate do whatever they'd like during the interview. Some liked to talk out loud, and others preferred not to. We didn't care. Also — we gave candidates one hour (the author of the blog post does not seem to remember that detail).
- Sohcahtoa82 5y agoI remember being taught pair programming in school and thinking "This is awful". I just can't see how it's supposed to actually work. Rubbing ducking works, but only has a debugging measure. Explaining what your code is actually doing on a line-by-line basis can sus out the root cause of a bug. I suppose that's the only time pair programming could work for me; by explaining what each line of code does, another programmer could stop me and tell me "No, that's not right".
- specialist 5y agoOh. You reminded me: I quite like pair (group) debugging. It's like shared adventure with a prize at the end.
- tootie 5y agoI absolutely agree with the premise but for the same reason it's a valuable skill it's also really hard to time box. I'm assuming you picked this particular task but you had already scoped it out and knew memcached didn't have any particular bear traps that a decent programmer would step in and lose 2 days?
- ankrgyl 5y agoI had never looked at memcached's source code prior to thinking of the question, but we did try it out before (and measure the time) before administering it for the first time.