18 ms·
The FizzBuzz that did not get me the job
- KingOfCoders 2y agoI love FizzBuzz as an interview question and then dive into tail recursion and compiler optimization. I learned a lot from candidates. I miss my interviewing days.
- ElectRabbit 2y agoThey solved a lot of our problems we didn't find good solutions for! (/s)
- KingOfCoders 2y agoI never had, sadly, compiler optimization problems, I mostly did simple web database frontends for 30 years. Code monkey stuff.
- deleted 2y ago[deleted]
- deleted 2y ago[deleted]
- sjducb 2y agoI think you’re an A player. You were rejected by a B player that was looking to hire C players. Apply to other companies. In this case it’s not you, it’s them.
- croes 2y agoTo be fair, we only heard one side of the story
- pclowes 2y agoI think if that was an honest description of the interview question then that alone indicates insecure B players _at best_.
- cwmoore 2y ago"What a terrible day to have ears!"
- rk06 2y agoWhat is there to hear? They asked ridiculous questions. Interviewee showed above average competence. So, they should have moved to next interview for cultural fit.
- jcz_nz 2y agoVery clever! Also, I’d steer absolutely clear of any company that does this. This doesn’t assess anything meaningful, it’s an ego trip for the interviewer. Ugh.
- phkahler 2y agoYep. All those extra rules missed the entire point of FizzBuzz - people who have trouble writing code fail at even simple thing like FizzBuzz. The extra rules presented sequentially and their interactions might have revealed more about both parties, but it's hard to tell without seeing them in person.
- bootsmann 2y agoDisagree, this is a significant step up from the leetcode-style programming puzzles that other companies do. It doesn't bank on the interviewee knowing the specific trick that makes the puzzle work and instead tries to somewhat test the skills that are more significant for the job at hand like debugging, refactoring and dealing with changing requirements.
- Mawr 2y agoThat was likely the thought process of the interviewers, however wrong. FizzBuzz works well enough as a lowest common denominator screening test, but it doesn't scale up. At its core, it's an entirely made up problem with no relevance to anything you may ever do at a job. How do you evaluate requirements for a problem that is not real? The higher level the skills you want to test, the more realistic your questions have to get.
- bluGill 2y agoA real job is often simialar to fizzbuzz in that there is no eligant solutians. There are several solutions but they all have some special case. a real world problem would take you a week to solve though and so we can't give them to you in an hour.
- pclowes 2y ago
- TZubiri 2y agoHere's my attempt, if OP can read this: https://github.com/TZubiri/fizzbuzz2.0 https://github.com/TZubiri/fizzbuzz2.0 Apologies to the employers that I uploaded it to Github, but I was trying to keep my green squares thingy streak. I didn't upload the requirements so that it's harder to google/scrape into an LLM. My first note is that, the quality of the code was very high, evidently the code worked and it did so in a manner that introducing changes either required little or no effort. It is unfortunate that the interviewers were annoyed by this rather than satisfied, it reads as if the interview process was written by one person and the interview was executed by someone else and was trying to check some boxes and get to his lunch. My second note is that, while not incorrect, the approach was a bit academic and certainly harder for others to read. The functional approach is not the most common and definitely not as easy to read as the procedural approach. The interviewer, potentially a coworker, would be reading this and thinking that he would have to read this as part of their job. I don't see any upside to a functional approach here, perhaps in cases with more complexity if I were keen to this approach the pros and cons would be weighted more closely, but it feels overkill. In a sense it reminds me of the satirical https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpris... . Where it takes the POV of someone overengineering the fizzbuzz with javalike GO4 patterns. Third, yes, the requirements are very weird and don't correlate very well with real problems, in some scenarios it forces the developer to do some weird things to the point where you are not sure how someone will evaluate you. If I were an employer I wouldn't be able to distinguish between someone that does 10 ifs in a row because he doesn't know how to use more expressive language constructs, or because he is trying to avoid an array or whatever fucky condition was placed. Finally, requirement 7, to not use numerical literals and functions, indeed does require to reimplement some basic math, but it was not necessary to implement all of the math. You implemented base 10 addition. My solution just implemented signle digit base 3 addition with overflow. I think overimplementing is a common trap in programming, where you find a solution in 1 minute, and then spend 60 minutes implementing that solution, whereas if you spend some time looking for more efficient solutions, you might cut that implementation and debugging time in the long run. I wouldn't say that the approach was wrong, it certainly would have bode well with more academic types that value functional approaches, perhaps if they use functional languages like F#, haskell, Scala, Clojure, etc.. But a javascript shop just screams pragmatism and lack of love for the programming language, I don't think you read the room here. Oh and also, definitely make an AWS account and play with the free tier, just launch a vm (ec2). AWS was hugely influential in terms of design and pricing in the SaaS industry. Remember that AWS was the first big Cloud provider Google and Azure followed, so it's not as important to make an account with the other big cloud providers. Best of lucks! I'm sure you'll find something.
- deleted 2y ago[deleted]
- ibloomt 2y agoIf you are still looking for a job -> ping me
- em-bee 2y agounfortunately i am not as clever as the author, otherwise i would have liked to ping you.
- sd9 2y agoThe interviewers would've been a lot happier if they'd just prescribed a language up front.
- bhaney 2y ago> I don’t think it would be fair to name and shame them. I disagree, but of course that's entirely up to you.
- FridgeSeal 2y agoThe more time that goes on, the more I think as a community we should unashamedly be name-dropping anywhere that has poor practices, bad comms, or bad behaviour. Neglecting to name them just lets them get away with it.
- chengiz 2y agoHe cannot name and shame them because this did not really happen.
- James_K 2y agoDo you think you'll make it to the interview stage of the hiring process if the interviewer looks on your personal website and finds that you wrote an entire blog post calling out your last interviewer by name? I would not risk inviting such a person.
- deleted 2y ago[deleted]
- riffraff 2y agoI loved the article and would probably have hired this person. But as a suggestion to them: if an interviewer says "I don't think that will be a good idea" just take the hint that it won't be what the expect and change it. Also reminded me of my compiler class, we had some homework to write a pascal/C transpiler and a friend of mine somehow managed to implement it via bison errors(?). The teacher was not happy but had to agree it worked and gave him full marks.
- lowbloodsugar 2y agoInterviewer was wrong however.
- sjducb 2y agoAt work, would you rather have a boss that makes you implement dumb ideas? Or would you prefer a boss who recognises that your idea is better, then rewards you for it? You are interviewing them too. I would also have hired the candidate.
- tcbawo 2y agoThe author’s answer was clever, but also unconventional. The company was probably looking for someone that would write code in a shared codebase that other developers will need to contribute to and maintain. Thinking outside the box and not following suggestions might have raised a red flag that this person might be a loose cannon. In a small company, hiring someone smart but unwilling to follow directions can be detrimental. Kudos to the author, though, for being quick thinking and creative.
- xnickb 2y agoThen that expectation should be communicated clearly, not via some obscure passive aggressive subtones, don't you find?
- a1j9o94 2y agoIdeally yes, but most people in corporate settings don't communicate clearly. So if they have a culture of dropping hints, and you don't take them you're not going to do well at the company. It's not good, but it's an accurate reflection of the work environment.
- stevoski 2y agoI predict that very soon you are going to be offered a remote job paying more than €50,000/year. That’s due to this excellent post about your excellent abilities and reasoning appearing on HN. ¡Mucha suerte!
- bowsamic 2y agoThat isn’t much money, even for Europe
- stevoski 2y agoI’m referring to specifics in the article. The interview was for a remote job paying €50K/year.
- scandox 2y agoWell it's all relative dude
- quectophoton 2y ago50k EUR/year for me would be like 2900 EUR/month after all taxes. Monthly expenses in the part of Spain I live in are ~800 EUR (rent + food + electricity + water + 1Gbps internet). 2900 - 800 = 2100 EUR to do whatever I want with. Even if I decide to put half of that into savings, that's still ~1000 EUR to spend freely, and any unspent money would go into savings too at the end of the month. Or in other words: With a salary like that I would be able to pay a family member's full monthly expenses if they are in rough times, and still have leftover for myself.
- bowsamic 2y agoFair enough I’m just saying I live in Germany and just entered my first software position and get 73k, and I don’t live in Berlin or anything. I suppose in Spain living expenses are much cheaper. Your monthly expenses including food are less than my rent. Tho I still think I have more than 2100 left over after expenses
- leoff 2y agoI've created a joke Python library, hoping that I would get asked to code it in an interview. No luck so far https://github.com/leoffx/fizz https://github.com/leoffx/fizz
- belter 2y agoI get the point, but update your library to support entries higher than 100. :-)
- isaacremuant 2y agoI think the joke is that it's hardcoded. It's definitely easier to implement it for n numbers yourself.
- Shocka1 2y ago1000 if statements would have probably added more laughter than there already was in my life this morning lol.
- dmd 2y agoLove the implementation. Don’t let anyone convince you to change it.
- kmoser 2y agoReminds me of this purposely over-engineered Java version: https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpris...
- sixothree 2y agoI used to give fizz buzz with zero additions. Just write me a fizz buzz in c#. We didn’t actually want to take up a lot of the interviewee’s time. There were other tests, tests better than any programming tests. They had to take like one for SQL and one with nothing but logic puzzles, the latter of which is most indicative of whether a person will be competent at the job. Fizz buzz just lets me see their coding style (single letter variables, lack of curly braces after ifs, comments, platform - console, web, service) and whether they’re willing to allow simple mistakes into their finished product. So many mistakes. But it’s the least I can do to get some information out of a candidate who is already overburdened by the process.
- whstl 2y agoA 2 minute Fizz Buzz at the beginning of the interview is great to filter people who managed to fool the recruiter. It is also a cool opportunity to "talk shop" if they go for a strange solution.
- joseda-hg 2y agoBased on the general reacion from some of the comments here, going for strange/novel solutions is seen as something to be avoided though
- whstl 2y agoStrange comes with the territory, though. The requirements were way stranger and quirky than the solution, and wouldn’t really lead to any production-ready code… Lots of comments complaining about the code completely glossed over the requirements.
- yosito 2y agoThis article describes everything that's wrong with tech hiring these days. There is zero evidence that success on these arbitrary programming riddles have any correlation with success on the job, and yet we force candidates through a gauntlet of completely unrealistic brain teasers solving problems that they will literally never have to solve on the job. I've recently completed half a dozen 2-4 hour coding challenges, gotten a perfect score according to the tests provided, and after a couple of weeks, gotten a boilerplate rejection email. What's the point?
- em-bee 2y agoi agree. this solution is to clever for its own good. but those requirements were essentially asking for a clever solution. if the challenge can't be solved without being clever then it is the wrong challenge. this interview tells me that the candidate is smart and knows typescript well, but it doesn't tell me if they can write code that is clear enough so that a junior can understand and modify it. because the latter is the reality of work. a year from now, a junior will be asked to adapt this code to say replace 3 with 7 or something like that, and they will probably not be able to it without having to rewrite all of it from scratch.
- belter 2y agoSomebody was interviewing somewhere else and they played a man-in-the-middle attack on you? :-)
- pnw_throwaway 2y agoHow much of the article did you read? They were looking for a senior, with more than twice the experience the poster has. Being able to pump out algos is only part of the job. While there a solution is clever, it’s not terribly maintainable and likely didn’t fit the bill. Beyond that, things like soft skills matter for senior roles. The author can write, there’s no denying that, but we don’t know how well they can explain the why of their solution. It’s very likely the interviewers wanted more traditional functions that were unit-testable.
- constantcrying 2y ago
- Cthulhu_ 2y agoI've worked for companies in NL whose tech interview wasn't nearly this involved but the wages offered were comparable or better; I seriously doubt any of the skills asked or demonstrated in the interview would actually be necessary for this job, not when it's just node which in all likelihood means it's mostly REST like APIs and some business logic. (I'm making some sweeping generalizations here)
- shusaku 2y agoCrazy answers to fizzbuzz is a great genre of fiction, but there is so much backstory here I’m half believing this really happened.
- adhamsalama 2y agoYou need an enterprise FizzBuzz implementation to pass the interview. https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpris...
- lcnPylGDnU4H9OF 2y agoIt needed to be less than 30 lines, not more than 30 files.
- squiffsquiff 2y agoTo me, the rules given to you are pure gatekeeping. The fact that even after they had given successively more restrictive rules for what should be a trivial program they then verbally restricted you further confirms this. I would question whether this was actually an interview for a real job or not but in any case it's not you it's them.
- chvid 2y agoAsking a trivial question is a simple way to test a person’s basic skill but also more importantly his ability to communicate and work with others who may not have the same level of expertise. If you use it as a chance to make a mockery of the interview process/interviewer then perhaps that is not a good idea if you actually want the job.
- krior 2y agoMaybe its a cultural difference, but I fail to see how this solution is "mockery".
- ocular-rockular 2y agoBut the interview process is a mockery.
- constantcrying 2y agoThe interview deserves to be mocked. It wasn't someone being asked a few trivial questions, but 45 minutes of being asked to go through ridiculous hoops. If you are concerned about a candidates team skills. Talk to them, do not interpret it based on, how they engage with some stupid coding puzzles.
- haspok 2y ago> ...the first time in life I spoke english. Well, there you go. Typescript can only get you so far. Unless you want to be a low-paid code monkey, time to learn natural languages. ps. I have many Spanish colleagues, and I have a hard time understanding them in general (when they speak English). Only one other nation is worse, the French...
- kaoD 2y ago> I have many Spanish colleagues, and I have a hard time understanding them in general. As a Spaniard I'm curious, why's this? I think I'm pretty well understood (worked remote for US and NL for years) but maybe just in case I can make life easier for my interlocutors.
- haspok 2y agoIt may not help that there are more of them, and of course, among themselves they speak Spanish. One of them then turns to me and asks something switching to English, he keeps his speech mostly unchanged (speed, enunciation, pronounciation), except he is putting supposedly English words one after the other...
- tgv 2y agoThe Spanish accent in English is --simply put-- atrocious. I've met many Spaniards, and only a few had a clear, understandable accent. Even academics with British or US post-docs may not speak clearly. Nor flight-attendants, for that matter (juecom odi flai tu ásterda). I only know a few French, but I had a colleague who (although not of the French nationality) was born and raised there, and apparently was taught English literature through reading Les Hauts de Hurlevent. Yes, Wuthering Heights, in French.
- ch_123 2y agoIf this coding test was what they used to assess the quality of candidates, I would say that the author of this article dodged a very large bullet by not getting hired.
- camel-cdr 2y agoI've got a hard time imagining they were going for a solution other than you adjusting the base. That seems to be what all restrictions, especially #7, lead to and it is a concept everybody that understands how module works should understand. > 15. Hardcoding matrices is forbidden. This was definitely meant to nudge you into the direction of adjusting the base. The excessive number of rules was really weird, surely they could've just asked you to consider simpler a solution. > Asked the interviewer if it was OK to rewrite it using only types, she asked her partner and he told me it was but that he couldn’t see the point of it and advised me it would not be the right tool for the problem given that there would be many more rules I suppose this might've been such a hint.
- throwaway-12341 2y agoI have almost 30 years of experience and I would never have thought of changing the base. I would have failed that part of the test. But I am confident that I would have been very productive in the type of work they actually perform in reality
- vogr 2y ago> I've got a hard time imagining they were going for a solution other than you adjusting the base. I agree that this is probably what they were going for, but it still seems a bit ridiculous that the conversion from numbers to the chosen representation is not subject to the same rules (i.e., you can call `.toString(15)`, and this definitely uses numbers under the hood!). If this is allowed, then you could also encode your numbers as the string "{n % 3}{n % 5}" and be done with it. Or if they wanted a unique encoding, "{n}{n % 3}{n % 5}" would work too!
- xboxnolifes 2y agoThe toString wasn't used in the solution. It was used in creating the solution. Encoding the numbers as your given string exceeds the max length of an encoded character per the rules.
- lowbloodsugar 2y agoThe problem is that adjusting the base selects for two kinds of people: 1. People who have come across that trick before. 2. People who have a lightbulb moment in the 45 minutes of the interview. Now, given that someone has passed the test, what is the probability that it is because of 1 or 2? The VAST majority who pass the test will fall into category 1. The test manages to have both low sensitivity and low specificity. Well done! Most likely, the interviewers are completely unaware that the solution is only obvious to their uncurious minds because someone else told them the answer. They don’t appear to have an understanding of where quantum-leap ideas come from, or how to foster them.
- hihiandrew 2y agoCan imagine the interviewers squirming as they lose control to an OP candidate.
- FridgeSeal 2y agoDude casually whips out types and succinctly defeats half their puzzles is a pretty amazing mic drop moment. Hope the author finds a good job somewhere that recognises and appreciates their skill.
- revskill 2y ago"Clever" alone is not enough. It's also about clarity and scalability. But it's a requirement for start.
- whstl 2y ago"Clever" was a requirement. If they wanted clarity, they would allow for fucking numbers and modulo operator. They wanted a solution and the candidate produced one. Or did they just want to know if he knows how to program? Because he also did demonstrate that.
- mgaunard 2y agoNormally, you learn during high school that when you take any exam, you should not reply with the best or smartest answer, but with the answer the teacher expects. The same applies to interviews.
- ch_123 2y agoIf you are interviewing for a job - the "answer the teacher expects" can tell you a lot about the company you are potentially going to work for, as can the exam which you are given to prove your worth.
- eunos 2y agoJob market kinda suck for employee so cant be picky I guess
- constantcrying 2y agoStupid questions deserve stupid answers.
- mystifyingpoi 2y agoBut that was the correct answer after all: screw the interview, have fun trolling the interviewers (you won't get the job anyway), then write a cool blog post and post it here. There is already someone in this thread asking for contact.
- BeFlatXIII 2y agoDiscrimination against the neurodivergent.
- mgaunard 2y agoThe world is discriminatory against people who are different. Learn to blend in if you want to function into society.
- Dylan16807 2y agoWhat do you think they expected when they said not to use numbers? Is there a "normal" answer to that? It seems like a very freeform kind of crazy restriction to me.
- martimchaves 2y agoCool read! I loved it when you changed the numbers to base 15, I thought that was a beautiful solution.
- wjholden 2y agoCame here say the same thing, I had never thought of nor heard of using base 15 for digit tricks before!
- constantcrying 2y agoWhat a genuinely terrible interview. Seems like a great way to learn absolutely nothing about the candidate. I would have walked out half way through. These types of questions are very telling of an organization which is extremely insecure in its own abilities. For anyone who is a somewhat experienced programmer it is not hard to tell if someone else knows what he is talking about. You do not need to waste 45 minutes of someone's time on whether they can correctly interpret and execute some joke requirements.
- ali_piccioni 2y agoWittgenstein’s ruler in action.
- alkyon 2y agoFailing this interview saved the candidate from working for a crappy company, doubling their salary isn't really worth it. Why on earth would the interviewer think that 0 is not a multiple of 3 and 5?
- arp242 2y agoIt sounds like they're currently unemployed(?) But even if they weren't: going from 22k to 50k is a massive difference. People are willing to put up with a lot of bollocks for it. Dismissing that so easily is a really privileged attitude.
- cgriswald 2y agoA person doesn’t have to be privileged to value things differently than you think they should.
- alkyon 2y ago"I could already see my salary doubling in front of my eyes" Where do they mention that they're unemployed now? A sufficiently strong candidate can afford to wait a litle bit more.
- teddyh 2y agoThe author seems to constantly conflate “not failing the interview” with “having the program produce correct output according to the rules”. But it was an inverview, not a logic puzzle.
- ahoka 2y agoI think the best “debugging” skill is to think about the problem first and choose a solution that makes the corner cases impossible. Dijkstra smiles on you!
- grujicd 2y agoSome of these rules look like straight from Severance TV show. This would be a huge red flag for me.
- raverbashing 2y agoI'm getting peeved by interviews that asks for tests (especially take home tests) The main issue that I see is that interviewers get extra picky with all the minor details and they fail candidates due to minor issues that would get solved in a code review or just with a bit more time And while fizzbuzz using strings only is cool, it seems it didn't add anything to the predictive power of the interview
- kbr- 2y ago> The main issue that I see is that interviewers get extra picky with all the minor details and they fail candidates due to minor issues that would get solved in a code review or just with a bit more time You see a "minor issue that would get solved in a code review". I see a production outage. You cannot rely on others catching and fixing your bugs. It happens, but it's all about probabilities. You want to reduce the probability that something bad will happen. That means not just relying on more senior people to catch problems in your code, it also means relying on you to be careful.
- raverbashing 2y agolol "production outage" No, I see people complaining about a test not looking like what they expect, or minor nitpicks like variable names or not using the interviewer's favourite design pattern Of course the same people who nitpick are the ones writing O(n^2) code and actually causing a major bug
- kbr- 2y agoOk, I was thinking about something else than stylistic preferences, e.g. making an off-by-one error in an implementation of an algorithm during live coding. Something that indeed would be usually catched by a careful code review, but candidates sometimes undermine importance errors.
- mariomash 2y agoYou have the coding and reasoning part perfect (but maybe not straightforward to understand) and you also know the things you are missing. - University degree: not necessary, get certifications or equivalent experience (upwork)? - English: this part is really important. find or hire a native speaker and start practicing. - AWS/GCP/anything else... get certifications or free courses. My only complaint about your code: in a company you probably want them to approve your PRs, sometimes your peers will code worse than you, so better if the code is less stilted and maybe objectively “worse”, but easy to understand at a glance. but that part also depends on the interviewer.... better to ask first, it's part of working in a team. I'm sure you'll soon be hired for 50k+. Suerte.
- isaacremuant 2y agoI'd say get hired at any role that pays what you want for your seniority and simply work and learn. Courses won't matter that much if you don't implement something (might give you a point or two on an interview but don't overinvest) and upwork would be absolutely exploitative work and you probably would not gain as much as working with others who can share a thing or two. Having a shared codebase is critical for growing as a software developer and not being too clever. OP should just work and learn. Bring his enthusiasm but also humbleness and grow. He can keep his options open and move companies rapidly if he is already there but getting stable work and improving his communication should probably be his first goals to achieve.
- rho4 2y agoThe 30-lines rule annoyed me the most. Don't force 'clever' solutions if you're looking for readability, maintainability, changeability, debuggability etc. On the other hand, our company doesn't do any technical interviews at all, so there's that.
- James_K 2y agoAs a programmer, your goal should always be to produce the most readable possible code. Just because you can't produce something perfect doesn't mean that you should give up on readability entirely.
- forgotpwd16 2y agoCode looks simultaneously impressive, elegant, and monstrous. Are such snippets found in TS codebases? Would like to see how it compares to a more conventional approach. Still, cool code. (Even if weren't hired.)
- pas 2y agohttps://hasura.io/blog/how-typescript-template-literal-types-helped-us-with-multiple-database-support https://hasura.io/blog/how-typescript-template-literal-types... Access to template literals at type-level is available since TS 4.1. https://github.com/ghoullier/awesome-template-literal-types https://github.com/ghoullier/awesome-template-literal-types
- habakul 2y ago[flagged]
- rokkamokka 2y agoInterestingly, unlike many in this thread I would've avoided hiring this person based only on the code example. This code is almost unreadable to me, certainly to most on my team. I would request changes it if it was a PR going into production (ignoring that the problem itself is made up). The code I would've liked to see would be easy to read, easy to follow, and would make me understand the underlying rules that made the code look like it is. This, I feel, achieves none of that. But of course, everyone is different, and certainly many in this thread feel different. I just wanted to add my perspective :)
- lou1306 2y agoThe code being hard to read may be partly a consequence of having to bend over backwards to fulfill the absurd requirements. No numerical operations on a fizzbuzz problem? Give me a damn break.
- Ukv 2y agoI feel the no-numbers requirement essentially just boils down to replacing `num % 5 == 0` with `num.endswith(('0', '5', 'A'))` - or at least that's what I went with while playing along. Most of the complication (after the author realized they should use base-15) seems self-inflicted from the choice to write it within the type system, which the interviewer advised against. Fully granted that I'm not familiar with TypeScript, but I find it hard to believe that code like the below is more readable to anyone than the equivalent `for num in nums` loop. type FizzBuzz<T> = T extends `${_}${_|""}${_|""}` ? `${Fizzer<T>}${Bazzer<T>}${Buzzer<T>}` : ""; type Folded<T> = T extends [infer Head, ...infer Tail] ? `${FizzBuzz<Head>}${Folded<Tail>}` : "";
- mcherm 2y agoIf the requirements of the exercise had been "write FizzBuzz" then I would agree: doing weird tricks like this rather than writing straightforward code is a red flag. But the requirements were "write FizzBuzz in ANY language. Then change it so it doesn't use use numbers (!!!). Stick to strict and unreasonable code length constraints." The only POSSIBLE interpretation is that the interviewers don't WANT straightforward readable code, but want weird tricks instead. Which is exactly what the author gave them.
- MrDresden 2y agoHonestly, reading these coding golf rules gives off the sense that they were written by a either very inexperienced or insecure individual. These are not a good way to measure a candidates abilities. As has already been mentioned in other comments, these are clearly red flags and grounds for not taking the application process further.
- moffkalast 2y ago> Changing the programming language after starting was also forbidden. > Max of 30 lines. > Max width of 100 characters. Putting arbitrary rules where none are really required is actually quite informative. It shows how the company culture is set up and it's probably gonna be lots of long days working on things that make no sense because some manager is power tripping over pointless arbitrary decisions. You must be truly desperate to come to them for work.
- zogomoox 2y agoFrom your description I think you accidentally applied for a position in an administrative sub-branch of Hell. This was the giveaway: "I had a little discussion with the interviewer, who said 0 was not a multiple of 3 and 5".
- deleted 2y ago[deleted]
- yujzgzc 2y agoIt's not that the candidate is underqualified, it's that they demonstrated more hacking skill than programming skill in that interview. I feel like the rules about program length were mistaken for coding golf rules? A small company hiring a programmer isn't looking for super clever type system hacks, they're looking for someone to crank out code to solve problems fast. It's not readable or efficient to use the type checking system as a general purpose computation system. If this is the code that your teammate wrote and now you have to debug it, good luck... The candidate is certainly smarter than the average code monkey, just not "housebroken". Once they've worked at a team where they mostly get to fix and improve long-gone coworkers' code all day is when they gain more of an understanding of what programming is about...
- whstl 2y agoThe rules of this FizzBuzz say that you can't even use numbers and numeric operations. They WERE expecting a clever solution.
- cstrahan 2y agoI think you somehow missed the fact that this wasn’t the standard fizzbuzz, but rather a contrived, convoluted version thereof. Of course they were looking for a clever solution, because any solution that satisfied those rules would be clever by necessity.
- wbxp99 2y agoYour solution seemed very smart, and I have no doubt that you are an excellent programmer. However, I think you way over-complicated things by choosing to go the functional route. Here is my go in imperative Python. The base-15 trick is still needed, but the rest of it seems a lot easier to understand for someone reading the code later. https://pastebin.com/trD9Ezf1 https://pastebin.com/trD9Ezf1
- guccihat 2y agoI will go against the grain and say I do not consider OPs fizzbuzz solution to score particular well on readability or maintainability. And these were the only two stated core requirements. The solution is clever and demonstrates solid knowledge of TS. However, in my experience getting too clever with the type system is not always a good idea for ordinary application code maintained by a team of average TS developers.
- bhaney 2y ago> ...readability or maintainability. And these were the only two stated core requirements. Where was that stated? I don't see those being mentioned as core requirements at all
- guccihat 2y agoIt was the whole point of the exercise if I read the article correct "While the base algorithm is very simple, the point of the exercise is that the interviewer will add new rules to test how you update the code while keeping it readable and maintainable."
- bhaney 2y agoGood point. I don't know why that stood out to me so much less than "the interviewer noted that I could even use esoteric programming languages" which to me is code for "go nuts and do stupid fun stuff like writing your whole solution in APL for the extra challenge of it" or other flashy passion-having-shibboleths, which are usually incompatible with readability or maintainability.
- spacechild1 2y agoKeep in mind that they came up with this solution after the interviewers forbid the use of numeric types and math while still keeping a limit of 30 lines. What do you expect? I found the solution impressive given the circumstances. At this point I would have thrown the towel.
- 2y ago
- tmtvl 2y agoI know it's bad form to complain about technical issues with the site rather than engaging with its content, but I can't do the latter as I get redirected to a page telling me to activate javascript... even after activating js. Considering I expect the page itself to just be static text I'd appreciate if anyone could give a quick summary. Even the Wayback Machine can't show the page, for crying out loud.
- st_goliath 2y ago> I get redirected to a page telling me to activate javascript... ...which is hosted on a different domain (notion.so), so if you didn't notice and temporarily allow that domain in NoScript, the actual page (hosted on kranga.notion.site) will still redirect you to the "Please Enable JavaScript" text on notion.so
- andyjohnson0 2y agoI've been doing interviews and coding tests recently, but this beats anything I've seen in terms of awfulness. To me, the only thing worse than being tested on your ability to write clever code would be to end-up working in an organisation where everyone had been selected on their ability to write clever code. I can't make up my mind whether these interviewers are simply staggeringly unaware, or gatekeeping, or that they enjoy making people suffer. The latter because, for every candidate like the author, there will be multiple candidates for whom this kind of test leaves them frozen and anxious. I wish people involved in interviewing would think more about what they're doing.
- darkwater 2y agoSince I'm in the process of seeking a job, I would like to share a somehow related experience in one technical interview, this time for a senior DevOps role. So, after the initial introductions and talking a bit about infra as code with Terraform, they interviewer asked a question: "What would you use if you cannot use Terraform for a project?" To which I initially answered, since it was a SENIOR position, with a warning about mixing Terraform and non-Terraform managed infra because it can lead to unforeseen issues, especially if there are less visible dependencies between the 2. I then mentioned anyway it could be done with Python + boto3, with AWS CLI + bash, with Pulumi, with CDK and then after some extra talk, also with Ansible. They didn't want a long answer with lessons learned in real prod, they wanted a oneliner answer: Ansible. They told me then to be shorter in next answers and proceeded to ask like 30 questions in a row involving bash, Linux, Terraform and Kubernetes knowledge, to which I answered all correctly (and with the one-liner answer). The result: discarded, because I chaotically answered to that first question. Although I was somehow offended because I don't like to be discarded, I think I dodged a bullet in this case.
- bhaney 2y ago> Although I was somehow offended No somehow to it, that's just offensive.
- darkwater 2y agoYeah, indeed. I gave my feedback to the TA that was managing the position, although with little hope it would be of any use.
- thebruce87m 2y agoI’m no master of English, but I think “somewhat” is more commonly used here rather than “somehow”. Edit: I’m no master of replying to the correct person either.
- darkwater 2y agoGP here, thanks for the correction!
- 34hadsF 2y ago[flagged]
- lnrd 2y agoI will never understand how can someone say so confidently such a broad statement believing it truly applies indiscriminately to every person of a country with 18 million people. Even if you had some bad experience with dutch people how can you really believe this automatically applies to all of them? Geez
- isaacremuant 2y ago> are sticklers (mierenneuker), focus on irrelevant things, operate in cliques and have gigantic egos while pretending to be humble. I'd say these weaknesses are common among many cultures and definitely a thing from people with authoritarian mindsets ("leadership is right because they're leadership"). The same company might employ these people in one team and not in another. You don't really know until you're dealing. Minimizing their ability to stand in the way of progress is key.
- deleted 2y ago[deleted]
- jonathanlydall 2y agoFrom a lot of the comments it feels like many people don’t seem to understand what the interviewers were looking for. To be clear upfront, it wasn’t simply getting the right answer spat out by the candidate’s solution. At one level they were trying to asses that you did in fact know how to write code, but since they’re assuming most of their candidates can write code, they were also checking to see what you would do when presented with evolving requirements and constraints. If I were the interviewers (considering candidates are more stressed than they would normally be on a job), I wouldn’t necessarily require the candidates got all the requirements met as long as they were clearly on the right track and able to explain what they were doing. Although the technical assessment was contrived (which is okay in an interview), it was absolutely not a “leet code” style problem, but instead super approachable and easy to understand. It doesn’t seem they were doing anything to “try catch people out” so as to disqualify them, but made it interesting enough that they could hopefully get a bit of insight into how the candidate tends to think and behave. I do think the interviewers were silly to entertain the candidate’s approach for as long as they did, after it was clear that it was very impressive, even if highly impractical for the actual task at hand (which was to show the interviewers your typical day-to-day approach to coding tasks), they should have said very clearly to the candidate “your solution is very impressive and clever, but as we’re trying to gain insight on your approach to typical day-to-day coding, please change your approach such that we’re able to do so”. And they kind of did say something similar, which the candidate essentially ignored to… outsmart them? If you ask me, the candidate is very skilled and intelligent, but at the same time not very smart in terms of understanding what other people actually “need”. Most properly experienced software developers have learnt that often what customers “ask for” isn’t actually what they need, very often you give them what they asked for and when they actually see it in action, they realize it won’t actually do what’s needed and then iteration happens. The candidate in this case gave the interviewers what they asked for, but not what the interviewers needed from them. The hard parts of software development is almost always not about building something that technically works, but rather working out what’s actually needed. My message to the candidate is, you seem very technically talented, but you don’t seem to understand very well about how the world and most people in it tend to “work”.
- Dansvidania 2y ago
- codingdave 2y agoI wish I could have seen the code at each step instead of just, "That was easy." Because he seems to have focused on the functionality of the code, not on the clear message that their goal is to see how robust, reliable, and readable you can make your code. I don't think this interview was actually about the code, it was about long-term maintenance and risk avoidance. So while I am not saying I love this interview method, and other comments are correct that weird tricks seem to be required... I still think the interview served its purpose. OP is not a good match for this company. No judgment implied there - this is the purpose of interviews: for both sides to see if they work well together. In this case, they do not.
- grajaganDev 2y agoWould any developer be a good match for that company? My judgment is that this company has no idea of what they are doing. Not uncommon for companies with under 50 employees.
- wakawaka28 2y agoThey know exactly what they're doing. The code, while clever, is bad for understandability, extensibility, and debuggability. They tried throughout the interview to get the candidate to do something else, and he ignored all advice and hints. If this even happened at all. It sounds like a "just so" work of fiction.
- joshuaissac 2y agoThe rules that they added, like the ban on mathematical operations, made it clear that they were not looking for understandable code. His code could handle new rules without a problem, so extensibility was not a problem either.
- wakawaka28 2y agoNear the top of the article: >While the base algorithm is very simple, the point of the exercise is that the interviewer will add new rules to test how you update the code while keeping it readable and maintainable. As for this: >His code could handle new rules without a problem, so extensibility was not a problem either. Ok, now I want you to query a database at runtime and write the output to a file instead if the number is in the database. Good luck with adapting this type-theory solution, and good luck with debugging this crap. It's a PhD-level solution to a freshman-level problem, that is very atypical and uses niche features of the language that might fail unexpectedly due to language limitations. On top of all of that, the story sounds like fiction as well. But who knows.
- trhway 2y agoThe author really looks like a junior, though unquestionably smart, dev. What he wrote isn't enterprise. Enterprise is spaghetti - the first version would be simple number array and division, and once numbers became strings and math isn't allowed, instead of division just run over the digit characters doing simple modulo 3 math in non-math way - as required - using say if/case as matrixes aren't allowed ( "3456" -> 6 mod 3 is 0, 5 and 0 mod 3 is 2, 4 and 2 is 0, 3 and 0 is 0 -> Fizz ). Met not digit -> drop that number, move to the next. Met decimal dot -> start modulo again (set remainder to 0), and if it is not a first dot in that number -> drop the number, move to next. Basically any new rule is just an additional if/case branch or a flag/counter. Kind of self-documenting and easy to add and to remove/modify. switch (ch) { case '1': case '4': case '7': switch(rem) { case 0: rem = 1; break; case 1: rem = 2; break; ... break; case '2': case '5': ...
- deleted 2y ago[deleted]
- tanepiper 2y agoHonestly, if you are still using FizzBuzz in 2025 as a hiring question, you don't deserve the best developers. If you're still demanding a university-level education for a full stack developer you're going to be missing out on some great individual contributors. I get that smaller companies can't afford to mis-hire, but they are also not a FAANG - when I read this, I doubt I would have passed.
- iLoveOncall 2y ago> 1. Max of 30 lines. Lines taken by the input array do not count. > 2. Max width of 100 characters. Lines must break on natural breakpoints and not with the aim of optimizing for following the rules. Comments do not count toward this limit and would be positively valued if they are helpful. This is the point at which I would say that I've heard enough and I'm not interested in working for their company, before I hang up the call.
- kej 2y agoI'm curious what the full starting instructions were, and I concede that this might be a regional or cultural thing, but this entire article is missing that in the traditional children's game and in most online FizzBuzz problems you have to output the original number for numbers that aren't multiples of 3 or 5. That is, the input [1, 2, 3, 4, 5] should yield the output [1, 2, "fizz", 4, "buzz"]. I'd be nervous about an applicant that came up with a very clever solution for the hard part of a problem but completely overlooked the simple part. (Again, not sure whether this is what happened here, but the change from how the problem is usually presented makes me wonder.)
- rvz 2y ago> The position was for a Node.js backend developer. Seeing this being used in the backend is really questionable. In fact, I then question the overall skillset of the team as to why they need to use Node.js or JS-related technologies in the backend. As soon as I see any recruiter or company mentioning any usage of Node.js or JavaScript or TypeScript in the backend in the job description, I just laugh and delete the email and never reply back. Introducing such unsound technologies into a production system responsible for maintaining a critical service is a recipe for complete chaos and disorder and tells me that your company is a joke that exists to prepare their developers for failure.
- deleted 2y ago[deleted]
- yobbo 2y agoThe base conversion insight was great. With this insight, the solution could have been just as compact and much more readable without using types. Sometimes it is possible to be too clever.
- jodrellblank 2y agoThe base conversion insight is annoying; they mandate the form of the input in detail down to individual characters and mandate that you can't use numeric methods, except that in this one situation you can completely control the input and do so in a numeric way. You can't change programming language after starting, but you can change the input format on-demand? If you can choose an arbitrary input pre-processor, just choose that the input is the desired output and your program can echo it. By rule 7: "Numeric types, number literals and their associated methods and operations are forbidden. The input array must contain a string representations of the numbers. The programmer can use whatever representation they see fit with the only restriction being that it could only contain letters, numbers and symbols that could be typed with a single stroke (they didn’t specify which keyboard layout, in mine, ñ and ç can be typed with a single stroke but I assumed it was an US keyboard). The max length of a string representing a number is 6 characters." The numbers they care about are 1 - 1000 and the max length is 6 that leaves two spare digits, so decide that the input format is "tf0000" where the first two characters indicate if the number is a multiple of three, or five, respectively.
- fildevtronic 2y agoI was expecting to read that this was some big time FAANGing company interview…but .no
- skeeter2020 2y agoDid the interviewer caution about the candidate's direction because they cared about the candidate and wanted to help, or because the solution was unique, unfamiliar and made them feel uncomfortable? If you tightly script your interview, but then present it as open-ended and flexible: that's on you. My take if I was interviewing (and forced to use this approach): appreciate what a interesting interview this was, explicitly tell them "wow! that'd didn't go as we planned, but interesting approach!", maybe steer conversation to the pros/cons of unique/efficient solutions vs. less terse / bog-standard approaches, have some prepared code to debug and refactor (instead of expecting the candidate to produce it). I do a lot of interviews and most of them are so boring and forgettable. The best ones are unique and the candidates shows passion about <anything> in any demonstrable way.
- whstl 2y agoYeah, I'm pretty sure the typescript solution was way beyond the skill level of the interviewer. Which is fine. But what's unacceptable is that a lot of people in our industry are not mature enough to admit when they don't know something, and instead just chalk it off as "unreadable" or some other adjective.
- doctorpangloss 2y agoEvery candidate who has ever shown me an interesting solution to a purposefully open ended programming question wildly exceeded expectations.
- lowbloodsugar 2y agoI was once interviewed by someone who is quite famous in the industry, even then, and he looked at my program for his test and said “This can’t possibly work.” And then later I got the job offer because he’d figured it out and it totally worked.
- z3t4 2y agoI think this might be a troll post, but here's my comment anyway. The reason why you didn't get this job is because they filtered out themselves, it was not you that was bad, it was them thinking you where too smart for them. It took a lot of time for me to figure out this, that in a relation you want someone that are on the same level. I used to think that companies want to hire the smartest people... But no, they want to hire people that are like them. Here's my tip: Start filter out jobs instead of having them filter you out! There are many jobs, especially if you are willing to relocate. Only apply for places that are as much into types and functional programming that you are! Or at least on your "nerd" level generally. Do the company have a technical blog that writes about this stuff? Do the company have a technical speaker that speak about this stuff? Is anyone at the company writing technical articles about this stuff? If you see a good article, reach out to the author and ask if they have any openings or can recommend a good company to work for. Also if you are applying for a senior position, and you get to an interview, you should be talking to them as if they where 5 year olds. Even if they say they have 30 years of experience, explain stuff like if you where talking to a kid. For me it's much easier to come up with a better algorithm then explaining to others why it's better. It feels like explaining it to my dog.
- James_K 2y agoI don't think this has much to do with intelligence. Imagine you were an interviewer, and you had two candidates. One passes the test using a well put together orthodox solution, and the other does so using an unorthodox one. Which would you hire? I think we like to imagine we would prioritise the more creative of the two, but practically you may struggle to run a business where everyone has their own ideas about how to do things. If you are going to actually get stuff done, then I think you need a certain number of drones—people who follow orders reliably to produce predictable outcomes. If you don't want to be a drone, then you probably shouldn't apply for jobs given that drones account for the vast majority of employed people.
- bluGill 2y agoThere is a lot more than ability to code that you should care about when hiring. In an interview I won't know what you do in the real world. I need a problem you can for sure do in an hour even if you have never seen it, with time left over. Fizzbuzz is good because it is weird enough that you have to do something you won't like for long term moaintenance, but not hard.
- crosser 2y agoSmall company in Netherlands? My guess: management realized that they don't have money, and axed the position. They cannot say it openly, so had no choice but to ghost the interviewee. Which is of course still very frustrating!
- joshstrange 2y agoThis is a horrible interview process. I’m not even going to comment on the salary other than that company must be quite full of themselves to offer that low and give a stupid technical test that proves nothing. Hazing-style technical tests are just dumb and this absolutely qualifies. On top of that, I hate technical interviews that tell you that you can’t search the internet or use toolsets that you would use daily in your job. Why do companies waste everyone’s time on exercises that are not representative of the work/working conditions? When I ran a hiring round last year I spent a good chunk of time putting together a test/process that tried to closely mirror the type of code/problems you would be solving as an IC. I had almost every candidate (even the ones we passed on) commented on the process and how it was no-nonsense and letting them use whatever tool/resource/etc they wanted to solve it made it less stressful. I even told people they were free to use LLM/AIs. After competing the base test (which they did without us watching, it’s an easy base problem) we asked candidates to modify the code to handle one more use-case (very simple, nothing like the silly rules the OP was given) and it was very clear which people understood the code they/the AI had written vs the ones that could prompt for a solution but didn’t understand it and thus failed to modify it to account for the new use-case (or struggled heavily for something that was a 1-3 line fix depending on how you implemented the original code). I truly despise the hiring process from both sides. Both parties are asked to make life-altering decisions on very little data. We had a 4-step interview process: * Introduction, ask basic questions, get to know you * Technical test and problem solving test (the problem solving test was talking through a real issue we had run into, asking you to talk through possible ways to solve it. There is no "right" answer or rather there are multiple right answers) * Debugging test, we produce code with bugs in it, you find/fix all the bugs * Final interview with owners of the company Last time I talked about this in HN I had at least 1 person complain about how long the process was. Normally we'd get through it in 2 weeks or less with a candidate (depending on scheduling) and it was a total of about 5-6hr (depending on how long the tests took). I'm not a fan of long and drawn out interview processes, but this was the bare minimum process I could come up with that would test candidates in the areas that we cared about. Also, I wanted to give ourselves multiple chances to interact with the interviewee as some people came across great in the first few rounds, and by the later rounds issues had started to surface. Is 6hr really a crazy amount of time to spend deciding if you want to commit to 40hrs a week to a company for potentially years of your life? Yes, yes, yes, I know you can leave after a week if you are unhappy and I know the company can let you go after a week if they are unhappy but it's never that easy and switching jobs is hard/painful/stressful (as is firing someone). I am strong opposed to the "just hire them and fire them quickly if it doesn't work out", in fact I find it morally repugnant to play with people's lives in that way. Also, I assume the people who suggest such a corse of action are not the ones that have to onboard new hires (a process that is very involved and takes a lot of time, for me at least). This was an interesting post for how to solve FizzBuzz in an unorthodox and just "cool" way but this test tells you nothing. In fact, if a developer wrote code trying to be this clever, I would reject it at PR time. It's cool for code-golfing but LoC is always a stupid measurement when it comes to maintainable code. I wish the OP the best of luck finding a job that doesn't make them jump through hoops like this again.
- Dansvidania 2y agoThe interviewing company does seem like a dodged bullet at first glance, but: - the requirements being weird might very well be modeling how weird things often get in reality. Rules are often not recorded and not repeated, and very often they seem arbitrary from the POV of the developers. - the interviewers hinted that the direction was not what they were looking for - a senior dev needs to apply his own common sense to understand what the truly appropriate solution is given the stated priorities (readability and maintainability were stated) - not to mention the fact that if the interviewers don't understand your code, things won't go smoothly for you either way The fact that they said, paraphrasing "..pick any esoteric language.." might investigate whether, given technical freedom (EG: to pick your own stack) you will build an incomprehensible codebase that will be hard for the company to deal with in the future I think the author is indeed very clever and I learned a few things from reading this write up (thanks for sharing!) but I think the interviewers were right not be impressed. If I were you, I'd try to dumb it down for your colleagues.
- pinoy420 2y agoAbsolutely. This would be a no from me
- Dansvidania 2y agocould you at least tell me why I am getting downvoted?
- GoToRO 2y agoBlaming the victim?
- cstrahan 2y ago> the interviewers hinted that the direction was not what they were looking for No, they said they couldn’t see the utility in what he was doing, which is very different than being told that his solution is unsatisfactory. I have had countless interviews where I’ve been told that they don’t see where I’m going with something, and when I’m finished they admit (after some time processing) that they are impressed that I came up with such an elegant, simple solution. When asked what they had in mind, it turns out they (initially) thought the optimal solution was some contrived, overly complicated thing. If I let everyone’s interjections derail me, I’d never get through most interviews. Think: have you ever seen a candidate give a crazy, overly complicated solution in an interview? Yes? Well, such interviewees (the ones that write 100+ line Fibonacci functions that look like they might be doing some memoization, but if you squint it turns out they aren’t even using the memo table they constructed) go on to be become interviewers — it shouldn’t be a surprise that many interviewers unintentionally throw candidates curveballs by expressing incredulity in the face of a non-shitty solution. If something is truly a hard “no”, then a “no” must be said — expecting the candidate to guess what’s going through the interviewers head is ridiculous.
- ben-schaaf 2y agoWhat's the plan for the candidate choosing C when they hit rule 7 and simultaneously have to use strings but the `char` type is banned? How are they supposed to loop through the input array without an increment operation? Pointers are basically also numerical types, are those banned as well?
- pinoy420 2y agoCosmic rays and a lot of luck
- throw16180339 2y agoThere's always recursion.
- zo1 2y agoThat's the point at which most sane people would tell the interviewer to "GTFO". If they're hiring for some hyper unique role where they have to deal with some contrived AI in a dark room and they have to do it because someone's got a gun to their heads and they have to invent calculus to solve FizzBuzz in under 14.5 minutes otherwise the memory is corrupted and the world explodes, then sure they can ask such a contrived interview question. Until then, this company is either crazy, bored, not looking to hire a candidate, or simply fictional and made up by the author to tell a feel-good story that makes them look like the Einstein-equivalent for programmers.
- pockmarked19 2y agoIf this is what people imagine when they hear of whiteboard interviews, no wonder they hate them! What this was and what a technical interview is supposed to be could not be any more different. This interview reminds me of some experiences I've had in my early career, and now I know better than to spend more than 5 minutes with this kind of nonsense. The easiest tell is the adversarial nature of it, but the moment the "max of 30 lines" slide was revealed I'd be out. Scratch that - I'd be out when I saw there were slides. The point of a technical interview isn't to repeatedly try and throw caltrops in front of someone, and a company that doesn't know that is unlikely to be a great place to work.
- astura 2y agoDumb hazing exercise. I would have walked out.
- BobbyTables2 2y agoNever considered using base-15 for FizzBuzz - that’s brilliant! This may sound surprising, but interviews are equally about convincing the candidate to join the company as they are about convincing the company to hire the candidate. The former involves much more than just the number for compensation. I think you dodged a bullet here. Once found myself in a similar ridiculous situation (Google interview). Looking back, I have to wonder if they expected me to put my foot down and tell them why their scenario was getting ludicrous instead of continuing along. In the end, they determined I wasn’t even fit to be a sysadmin, much less a SRE, despite 10 years of relevant development experience with a wide technical background and numerous patents.
- pavel_lishin 2y ago> They didn’t want to tell me if I would be a contractor or an employee during the personal interview. They told me that they were just looking for the right person and that technicalities would be discussed later. ... that's not a "technicality", that's a crucial distinction that's as important as salary range or other benefits. This would be a huge red flag for me.
- spamizbad 2y agoBoy do I feel for that candidate. As a manager, while this is not the kind of question I'd ever ask, if I saw a candidate work through a problem like this I'd take it as a strong signal for a possible hire. Ghosting is a dick move period, but especially after a performance like that. I would like a follow-up discussion probing how open/accepting they'd be to skilling-up in their weaker areas, how they go about asking for help, try to suss out if they're prone to getting stuck in "ruts". But if I didn't see any red flags my vote would've been yes.
- kevinventullo 2y agoAm I crazy or is “conversion to base 15” very much a numeric method/operation? Like sure the API itself may have string input/output, but under the hood there’s no way it’s not doing integer divisions and modulos.
- Karliss 2y agoFrom what I understand there was no change of base within the solution code. Author just used the base conversion function to prepare some test inputs. "The input array must contain a string representations of the numbers. The programmer can use whatever representation they see fit" Allowing arbitrary string based representation of numbers also means that whole task becomes a bit silly. Why stop at base 15, when you could use what I call the "FizzBuzz" number system. In fizzbuzz number system the divisibility by 3 and 5 is encoded in first symbols of number. Something like 1="1", 3="F", 5="B", 10="B2", 30="FB2", 1000="B200". Digits represent rest of the number you get after dividing it by 3 and 5 if possible.
- umvi 2y agoAm I the only one that thinks TypeScript types are a terrible choice? His solution is clever, but if that's indicative of how he's going to do engineering work at my company, I guess that means I can expect clever solutions for everything, which usually leads to esoteric, architect astronaut code bases that will be difficult for his non-clever colleagues to grok/maintain. "Now the easy part! I just have to encode the numbers in base 15 and I could apply the 2 and 5 rule to 3 and 5!" Encoding things in base 15 is too clever for me. Back to the original statement I made: TS types are a terrible choice because TS types are not debuggable. If you get too fancy with them, you need a god in TypeScript to debug because you cannot set breakpoints inside of types and step through to see how generics and constraints propagate (as would be required by a mere mortal in order to debug). "Hey, there's a bug in Joe's fizzbuzz function, but he's out on PTO, can you fix?" "Sure, I'll step through with a debugger real quick... Oh wait, it's 100% typescript types, I can't step through with a debugger. I took a look but it looks like it's encoding numbers into base 15 for some reason... I don't want to break anything further, let's just wait for Joe to get back" "Actually, can you just re-write it using normal conditional flow logic? We want more than just Joe to be able to touch the code."
- whstl 2y agoHis solution was clever because the problem was artificial, constrained, and required him to be creative. He went to a solution he knew well, and the interviewer didn't ask to change. If you solve this problem and use strings to do fizzbuzz instead of modulo, would you accept me saying that you're a doofus that doesn't know coding simply because you didn't do it the normal way?
- kibwen 2y ago> His solution is clever, but if that's indicative of how he's going to do engineering work at my company, I guess that means I can expect clever solutions for everything I think this is uncharitable. The interviewer's demands to not use numeric types or any mathematical operations is inherently preposterous, and at that point the author can't be judged negatively for whatever contortions they needed to perform in order to comply with them.
- 2y ago
- yreg 2y agoOP, you are not the author, right? Do you know them? It seems like they might be interested in the comments here, unless the article is ancient.
- lcnPylGDnU4H9OF 2y agoIt reminds me of Typing the Technical Interview (highly recommended if one is unfamiliar) but seemingly more likely to be non-fiction, given the difference in storytelling style. I wish the author luck in their search. https://aphyr.com/posts/342-typing-the-technical-interview https://aphyr.com/posts/342-typing-the-technical-interview
- rapidaneurism 2y agothe point of this exercise was (1) to weed out people who could not code at all, (2) have people fail after 7, so that they could low ball them to below 50k as they 'failed the test but they might deserve a chance'
- deleted 2y ago[deleted]
- firesteelrain 2y agoWhat if the interviewers were offended that this guy is smarter than them? I once was given an interview question for a position at a company. Wanted me to create build scheduler in any language. It was a build engineer position. I started to do their at home exercise but ended up telling the recruiter I won’t do the exercise. It was pointless since Bamboo, Jenkins, or GitLab is what they should be using. Not some home grown build system.
- deleted 2y ago[deleted]
- cvoss 2y agoIf the interviewers thought the hardcoded sum table was cheating, they surely should have said that demanding the inputs come in base 15 was also cheating. (I think base 15 is the best solution though. The instant I saw the rule that permitted the dev to choose the input representation, I knew this would be the way to go.) But if the interviewers have to be persuaded that 0 is divisible by 3, I guess you can't expect too much from them. Or anything from them.
- joeguilmette 2y agoare you still looking for work?
- joeguilmette 2y agoDoes anyone have the contact information of this person? Are they still looking for work?
- moi2388 2y agoIt’s not your technical skills. I guarantee it’s due to you not living in the Netherlands and not being fluent in English. No matter if the job offers says they accept remote people, in the Netherlands they really value face to face contact and good and open communication.
- throwaway314155 2y agoRespectfully, if someone puts "remote available" on a job description and expects you to know they don't _actually_ want those applicants due to specific nuanced cultural differences, those people can go fuck _all_ the way off for wasting my time.
- defrost 2y agoRespectfully, "remote available" means little more than coming into the office daily isn't a requirement. It frequently implies to some degree that face to face meetings can be held and that languages and cultures mesh.
- PinkSheep 2y agoThis entire comment chain is moot, if that were the implication, they had no business interviewing him and wasting everyone's time.
- bhk 2y agoThe interviewers were fans of Franz Kafka, I presume.
- vander_elst 2y agoIf what's written on the blog is true, the interviewee knows their stuff technically and the interviewers were just bad: they wanted to check some boxes, feel good about themselves and be done. Nonetheless, by self admission the interviewee also didn't speak English very well ("This was my first interview for a foreign company and the first time in life I spoke english") and that could also be part of the problem or something we didn't know is how the overall communication went, this might have played a part in the rejection. A candidate, but also an employee, might be very strong technically, but they should be able to clearly communicate their solutions and play well within a team, having a genius Anarchist might not always be the best. Anyway, from the post, I'd have moved forward with the candidate and if they were rejected they probably dodged a bullet. Best of luck with the next interviews!
- stefs 2y agolooks like they failed this interview, not you.
- Cypher 2y agoThey were looking for someone who ignored the rules.
- theptip 2y agoThis sounds like a bad interview IMO. But also, don’t be this interviewee. Solving a problem like this with the type system is setting off all kinds of “too clever for their own good” alarm bells. The goal of a coding interview is to showcase as concisely as possible that you know the craft of software engineering. Fizzbuzz should not be considered an IQ test. The progressive requirements in the interview, while clunky, are getting at the reality of software development: there rarely exists a spec for what you are building. You need to be flexible to future requirements, and you need to write maintainable code that others on your team can understand.
- stonekyx 2y agoMaybe I missed something, but if DATA is given as an array at runtime, is there a way to put it into the type system? And if the result is in type system, is there a way to print it out at runtime without looping through all permutations of the possible characters? The solution was impressive and fascinating, regardless.
- b212 2y agoI think DHH was right all along. Typescript is cool if you use it alone but from my experience code like the one produced by the OP gets written by some ex-Java ninja and out of 1000 devs maybe 5 could fully comprehend what the code actually does. AI writes this kind of TS a lot. I don’t say TS is bad but most of the time I feel it’s like trying to kill a fly with a nuke. The worst part is I almost never had the issues TS tries to solve, after all adding prototypes to React took 1/10th of the time than annoyances with TS take. Great job OP, but my eyes bleed.
- xkbarkar 2y agoInteresting article and congrats on the original solutions, but wow! Is there any other field where applicants are subjected to this? Nepalese Ghhurkas perhaps ? I once backed out of an interview when they sent me an 85 page manual on how to prepare for the interview with them. It was not even a FAANG company, just a small IT solution with mediocre benefits.
- horns4lyfe 2y agoWhy have we allowed interviewing in this industry to become such a humiliation ritual? It’s on its way to not even being financially worth it
- cranky908canuck 2y agoBig smell on this is rules 9/10/11. These say that you will have to play a lawyering game. The OP didn't have the time to immediately see that.
- deleted 2y ago[deleted]
- deleted 2y ago[deleted]
- randomcarbloke 2y agoin 45 minutes for a node.js role? FML.
- PinkSheep 2y agoThe fact the author hadn't responded to multiple requests to contact here, makes me think too, it is a made up story.
- divbzero 2y ago> The algorithm must work at least for integers in the range 1-1000. We do not care for numbers outside that range. In that case, a list of 1000 strings should work just fine. Fast lookup and can accommodate any new rule that comes in.
- MattyRad 2y agoThere's notable similarities between this article and this parody piece. https://www.richard-towers.com/2023/03/11/typescripting-the-technical-interview.html https://www.richard-towers.com/2023/03/11/typescripting-the-... I'm not drawing any conclusions, just pointing out the odd coincidence. Discussion: https://news.ycombinator.com/item?id=35120084 https://news.ycombinator.com/item?id=35120084