I've had that "music player" coding challenge. Literally "make a fullstack app in a day that has tons of use cases. You have to fulfill them all and use exactly these frameworks and libraries". Where I work now it was just 3 questions like "you have this data, do X with it". Done in 15 minutes
I applied to this job that had a crazy interview process. 6 stages of meetings with various people in the company, a 2 day tech test designed to be completed over a weekend and a full day (unpaid and no travel expenses included) in London. I ended up telling that one to shove their job where the sun dont shine. Looked 7 months later after landing a role and it's still open!!
might be a thing where someone is asking for more people on X team, but someone else who doesn't want someone there doesn't want it. (Like the expert holding the job that is irreplaceable getting to influence the hiring process for potential replacements) yes its dumb but happens all the time in corporations. (usually when people have to decide wether to spend their departments money on job ads or bonuses, jobads get posted but not promoted and they are just yote out there)
I very recently just got my first job in IT. I was a fresh out of JS bootcamp child, enrolled in it at the start of 2022 when the market was ripe and finished by December when it all went to flames. I was desperate, unemployed and needing money so I barely had any say to any of that. He does have a point though: going through those selective processes takes way too much time. I had answered several super long forms with weird questions, done personality/culture tests, lots of take home challenges, even went to an office for a "live activity" that took one whole morning with several other people that were fighting for that job. It got super discouraging to go through the motions of doing take home challenges and filling out those long forms only to be ghosted, that was my mindset there, I was investing hours everyday for something I was 99% sure would go to waste. At some point I wondered if it was a good use of my time, I started applying to less jobs in order to study and make better projects to put on my portfolio, as well as learn new tech, maybe I could get an edge or at least apply to more job postings that wanted tools I didn't knew at the time. Even as a desperate guy who was selling stuff out I had in order to pay the bills I was already passing on applying to those long processes, though I don't know if that was the right call. In the end, I got a job because of a friend who gave me an indication. So yeah, hiring processes are truly garbage, especially today's market where companies have way too much leverage.
I heard of people contacting employees directly that they found through LinkedIn to get a job. I also have a friend that applied to a senior position, to find out that the company didn't mind him being just out of college. They listed a senior position to scare people away that weren't confident in their skills. Although I think having made some projects and knowledge of data structures, design patterns and algorithms would be good.
That's why i like coding interviews, it's no bs, just 1 hr, and if you're good you can close it faster. Totally it's 4-6 interviews depending on company so it maxes out at 6hrs but the closer you're getting the bigger chance you'll be passed because majority of candidates are dropped on coding challenge thus not wasting anybody's time.
I think the main problem is that the longer you spent on a take home challenge usually the better it will look. Therefore the company will be biased to hire candidates who put more time in. If a company makes it a requirement that you should not spend more than 4 hours on a coding task, the candidate who puts in 16 hours and lies about that will come out looking best.
Maybe there should be an app like codepen or whatever the kids are suing these days that companies can set challenges up on and you have a timer. If you pause you can't edit. Something like that. Maybe no pausing (so like a real interview)
@@ko-Daegu most take-home challenges are not simple next apps. They're more elaborate than that. They give you UX design, a working backend server with an API spec, and a set of requirements. You need to write a full-fledged front-end mini project that has almost all the best practices: proper CSS styling that match the design, proper API fetching, unit tests, end-to-end tests, etc.
Why is nobody thinking about the amount of time those things take: Let's say you applied to 10 companies, each one wants to to 4 interviews of about an hour, plus a take home of 4 hours (which in reality is more most of the time). You'd already 2 working weeks of stuff cut out for you. This might make sense for a Junior dev trying to get its first job. But a senior dev (or lead, or whatever) just would not have the time for this kind of shit. But then those companies wonder why they don't find people....
I also thought the blog post was about a long-form take-home “project”, and i will NEVER do these again. Made a video about my experience with this and confronted my interviewer years later. ua-cam.com/video/3eLLOh319kQ/v-deo.html
Watched the video when it came out, gotta say. That was some super insightful stuff and your interaction with your interviewer was a great addition. You rarely think you are over qualified and hence rejected when faced with rejection.
I used to love take home. This year, Reaktor asked candidates for summer internships to create a monitoring app of data they mocked and sent periodically via a HTTP call. It was a fairly long project (>4h, especially with a small GUI). After a few month, candidates received at e-mail stating that Reaktor, for financial reasons, would not accept interns except former interns they had last summer. I found that incredibly out of place to ask hundreds of candidates to take home a project that wouldn't even be evaluated because of poor management.
HR literally glances at your resume for 1 ms and they expect other employees to wage 4h long projects ? It is extremely unrealistic. Plus, what's the point of personal projects then, if you're just going to dismiss them and assign your own ?
That's incredibly disrespectful to the candidates, and a waste of everybody's time. IMHO they wanted something done quick and free, chose the best project and basically just said: Thanks for the app, FU.
He has a point about the time estimates and unknown criteria. A very few number of candidates ask clarifying questions about the ways that the challenges will be evaluated. I would recommend that candidates ask for what the company wants to see within the challenge "in the interest of making the best use of the available time". Some will want to see SSR, others defensive code, others some level of testing... it's a mine field in terms of things that you could easily miss that will get you cut from the process. Maybe reject the ones that refuse to help you do a good job.
I did a nice simple challenge, for an internship, that had us make something akin to poker - rng roll between 1 and 11, fail if total goes above 25. About 50 lines of code, include spaces and comments. The only thing they said, that suggested why they didn't want to proceed, was that I didn't break my code into enough separate functions....... a few dozens lines of rng rolls and '+=' needs to be broken up to make it easier to understand 🤦 I decided I didn't want that job anyway, after that - realising they are unable to communicate what they are hoping to see, and expecting interns to treat every tiny piece of self-contained software to have the scalability of an enterprises flagship product... If they asked for that, I could have given it, but a lot of my teaching has addressed that doing so is often a waste of time, particularly in scenarios where you know, for a fact, that the code will never be changed after submission. 'Smart use of your time? Using only the processes necessary to get the job done well? What a shame, we don't want that at our company!'
I'm in my fourth job; The first one and last ones were a live coding challenge, and the two in the middle were take-homes. I had good experiencies with all of those four because they met the criteria the article talks about. I had other 3 technical interviews that I didn't went through or was rejected: - 2 live coding with facebook, when I decided to not go further; - one take-home with a Swiss company that I won't mention the name. This take home was before the 3rd job, with was a take-home as well. This swiss take-home in particular was a total mess. It was extremely time consuming and unclear, as I didn't have clear specs and had to base my job in a lot of assumptions of the business rules. It was a complete waste of time. On the debriefing, I had 10 minutes of actual debriefing, then we proceed to discuss job culture and later he asked about Elon Musk (?????). It was a shit show. But I didn't give up. I did one other take-home (3rd job) that landed me a good job. But still, I totally see where this could go, and I partially agree with the article. The problem is that some people, specially juniors/mid, don't have the bargain power to say no.
I worked for a consultancy and we would give people a take home with intentionally vague requirements. Getting shitty initial requirements from clients was a core part of the job and asking the right questions to gather good requirements was a skill we wanted to test for - it worked well for us.
but do you state this _intentionally_ "hey, we are giving you this and there is many directions to take this. it is our job to suss out the requirements by customers and we are measuring you on this" or do you just expect them to know something you didn't know until you had the job? typically i see a lot of the latter than the former. testing something that the interviewer didn't know until they were in their position
@@ThePrimeTimeagen Yeah we stated it intentionally but didn’t spell it out completely directly. The exercise was given to them in a call so we encouraged them to ask any questions about the requirements while in the call, reminded them to get in touch if they needed anything clarifying, etc. It’s also something we only did for our lead and up level positions because we expected them to have those skills on joining. Of course it was a take home interview and we appreciated not everyone had all the time in the world to spend on it so we took everything with a pinch of salt; it just gave us a basis for asking questions in the longer form, post exercise, interview.
@@guyfromdubai it was a balancing act. It's hard to convey all the setup that was done in a short youtube comment but they were put into a scenario where it was clear that they could work with us to refine the problem and then implement it. We did not outright say "here's a brief with some glaringly obvious holes in, make sure to clear everything up with us before you start" because that would defeat the point of the exercise. We wanted to see if they would attempt to refine the requirements with us, or if not, what assumptions did they make when completing the exercise and could they justify those assumptions. Regardless of what people think about the approach, the reality is that it was extremely successful for us and we hired some great people using it. It was definitely more suited to a customer centric role though; I wouldn't expect it to be as valuable in a "product company"
2:39 They really messed up quoting you lol... Their quote: It leaves an hash tray in my mind Actual quote: They leave a taste, like an ash tray, in my mouth
12:02 I had a whole angularjs to angular2+ conversion project for one of our clients I put my hand up to do, with at best 2 weeks of self teaching angular2+. Was told by the lead devs and project manager it should only take 1 month to complete, even though we didnt have any documentation of the project at all besides "reading the current legacy code". Long story short it took a few months more to complete. I had a lot of fun working in angular for the first time, but my god that project was a bundle of stress. Lead dev was on his way out of the company, no one was checking my code so I had to balance learning wtf I was doing, building it half blind while trying to keep to a half decent timeline.
my last 'coding challenge' was 'Deploy a simple JavaScript app that posts timestamp in json into a Kubernetes cluster in the cloud provider of your choice. I spent over 12 hours on this coding challenge, I finished the JavaScript(which i don't know JavaScript) in about an hour but the fact that i was supposed to have a 1 button deploy for the entire environment and it was supposed to be open to the public internet meant i had to add items to the project, when you're posting something to the internet you're not just posting a kubernetes cluster, you're making sure you store keys in key vault, you're setting DNS records, you're creating certificates for both web app and the cluster, you're generating ssh keys, you're creating helm charts..., this also totally excludes the fact that after i built my JavaScript app I had to build the container for the thing, create a container registry and push that image to the registry to be available for the helm chart / k8s. idk maybe i just took the coding challenge the wrong way
The worst coding challenge I ever got was I was told to make a slot machine in type script. I had never used typescript before (use JavaScript) nor was I a framework guy. I was kind of desperate at the time, because I needed an internship. The Coding Challenge was a slog, but after a week, I made something that worked, but I didn’t thoroughly test it. The screen-resizing broke the rendering and I didn’t notice that and I collapsed. I didn’t want to say that I learned typescript with a framework over the course of a week, I felt embarrassed. Now, I just think that the company missed out on trainable talent that would’ve quickly beared results, because I have now been real world tested and I haven’t heard anyone talk that bad of my code and ability to learn and adapt. I think some companies will miss potential because they open up junior positions to a bunch of desperate dumb college students and are not willing to try and find learning ability as opposed to experience.
Idk... Sounds like a pretty easy coding challenge to me tbh, definitely don't need a framework for it either lol. Why do junior programmers expect to get hired if they don't know how to program?
Assuming that the job was "frontend developer (internship)", that just highlights that you were the wrong choice for the job and still have much to learn and should do practical projects instead of leetcoding JS problems. It's a simple task and over-engineering it to a framework is the wrong way to go. It should take a few hours at max. Now you also learned a bit about TypeScript, responsive design/mobile-first and practical solutions. If you fail to see that, then you are not "trainable talent that would’ve quickly beared results" and need to do practice more.
personally I think its a shitty move to expect your interviewees to do something in a certain language unless it was explicit part of the job description.
I would've accepted you for the internship. These kind of bugs are typical and easily learned. I would go through the code with you and probably would've asked you if you had prior typescript experience or that this was your first real ts project. I would've also asked you about edge cases and if you missed anything I would ask you there if you can fix it If you said that you learned it for this project then I would've known that you're capable and motivated to learn which is the main trait I look for. If you can solve edge cases, then I know you're able to solve bugs and reason.
I once had an interview that had a hand written coding challenge that was not a whiteboard or computer, but paper. The expectations were to show how well I knew the oddities of the language and show my coding style in my chicken scratch.
Asking people to code on paper is so dumb, I used to do that in my high school programming exams. Like, using Notepad would be far quicker, easier on my hand and presents no advantages that could be considered as cheating
I think the problem with the coding interview is the thing that gets you an interview isn't data structures or algorithms, it's knowing how to do the job (portfolio projects). Sure they're very transparent about how to pass the test to get the job, but the things you have to teach yourself to even get an interview have very little to do with algorithms
The idea you can go to 4 years of college, and still need to learn a framework, build out a portfolio and memorize algorithms. You should know how to do Big O, you should know the concepts of recursion and dynamic programming but why do you need to know merge sort by heart?
@@terrencemoore8739 Lmao, a framework?? React might as well be a framework by itself with how much you have to know to be able to configure it without a framework (I did, not fun), or you have to learn a framework. Okay. So let's say you know NEXT. Well no one uses just CSS anymore so you either have to learn SCSS or Tailwind. Or worse, Bootstrap. And also, you can't get a job with just Js anymore, you *need TypeScript, which isn't a big deal. What is a big deal, is having to configure webpack to work with it, having to configure it to work with it, having to learn all the boilerplate to be able to use it effectively with each technology in the stack. If you're unlucky enough like me you also have to learn Redux. Redux comes with its own way of doing TypeScript types if you want to not write super bad code that others can't work with. I learned all of that, and the company I'm interviewing for (and likely will get the job with) uses Angular, so I have to learn that after learning the whole React thing. But I have to learn that with Redux and with TypeScript and with Rx.js. Luckily I know how the MVC model works because I already learned PHP and Codeigniter 4. Do you see where I'm going with this?
hey, author of the article here, just wanted to thank you for your input and willingness to accept where you were wrong and where we disagree, and also to say: rekt
hah! I really appreciated your funness in all of this. i hope you know i hold you in high respect for the fact you did this all. most people get offended and say mean things on the internet, you instead defended yourself better and more concisely. really appreciated this.
Requirements are not always clear, this is a part of being an engineer. You have to deduct scope and requirement. Bit hit or miss, depends on the company, the interviewer, and the company culture.
Hats off to both of you for not taking it straight to the panties and getting butt hurt over a dissenting opinion. We really need to be brutally honest with ourselves first and with others as well. And this discourse was a master class in how to share conflicting opinions in a respectful and introspective way. We should have strong beliefs, loosely held. Cheers to you both.
One important thing also. I don't know how the tech world is in NA, but in EU, and especially in France (since JM Fayard is French), devs do have a lot of power in the interview process, because there are a lot of job openings and not enough devs to fill them around here. For example, I've quit my job recently, and started to look for a job a week ago. At the end of this week, I will already have talked to 12 different companies, and I've been picky, I've refused to talk to multiple other companies. And sure, I have 13 years of experience, including 6 years with Python, 6 years with node, that makes my profile look interesting. Oh and just to be clear, most companies contacted me themselves as soon as I have updated my linkedin profile. But even when I changed company 6 years ago it was the same thing. So maybe it is easier for us to say no. And at the same time, I think big coding take homes project might be more common around here. 6 years ago I interviewed with multiple US companies, and only one of them had a tech home, and it was a not so complicated web server in Python. Whereas project from French companies can require 10+ hours of work, which can be hard to do when you have 10+ interviews in your first week.
I've had only one "live programming" test at home and it was a disaster. I've been programming for a while now BUT I don't do any programming at home. So, when I scheduled this "live programming" test, I had to some time getting a development environment setup which was completely unexpected. I don't do well in time-constrained tests. On the flip-side, if I have an assignment that's due in whatever amount of time, I'll hit my target. Psychologically, I don't do well in a test environment. lol
Recently I got a quite big homework challange and I really liked it. I was able to show a lot of my skills and knowledge and I think the outcome was pretty good, they really liked my solution. If it was a 1-on-1 interview I would most likely do much worse as I struggle concentrating in such environment. Even at work I sometimes ask someone to cut the meeting, give me 15-30 min to work on my own, and meet again because my brain just works better this way if I have to solve some problem.
14:02 There's an "inverse cargo-cult" where you believe that everyone else's planes are also made from dirt and sticks because you've never seen a real one flying.
For the first company I interviewed was hired for (and didn't even send job application BTW) gave me a take home assignment with UI proto showing what it is supposed to look like and basic functionality, and data in JSON to be used. Requirement was a framework I had not even heard of, Aurelia but I was also in place where I had more than enough time and I wrote the core of the thing within 1 maybe 1½ workdays, then spent maybe work day's worth of time to polish it up and sent it back. And as it did match the specs, code was ok quality and the CTO was ok with it and I was then given an interview at the local office, where I was interviewed by both of the team leads that were working there, mostly to see in to which team I fit better. And the take home project was used as a basic talking point, but as it was apparently of good enough quality so we moved to talk bout more what I am looking to do and about company it self. I was also toying with the idea of making the 2nd part for that as well, which I most likely should have done now that I think about it later. And since then I've changed company once, and currently I enjoy the place where I am.
Since you hit on the topic, what's a good way in your opinion to do code reviews? I work for a small company and I'm the "senior" guy for react, so I get code reviews requests from developers who are generally more experienced than Mez but only started with react. I often just accept the whole thing because it works and I don't wanna be pedantic. Like it's not the code Id write personally but it's not wrong or ugly and at the end of the day it works.
I was asked do take home test once for which I found a public repo by some rando for the exact same test solution for that same company. The test was to use the companies own api and build a FE. Have fun distinguishing between and comparing candidates effectively with that my dudes...
I was rejected because I didn't follow a package naming / structure that the company wanted (on a take home). Code was functional and highly performant LOL. In reality you will eat as much of the interview process as you need to depending on how badly you need/want the job.
While I agree with the general takeaway that there are plenty of opportunities to go wrong with coding challenges, as a technical interviewer, I feel like I have to know you are capable of writing a simple program in the language of your choice *at least* - Just knowing algorithms and datastructures is measuring whether or not the candidate has studied to learn the secret handshake.
I actually really like getting take-home challenges. I find that if you are very knowledgable in the domain then the assignments are usually trivially easy to do. If I'm finding it hard and not enjoying the test, then I might just not be a good fit for the role. (I do have a bias as I've generally always been hired after my take-home challenges and could potentially see this perspective change if this wasn't the case)
So I've heard him mention finding a cycle in a singly linked list a few times. I never learned how to do this, but it doesn't sound hard. Have 2 pointers, have one move one space and have the other move two spaces. If they ever meet, there's a cycle. If you want to find what the cycle is, stop moving the one that moves 2 spots. Record every node until the second pointer is reached again. I could be way off, but it seems simple to me.
I think take homes can be a lot of fun and that's my measuring stick for if I'll do it or not. If I read it and think "oh, this seems fun" I'll do it. I used to outright refuse ones I didn't want to do, but billing them at my hourly rate sparks its own kind of joy. I'll have to try that lol
I'm having some fun learning and implementing data structures. Unpopular Opinion. Once you learn 1.) How a certain data structures works. 2.) How an array works. 3.) How a node works. 4.) How to manipulate pointers. You'll already learn a lot about data structures. Since most data structures are just combination of those 4.
When I was looking at my first dev job I eventually got to the point where if it took longer than 10 seconds to apply, I wouldn't. If I got an interview and then homework, that's much higher priority so I'd give it a go. But if there were multiple interviews or a lot of homework, then homework made you lower priority, and lower again the longer it would take. A few years later and employed I'd look at the process more as me choosing a company than me spamming seek because none of these people even have a job opening. So I'd do the homework and just resent them for it, especially if it was followed by a low ball offer or some other deal breaker that could have been presented first and saved me time.
I was once given a take home which was doing a CRUD with frontend and backend with authentication, and with maps integration. I had to do it in less than 3 days. Did it, they didn't even answer. Every day I feel like a worse and worse programmer.
@@dandogamer I'm fine doing any kind of test, but it should be required that your employer at least answer "ur dumb bro lol" so I might know what went wrong or something. As you say, it's super disrespectful. :c
I interviewed with Amazon a few years go. On the final interview stage, with the hiring manager, I was presented a blank code editor and tasked to "design a parking garage in TypeScript". Then they ghosted me for a month before telling me the position is only open to college grads. Luckily I found a better job at a sane company writing Go 😂
Some "takehome" suck, besides the challange and time it takes some requirements say things "use clean architecture", "clean code", etc, clean is just an adjective, and means nothing to say "clean code", but ok, i think it is fair to assume they mean "according to Robert C. Martin", then you write your code and separate you modules by feature for example, and someone looks at your code and says it is not clean architecture because it doesn't have top-level "data", "domain" and "infra" folders, and you have get this kind of shift from someone who didn't even read the clean architecture book.
I agree with that man. I'm not accepting any more projects. Yes, I have a great job, but even if that's not the case, I won't. If the company publishes publicly all the projects with comments and some kind of points, that's a big difference. Then I could learn by looking at other people's code, see other people's practices, make my own judgment about whether that person really deserves the position. I'm not going to waste a single minute of my time "volunteering" where my code might be used in a production (I don't know that, it's closed source). I'd rather watch a boring series on Netflix or go out in nature than work for nothing. I like the idea of paying for the project. Although realistically, there is not much chance of success to charge for that working time. However, if I can't find a job, I'd rather change the whole industry.
I made a html media player similar to what os x offers, a play button with.a radial bar of advancement. There are a few events you can listen to in order to get the advancement, for knowing when to start the play through, it's complete.
man, as someone that codes well but doesnt have a good cv i like having take home tests, so i can show what i can do, but, you know, only if they're obviously not a request of some project, so it would be working for free.
I had this company give me 2 assignments which were suppose to take 4 hours each. Already pretty steep and a significant investment. I was unemployed at the time and had never done any take homes so I said f it and decided to dive in. The more I worked on the project the more I realized how much of time sink it was but I was already too comitted so I just kept at it. It took me 6 whole days and after submitting 2 projects and a pretty sizeable write up about them, the employer went on to brag about the unexpectedly large number of applicants they currently had preventing them from reviewing my work any time soon. Never again.
I have done tons of interviews, setup hiring processes, etc. If you are hiring for a head of engineering you can dictate terms like this, but you can’t as a junior. We don’t do take homes, personally I dislike them, we have some other tests done in the building but lower pressure, basically to see that someone can code something basic in a language of their choice or pseudocode. We don’t assess syntax or mark down for typos. But if a grad dev comes in and tries to dictate what they will and won’t do, that is a huge red flag. You take on most grads at a net loss, and develop them into a value adding member of the team. No clever, brilliant, team oriented person I’ve ever hired has tried to rewrite the process. Those that have were mistakes to hire or even continue the process. There are bad companies, bad managers, bad hirers and definitely people who are bad grad devs. If you refuse a reasonable test, and it is not a senior position, then you score zero for that. On the other hand, say you hate them, knuckle down and do it.
We really need to discuss how we can organize tutoring programming to those willing to learn. Interactively. I feel that is one the most important things we should try to accomplish: teach
The worst interview I ever had was a mock visioning session where the interviewer asked me to detail how an undo/redo system would work for a imaginary app that multiple simultaneous users working on the same document/project. They wanted a simple solution that a junior could code. If you've ever worked with either of those things you know it's not a simple thing a junior could handle on their own. Undo/redo sounds simple, but has so many edge cases. And multiple simultaneous users is an area of active research in academics. Currently you'd probably use some sort of CRDT
I don't mind code tests. I don't accept the ones that makes me think I'm writing code for the company and they had no intention of hiring me. Just use my code. I've also had one that was that was supposed to be for C# backend/api and SQL developer. Which is my thing. They sent me a take home that had to be done in React!!! I had never touched react before in my life. I just said NO. I was currently employed so wasn't a big deal.
12:24 Why is sussing out requirements criteria the worst? It’s an important skill to work out requirements and scope and the interviewer is testing that skill. What’s the problem? It’s no different from finding algorithm tests hard.
All of the small businesses I know that do take homes pay for them. These are all remote work positions with a global hiring pool. Lots of people applying for these remote jobs aren't from the US and don't have English as their first language. So you need a reproducible process that gives them a fair chance to show what they can do and to figure out if there really is a communication barrier and not just some bias in the hiring process. Top 5 candidates get given the same small assignment that would have been their first assignment for the job and that has a well defined scope due to the company's experience with how long similar tasks have taken employees in the past. Results are compared and person who is best for the company gets hired for the bigger project. There's also a quality control component. You aren't being compared to some nebulous standard but to what other candidates have done. If multiple candidates have problems, then you know the problem is on the hiring side. If 4 people produce great work and 1 candidate had trouble, then you know it's the candidate. The company also learns a lot about the candidate based on how the contract work gets negotiated and how time gets estimated. Candidate learns things too. It's literally a trial run where both sides get to see if they want to work together long term. A lot of companies I know have found some truly outstanding devs from Eastern Europe that wouldn't have gotten the job otherwise because the interviewer wasn't impressed by just talking with them. People are certainly open to cheaper ways to do this than paying 5 different people for the same work. And there's a ton of room to negotiate rates and scope. But ultimately, companies do this because it's hard to hire fairly from a global candidate pool when your company is small and you don't have a team with the international reach and resources that Netflix does.
Take-home challenges are unfair w.r.t. the amount of time you are willing to spend on it. They may say "3 hours" are expected, but if you spend 3 hours, you are competing against someone who could have spent 30 hours, because they could. And the expectations for the end result are just nuts... production quality, with tests, with documentation maintainable, extensible, and so on
When I hear "coding challenge", I think "unnecessarily cryptic description for what would be a simple implementation if you used actual human-readable names instead of ".
I did a take home once. 1 week developing the application. But it was for a internship. So I had to learn some things too along the way. Since it a internship i find it ok, since I think that they were trying to measure if you were really invested into it. I fucked up at the english interview as I tried to have a discussion about what usa means by highschool (it's slightly different from brazil highschool 3 grades). And some hard questions that I couldn't translate to english because of vocabulary. Technical stuff are mostly english so i would be easy :')
Could someone elucidate what Prime meant by being called a racist by the core team. Said it like it was some throwaway line, but now I feel like I need more info. Thanks in advance.
I feel there is a big problem with the industry, they say there is a shortage of developers, though don't hire inexperianced or developers that don't meet their standard. I get why they do this, they have to get a job done and you have to be able to do that job. But what happened to training to do that job? Also I feel that pay is a big issue, no one wants to pay you your worth no more, though I feel this is on us developers with replys like "I will work for less if I can just get my foot in the door". Stop devaluating your skills people!
Interviewing should come down to: Will this person be able to work with us in a professional and social context. Skill is almost irrelevant, because if you check for a specific algorithm, data structure or something, and it's arbitrary and not critical for the job, then what's the point?
I love take homes, but got one that was actual production code and the code was so horrible i just didn't do it, it was shocking. So i kinda get this but writing an article is a lot
Has anyone made the comparison between companies that do coding challenges and the ones that don't? Do you feel like the quality of your co-workers is higher with the coding challenge or not? Also, equally important is for the applicant to be able to ask intelligent questions. This can be built into the coding challenge by making it slightly vague, how else do we get quality people? EDIT: I really do not like take homes tho, they can be free work for the company "hiring" and the applicant could cheat as well, getting a friend to help them out.
What is your take on "test week" for hiring? The first company I wanted to work with had those and I spent either one or two weeks and not got hired but was doing real work Also this was payed! So I got a not even little amount of money for this. - I was too noob for that kind of work thinking back. Really. Have to say that thinking back I was just unprepared for their level. - Company culture was extra woke (that is why I not name it, because I still like their product and want no harm) so I would feel bad there anyways - Mentoring was extra shit because I got unlucky and never at all met my mentor in the two weeks, but worked somewhat together with an other new hire at least. All in all it looked not the worst idea for hiring, but likely is an expensive idea because of payments.
I think probably it's better for both the candidate and the company with this sort of open challange that leaves room for creativity. Sure, it will not let you study to guarantee success, and you might spend 16 hours on something making it perfect, only to be rejected because you were too slow (or the other way around: you did it inside the estimate but they picked someone who put in extra time) -- but that actually told both the candidate and the company soething about the other party, then. Maybe if your values, tastes, priorities or whatever were so different, it was just not a good fit? It also lets the company see how the person would solve problems in their domain, which might be more relevant than algorithms. I guess if I was really set on getting a position at one particular company I might be ticked off by an unfair assessment, but if you view the process as a way for you to evaluate the workplace as much as them evaluating you, I think it's preferable.
While I hate take home challenges and how they waste people's personal time, I am also strongly against the handshake. It's standardized testing, looks great on paper but is pretty bad in practice. Everybody knows what they need to learn, everybody knows what and how to evaluate, pure perfection in any sense except judging how well a candidate will be in the actual job... so pretty useless and waste of everyone's time. In my last job I was doing interviews and I had to solve one problem, hire candidates that will be able to do the actual job and fit with the rest of the team. Asking for the secret handshake was giving me no real info to go by. My preferred way was live code review, this was giving me the most accurate information to go by. Of course this is for candidates with experience not for people fresh out of college, for those maybe secret handshake is applicable.
While I am not in IT yet heard stories about companies giving out coding assignments as a way to just get free labour out of you, they were never going to hire you just get free work hours out of you
While possible this is incredibly rare. Your code means jack shit to anyone who doesn't know it, doesn't know you, and are unsure about your skills. Maybe small startups do this, but not established companies
Here's a hot take.... "sure, I would love to complete your take home coding challenge... in fact, could we potentially schedule a pair coding session with one of your engineers so the two of us could work together for a couple hours" . boom, get their time too
So my take of both videos is basically when you given Coding Challenge, review it and ask them for clear Acceptance Criteria (if there is non) otherwise we can agree is waste of time for both sides. Although someone will say well in real job environment client may not have clear Acceptance Criteria which is 100% true no client knows what they want, but that's why you have BA's and ask questions and move the story for the next sprint because they dont know what they fckn want :D
17:40 where the fuck did he pull this from exactly? He keeps repeating it and it was nowhere in the article. Saying no to a coding interview isn't "change the process for me specifically" it's "I'm not doing that because of X Y Z". If a company, as he has explicitly mentioned is common, continues to have that position vacant afterwards they might go back and call you again since they might have passed up a good candidate from their hiring practices, but that was never the goal. The entire point being made is it is in your best interest to just say no and spend your time doing other things, applying to other companies, etc. Your time has value, spending hours and hours working on some mock challenge isn't a good ROI. It really seems like he just flat out can't fathom the idea of saying "no I don't want to work for you".
I would rather explain my solution versus code something during an interview. If you can articulate code in English, you're hired. Intelligence is not what you know, but knowing what you don't know. If you can detail the perimeter of your knowledge, that's better than typing crap. The problem is, your initial interviews are not with the people you need to talk to. Your first handshake is with a corporate ball sucker. Type A personality disorders, not sigmas that can think for themselves.
I got a take home exercise for fullstack position. need to do a full parking ticketing system which multiple conditions. crazy or what, i just want to apply junior-mid position with not high paying job. they reach out to me (so called CTO) yesterday, and today want to interview. then want me to do full application from scratch, start from architecting the app to finish the development just under 5 days. i tell them thank you and accept another job.
note that, i just have 2 years experience in frontend development with little knowledge on backend nodejs. i totally can see they really desperate want a cheap 10x developer that can do almost everything. also, the company is a startup with 5 people. hahahaha. they said they are fast pace company n bla3. forgot already.
If you're unemployed and you say no to a part of the interviewing process, then you have no idea what's on the line. And what's on the line? A job? Just a job? No, it's hundreds of thousands, if not millions of dollars. Let's give an easy number to work with, say the job is for a salary of $100K/yr (and for a SWE this is entry level pay), and you hope to stay with the company at least 5 years, not even taking into account raises and promotions, that's at least $500K on the line. What would you do for the chance of $500K? If you're willing to do an interview, but not willing to commit several hours, or even 10s of hours for the interviewing process, then don't even waste your time doing interviews. So if you're not willing to commit to doing what the interview required, then don't waste everybody's time, including yours. Tell them upfront you're not willing to commit to doing long interviews, and after they laugh in your face, they'll appreciate your honesty in not wasting everybody's time.
That’s just a tech screening.. is that what you were talking about all along? A code challenge is like a take home exam. Yes, i suppose your point about leverage is true enough, but that needs to be an acceptance from both directions. If you’re interviewing someone who hopefully and probably already has a good job, you don’t treat them the same way you treat people who don’t. That’d just be an ego power play that limits your hiring pool. Yes it also limits the job pool for those of us who don’t do take home exams, but two things can be true. I consider it disrespectful to ask that of someone who is already employed, it asserts that your job position is better and that I should perform tricks for you. At the same time, I recognize that there are a lot of people who misrepresent themselves and it can lead to very expensive misshires. So I think it should be applied surgically instead of carpetbòmbed. After a couple of interviews, if you are enthusiastic about hiring this person, prooobably don’t do anything that they could receive as disrespectful. You know how fking arrogant we codemonkeys are. Also keep a leash of your alphanerds during the interview process. The are a bigger problem than take home exams. Alphanerds will not only chase off great candidates, but can be extremely nitpickey about academic knowledge. The best candidates, believe it or not, may not remember the bigO stats on sort algorithms. And unless you are doing ACTUAL computer SCIENCE then it probably isn’t applicable anyways because you are probably going to use award winning canned framework sorts/etc. And I don’t want to hire another booksmart slacker. Productivity is king and I focus on how they handle assignments. Just give them a theoretical task and have them walk me through their process. I just want pragmatic productivity
The point about job privilege is really important. You absolutely have a position of control in that situation and exercising that control is a good thing. Is hash tables was actually harsh taste 😂😂😂
Anyone else thinking of just calling an audio API using a game engine and calling that a music player? Its 4 hours and the main goal is to get some form of audio eh
ThePrimeagen has hit peak youtube reacting to a reaction reacting to him
I think I win something
@@ThePrimeTimeagen for sure bro , you have good critical programming content.
Not everything is a funny game all the time. Good content.
Rip video reaction videos
Easy money 💰
now im waiting for the reaction to this reaction of a reaction of your reaction of his article
I've had that "music player" coding challenge. Literally "make a fullstack app in a day that has tons of use cases. You have to fulfill them all and use exactly these frameworks and libraries".
Where I work now it was just 3 questions like "you have this data, do X with it". Done in 15 minutes
It's great that the guy could have fun watching the video of you grilling him.
It's also great that you are able to see beyond your current position.
:)
@@ThePrimeTimeagen respect+++
@@AG-ur1lj My bad. Here's my respect.
loop {respect *= 1000000;}
I applied to this job that had a crazy interview process. 6 stages of meetings with various people in the company, a 2 day tech test designed to be completed over a weekend and a full day (unpaid and no travel expenses included) in London. I ended up telling that one to shove their job where the sun dont shine. Looked 7 months later after landing a role and it's still open!!
might be a thing where someone is asking for more people on X team, but someone else who doesn't want someone there doesn't want it. (Like the expert holding the job that is irreplaceable getting to influence the hiring process for potential replacements)
yes its dumb but happens all the time in corporations. (usually when people have to decide wether to spend their departments money on job ads or bonuses, jobads get posted but not promoted and they are just yote out there)
I very recently just got my first job in IT. I was a fresh out of JS bootcamp child, enrolled in it at the start of 2022 when the market was ripe and finished by December when it all went to flames. I was desperate, unemployed and needing money so I barely had any say to any of that. He does have a point though: going through those selective processes takes way too much time. I had answered several super long forms with weird questions, done personality/culture tests, lots of take home challenges, even went to an office for a "live activity" that took one whole morning with several other people that were fighting for that job. It got super discouraging to go through the motions of doing take home challenges and filling out those long forms only to be ghosted, that was my mindset there, I was investing hours everyday for something I was 99% sure would go to waste.
At some point I wondered if it was a good use of my time, I started applying to less jobs in order to study and make better projects to put on my portfolio, as well as learn new tech, maybe I could get an edge or at least apply to more job postings that wanted tools I didn't knew at the time. Even as a desperate guy who was selling stuff out I had in order to pay the bills I was already passing on applying to those long processes, though I don't know if that was the right call.
In the end, I got a job because of a friend who gave me an indication. So yeah, hiring processes are truly garbage, especially today's market where companies have way too much leverage.
become a senior and they'll lose that leverage
I heard of people contacting employees directly that they found through LinkedIn to get a job.
I also have a friend that applied to a senior position, to find out that the company didn't mind him being just out of college. They listed a senior position to scare people away that weren't confident in their skills.
Although I think having made some projects and knowledge of data structures, design patterns and algorithms would be good.
Ye, it's shit, however that doesn't mean your chances are higher by being confrontational with their interview process
That's why i like coding interviews, it's no bs, just 1 hr, and if you're good you can close it faster. Totally it's 4-6 interviews depending on company so it maxes out at 6hrs but the closer you're getting the bigger chance you'll be passed because majority of candidates are dropped on coding challenge thus not wasting anybody's time.
I think the main problem is that the longer you spent on a take home challenge usually the better it will look. Therefore the company will be biased to hire candidates who put more time in. If a company makes it a requirement that you should not spend more than 4 hours on a coding task, the candidate who puts in 16 hours and lies about that will come out looking best.
Sir why did it take you 4x times the avg amount of time to creat a simple next app ?
Ooh boy the conversation will be fun
@@ko-Daegu “and lies about [how long it took them]”
Maybe there should be an app like codepen or whatever the kids are suing these days that companies can set challenges up on and you have a timer. If you pause you can't edit. Something like that. Maybe no pausing (so like a real interview)
@@ko-Daegu most take-home challenges are not simple next apps. They're more elaborate than that. They give you UX design, a working backend server with an API spec, and a set of requirements. You need to write a full-fledged front-end mini project that has almost all the best practices: proper CSS styling that match the design, proper API fetching, unit tests, end-to-end tests, etc.
So they bias towards workaholics. Hmmm
Why is nobody thinking about the amount of time those things take: Let's say you applied to 10 companies, each one wants to to 4 interviews of about an hour, plus a take home of 4 hours (which in reality is more most of the time). You'd already 2 working weeks of stuff cut out for you. This might make sense for a Junior dev trying to get its first job. But a senior dev (or lead, or whatever) just would not have the time for this kind of shit. But then those companies wonder why they don't find people....
I also thought the blog post was about a long-form take-home “project”, and i will NEVER do these again. Made a video about my experience with this and confronted my interviewer years later. ua-cam.com/video/3eLLOh319kQ/v-deo.html
Watched the video when it came out, gotta say. That was some super insightful stuff and your interaction with your interviewer was a great addition. You rarely think you are over qualified and hence rejected when faced with rejection.
@@SushritPasupuleti Thanks for saying!
I used to love take home. This year, Reaktor asked candidates for summer internships to create a monitoring app of data they mocked and sent periodically via a HTTP call. It was a fairly long project (>4h, especially with a small GUI). After a few month, candidates received at e-mail stating that Reaktor, for financial reasons, would not accept interns except former interns they had last summer. I found that incredibly out of place to ask hundreds of candidates to take home a project that wouldn't even be evaluated because of poor management.
that's so disrespectful
HR literally glances at your resume for 1 ms and they expect other employees to wage 4h long projects ? It is extremely unrealistic. Plus, what's the point of personal projects then, if you're just going to dismiss them and assign your own ?
@@user-ge2vc3rl1n yup, that is why I did not apply to any other take home projects since I tend to think I have numerous interesting personal projects
That's incredibly disrespectful to the candidates, and a waste of everybody's time.
IMHO they wanted something done quick and free, chose the best project and basically just said: Thanks for the app, FU.
He has a point about the time estimates and unknown criteria. A very few number of candidates ask clarifying questions about the ways that the challenges will be evaluated. I would recommend that candidates ask for what the company wants to see within the challenge "in the interest of making the best use of the available time". Some will want to see SSR, others defensive code, others some level of testing... it's a mine field in terms of things that you could easily miss that will get you cut from the process. Maybe reject the ones that refuse to help you do a good job.
I did a nice simple challenge, for an internship, that had us make something akin to poker - rng roll between 1 and 11, fail if total goes above 25. About 50 lines of code, include spaces and comments.
The only thing they said, that suggested why they didn't want to proceed, was that I didn't break my code into enough separate functions....... a few dozens lines of rng rolls and '+=' needs to be broken up to make it easier to understand 🤦
I decided I didn't want that job anyway, after that - realising they are unable to communicate what they are hoping to see, and expecting interns to treat every tiny piece of self-contained software to have the scalability of an enterprises flagship product... If they asked for that, I could have given it, but a lot of my teaching has addressed that doing so is often a waste of time, particularly in scenarios where you know, for a fact, that the code will never be changed after submission.
'Smart use of your time? Using only the processes necessary to get the job done well? What a shame, we don't want that at our company!'
I'm in my fourth job; The first one and last ones were a live coding challenge, and the two in the middle were take-homes. I had good experiencies with all of those four because they met the criteria the article talks about.
I had other 3 technical interviews that I didn't went through or was rejected:
- 2 live coding with facebook, when I decided to not go further;
- one take-home with a Swiss company that I won't mention the name.
This take home was before the 3rd job, with was a take-home as well. This swiss take-home in particular was a total mess. It was extremely time consuming and unclear, as I didn't have clear specs and had to base my job in a lot of assumptions of the business rules. It was a complete waste of time. On the debriefing, I had 10 minutes of actual debriefing, then we proceed to discuss job culture and later he asked about Elon Musk (?????). It was a shit show.
But I didn't give up. I did one other take-home (3rd job) that landed me a good job. But still, I totally see where this could go, and I partially agree with the article.
The problem is that some people, specially juniors/mid, don't have the bargain power to say no.
I like how the last sentence was literally said in the blog also and was one of the sentences that primeagen failed to read.
I worked for a consultancy and we would give people a take home with intentionally vague requirements. Getting shitty initial requirements from clients was a core part of the job and asking the right questions to gather good requirements was a skill we wanted to test for - it worked well for us.
but do you state this _intentionally_
"hey, we are giving you this and there is many directions to take this. it is our job to suss out the requirements by customers and we are measuring you on this"
or do you just expect them to know something you didn't know until you had the job? typically i see a lot of the latter than the former. testing something that the interviewer didn't know until they were in their position
Bro with those hiring practices no wonder the industry thinks consultants and agencies are a joke
@@ThePrimeTimeagen Yeah we stated it intentionally but didn’t spell it out completely directly. The exercise was given to them in a call so we encouraged them to ask any questions about the requirements while in the call, reminded them to get in touch if they needed anything clarifying, etc. It’s also something we only did for our lead and up level positions because we expected them to have those skills on joining. Of course it was a take home interview and we appreciated not everyone had all the time in the world to spend on it so we took everything with a pinch of salt; it just gave us a basis for asking questions in the longer form, post exercise, interview.
@@maxtaylor3531 That kinda sounds like the opposite of stating something intentionally
@@guyfromdubai it was a balancing act. It's hard to convey all the setup that was done in a short youtube comment but they were put into a scenario where it was clear that they could work with us to refine the problem and then implement it. We did not outright say "here's a brief with some glaringly obvious holes in, make sure to clear everything up with us before you start" because that would defeat the point of the exercise. We wanted to see if they would attempt to refine the requirements with us, or if not, what assumptions did they make when completing the exercise and could they justify those assumptions. Regardless of what people think about the approach, the reality is that it was extremely successful for us and we hired some great people using it. It was definitely more suited to a customer centric role though; I wouldn't expect it to be as valuable in a "product company"
2:39 They really messed up quoting you lol...
Their quote: It leaves an hash tray in my mind
Actual quote: They leave a taste, like an ash tray, in my mouth
12:02
I had a whole angularjs to angular2+ conversion project for one of our clients I put my hand up to do, with at best 2 weeks of self teaching angular2+. Was told by the lead devs and project manager it should only take 1 month to complete, even though we didnt have any documentation of the project at all besides "reading the current legacy code". Long story short it took a few months more to complete.
I had a lot of fun working in angular for the first time, but my god that project was a bundle of stress. Lead dev was on his way out of the company, no one was checking my code so I had to balance learning wtf I was doing, building it half blind while trying to keep to a half decent timeline.
my last 'coding challenge' was
'Deploy a simple JavaScript app that posts timestamp in json into a Kubernetes cluster in the cloud provider of your choice.
I spent over 12 hours on this coding challenge, I finished the JavaScript(which i don't know JavaScript) in about an hour but the fact that i was supposed to have a 1 button deploy for the entire environment and it was supposed to be open to the public internet meant i had to add items to the project, when you're posting something to the internet you're not just posting a kubernetes cluster, you're making sure you store keys in key vault, you're setting DNS records, you're creating certificates for both web app and the cluster, you're generating ssh keys, you're creating helm charts..., this also totally excludes the fact that after i built my JavaScript app I had to build the container for the thing, create a container registry and push that image to the registry to be available for the helm chart / k8s. idk maybe i just took the coding challenge the wrong way
The worst coding challenge I ever got was I was told to make a slot machine in type script. I had never used typescript before (use JavaScript) nor was I a framework guy. I was kind of desperate at the time, because I needed an internship. The Coding Challenge was a slog, but after a week, I made something that worked, but I didn’t thoroughly test it. The screen-resizing broke the rendering and I didn’t notice that and I collapsed. I didn’t want to say that I learned typescript with a framework over the course of a week, I felt embarrassed.
Now, I just think that the company missed out on trainable talent that would’ve quickly beared results, because I have now been real world tested and I haven’t heard anyone talk that bad of my code and ability to learn and adapt.
I think some companies will miss potential because they open up junior positions to a bunch of desperate dumb college students and are not willing to try and find learning ability as opposed to experience.
Idk... Sounds like a pretty easy coding challenge to me tbh, definitely don't need a framework for it either lol. Why do junior programmers expect to get hired if they don't know how to program?
Assuming that the job was "frontend developer (internship)", that just highlights that you were the wrong choice for the job and still have much to learn and should do practical projects instead of leetcoding JS problems. It's a simple task and over-engineering it to a framework is the wrong way to go. It should take a few hours at max. Now you also learned a bit about TypeScript, responsive design/mobile-first and practical solutions. If you fail to see that, then you are not "trainable talent that would’ve quickly beared results" and need to do practice more.
personally I think its a shitty move to expect your interviewees to do something in a certain language unless it was explicit part of the job description.
I would've accepted you for the internship. These kind of bugs are typical and easily learned. I would go through the code with you and probably would've asked you if you had prior typescript experience or that this was your first real ts project. I would've also asked you about edge cases and if you missed anything I would ask you there if you can fix it
If you said that you learned it for this project then I would've known that you're capable and motivated to learn which is the main trait I look for. If you can solve edge cases, then I know you're able to solve bugs and reason.
OP please ignore the angsty edge lords in this thread telling you to get good. They are clowns.
I once had an interview that had a hand written coding challenge that was not a whiteboard or computer, but paper. The expectations were to show how well I knew the oddities of the language and show my coding style in my chicken scratch.
> draw dick
> don't elaborate
> leave
Asking people to code on paper is so dumb, I used to do that in my high school programming exams. Like, using Notepad would be far quicker, easier on my hand and presents no advantages that could be considered as cheating
I think the problem with the coding interview is the thing that gets you an interview isn't data structures or algorithms, it's knowing how to do the job (portfolio projects). Sure they're very transparent about how to pass the test to get the job, but the things you have to teach yourself to even get an interview have very little to do with algorithms
The idea you can go to 4 years of college, and still need to learn a framework, build out a portfolio and memorize algorithms. You should know how to do Big O, you should know the concepts of recursion and dynamic programming but why do you need to know merge sort by heart?
@@terrencemoore8739 Lmao, a framework?? React might as well be a framework by itself with how much you have to know to be able to configure it without a framework (I did, not fun), or you have to learn a framework. Okay. So let's say you know NEXT. Well no one uses just CSS anymore so you either have to learn SCSS or Tailwind. Or worse, Bootstrap. And also, you can't get a job with just Js anymore, you *need TypeScript, which isn't a big deal. What is a big deal, is having to configure webpack to work with it, having to configure it to work with it, having to learn all the boilerplate to be able to use it effectively with each technology in the stack. If you're unlucky enough like me you also have to learn Redux. Redux comes with its own way of doing TypeScript types if you want to not write super bad code that others can't work with. I learned all of that, and the company I'm interviewing for (and likely will get the job with) uses Angular, so I have to learn that after learning the whole React thing. But I have to learn that with Redux and with TypeScript and with Rx.js. Luckily I know how the MVC model works because I already learned PHP and Codeigniter 4.
Do you see where I'm going with this?
hey, author of the article here, just wanted to thank you for your input and willingness to accept where you were wrong and where we disagree, and also to say: rekt
hah! I really appreciated your funness in all of this. i hope you know i hold you in high respect for the fact you did this all. most people get offended and say mean things on the internet, you instead defended yourself better and more concisely.
really appreciated this.
@@ThePrimeTimeagen prime no, i was just kidding with the rekt. I'm not the real author of the article D':
@@ThePrimeTimeagen Jebaited
You can ask clarifying questions in whiteboards. Take-homes are typically "use requirements as read and justify your assumptions later".
Requirements are not always clear, this is a part of being an engineer. You have to deduct scope and requirement. Bit hit or miss, depends on the company, the interviewer, and the company culture.
Hats off to both of you for not taking it straight to the panties and getting butt hurt over a dissenting opinion. We really need to be brutally honest with ourselves first and with others as well. And this discourse was a master class in how to share conflicting opinions in a respectful and introspective way. We should have strong beliefs, loosely held. Cheers to you both.
One important thing also. I don't know how the tech world is in NA, but in EU, and especially in France (since JM Fayard is French), devs do have a lot of power in the interview process, because there are a lot of job openings and not enough devs to fill them around here. For example, I've quit my job recently, and started to look for a job a week ago. At the end of this week, I will already have talked to 12 different companies, and I've been picky, I've refused to talk to multiple other companies. And sure, I have 13 years of experience, including 6 years with Python, 6 years with node, that makes my profile look interesting. Oh and just to be clear, most companies contacted me themselves as soon as I have updated my linkedin profile. But even when I changed company 6 years ago it was the same thing. So maybe it is easier for us to say no. And at the same time, I think big coding take homes project might be more common around here. 6 years ago I interviewed with multiple US companies, and only one of them had a tech home, and it was a not so complicated web server in Python. Whereas project from French companies can require 10+ hours of work, which can be hard to do when you have 10+ interviews in your first week.
I've had only one "live programming" test at home and it was a disaster. I've been programming for a while now BUT I don't do any programming at home. So, when I scheduled this "live programming" test, I had to some time getting a development environment setup which was completely unexpected. I don't do well in time-constrained tests. On the flip-side, if I have an assignment that's due in whatever amount of time, I'll hit my target. Psychologically, I don't do well in a test environment. lol
Recently I got a quite big homework challange and I really liked it. I was able to show a lot of my skills and knowledge and I think the outcome was pretty good, they really liked my solution. If it was a 1-on-1 interview I would most likely do much worse as I struggle concentrating in such environment. Even at work I sometimes ask someone to cut the meeting, give me 15-30 min to work on my own, and meet again because my brain just works better this way if I have to solve some problem.
14:02 There's an "inverse cargo-cult" where you believe that everyone else's planes are also made from dirt and sticks because you've never seen a real one flying.
21:45 Getting the first job makes the other tips sound like minor footnotes when it comes to making a difference.
I love this take from Prime, I like how he pointed out so many of the things I noticed in the last video and I felt should be just mentioned!
For the first company I interviewed was hired for (and didn't even send job application BTW) gave me a take home assignment with UI proto showing what it is supposed to look like and basic functionality, and data in JSON to be used. Requirement was a framework I had not even heard of, Aurelia but I was also in place where I had more than enough time and I wrote the core of the thing within 1 maybe 1½ workdays, then spent maybe work day's worth of time to polish it up and sent it back.
And as it did match the specs, code was ok quality and the CTO was ok with it and I was then given an interview at the local office, where I was interviewed by both of the team leads that were working there, mostly to see in to which team I fit better. And the take home project was used as a basic talking point, but as it was apparently of good enough quality so we moved to talk bout more what I am looking to do and about company it self. I was also toying with the idea of making the 2nd part for that as well, which I most likely should have done now that I think about it later. And since then I've changed company once, and currently I enjoy the place where I am.
Since you hit on the topic, what's a good way in your opinion to do code reviews?
I work for a small company and I'm the "senior" guy for react, so I get code reviews requests from developers who are generally more experienced than Mez but only started with react. I often just accept the whole thing because it works and I don't wanna be pedantic. Like it's not the code Id write personally but it's not wrong or ugly and at the end of the day it works.
the tests I keep failing are always UI related challenges, I have the artistic style of a stone
I was asked do take home test once for which I found a public repo by some rando for the exact same test solution for that same company. The test was to use the companies own api and build a FE. Have fun distinguishing between and comparing candidates effectively with that my dudes...
I was rejected because I didn't follow a package naming / structure that the company wanted (on a take home). Code was functional and highly performant LOL. In reality you will eat as much of the interview process as you need to depending on how badly you need/want the job.
While I agree with the general takeaway that there are plenty of opportunities to go wrong with coding challenges, as a technical interviewer, I feel like I have to know you are capable of writing a simple program in the language of your choice *at least* - Just knowing algorithms and datastructures is measuring whether or not the candidate has studied to learn the secret handshake.
13:00 the product managers I work with 💯 . simple features have been delayed for months because some PM’s constantly rewrite / add to requirements
I actually really like getting take-home challenges. I find that if you are very knowledgable in the domain then the assignments are usually trivially easy to do. If I'm finding it hard and not enjoying the test, then I might just not be a good fit for the role. (I do have a bias as I've generally always been hired after my take-home challenges and could potentially see this perspective change if this wasn't the case)
So I've heard him mention finding a cycle in a singly linked list a few times. I never learned how to do this, but it doesn't sound hard.
Have 2 pointers, have one move one space and have the other move two spaces. If they ever meet, there's a cycle. If you want to find what the cycle is, stop moving the one that moves 2 spots. Record every node until the second pointer is reached again.
I could be way off, but it seems simple to me.
I think take homes can be a lot of fun and that's my measuring stick for if I'll do it or not. If I read it and think "oh, this seems fun" I'll do it. I used to outright refuse ones I didn't want to do, but billing them at my hourly rate sparks its own kind of joy.
I'll have to try that lol
I'm having some fun learning and implementing data structures.
Unpopular Opinion.
Once you learn
1.) How a certain data structures works.
2.) How an array works.
3.) How a node works.
4.) How to manipulate pointers.
You'll already learn a lot about data structures.
Since most data structures are just combination of those 4.
When I was looking at my first dev job I eventually got to the point where if it took longer than 10 seconds to apply, I wouldn't. If I got an interview and then homework, that's much higher priority so I'd give it a go. But if there were multiple interviews or a lot of homework, then homework made you lower priority, and lower again the longer it would take.
A few years later and employed I'd look at the process more as me choosing a company than me spamming seek because none of these people even have a job opening. So I'd do the homework and just resent them for it, especially if it was followed by a low ball offer or some other deal breaker that could have been presented first and saved me time.
I died laughing at “I’d probably spend an hour and a half trying to get typescript to work properly” 😂😂😂😂😂
I was once given a take home which was doing a CRUD with frontend and backend with authentication, and with maps integration. I had to do it in less than 3 days.
Did it, they didn't even answer.
Every day I feel like a worse and worse programmer.
I've also had no feedback on a take home test before I spent many hours doing. It's super disrespectful and one of the reasons I refuse to do them
@@dandogamer I'm fine doing any kind of test, but it should be required that your employer at least answer "ur dumb bro lol" so I might know what went wrong or something. As you say, it's super disrespectful. :c
I interviewed with Amazon a few years go. On the final interview stage, with the hiring manager, I was presented a blank code editor and tasked to "design a parking garage in TypeScript". Then they ghosted me for a month before telling me the position is only open to college grads. Luckily I found a better job at a sane company writing Go 😂
I have fell down in the past. So, rain or shine, ima sit right here on the road and never get up, ever.
Some "takehome" suck, besides the challange and time it takes some requirements say things "use clean architecture", "clean code", etc, clean is just an adjective, and means nothing to say "clean code", but ok, i think it is fair to assume they mean "according to Robert C. Martin", then you write your code and separate you modules by feature for example, and someone looks at your code and says it is not clean architecture because it doesn't have top-level "data", "domain" and "infra" folders, and you have get this kind of shift from someone who didn't even read the clean architecture book.
I agree with that man. I'm not accepting any more projects. Yes, I have a great job, but even if that's not the case, I won't. If the company publishes publicly all the projects with comments and some kind of points, that's a big difference. Then I could learn by looking at other people's code, see other people's practices, make my own judgment about whether that person really deserves the position. I'm not going to waste a single minute of my time "volunteering" where my code might be used in a production (I don't know that, it's closed source).
I'd rather watch a boring series on Netflix or go out in nature than work for nothing. I like the idea of paying for the project. Although realistically, there is not much chance of success to charge for that working time.
However, if I can't find a job, I'd rather change the whole industry.
I made a html media player similar to what os x offers, a play button with.a radial bar of advancement. There are a few events you can listen to in order to get the advancement, for knowing when to start the play through, it's complete.
man, as someone that codes well but doesnt have a good cv i like having take home tests, so i can show what i can do, but, you know, only if they're obviously not a request of some project, so it would be working for free.
I had this company give me 2 assignments which were suppose to take 4 hours each. Already pretty steep and a significant investment. I was unemployed at the time and had never done any take homes so I said f it and decided to dive in. The more I worked on the project the more I realized how much of time sink it was but I was already too comitted so I just kept at it. It took me 6 whole days and after submitting 2 projects and a pretty sizeable write up about them, the employer went on to brag about the unexpectedly large number of applicants they currently had preventing them from reviewing my work any time soon. Never again.
I have done tons of interviews, setup hiring processes, etc. If you are hiring for a head of engineering you can dictate terms like this, but you can’t as a junior. We don’t do take homes, personally I dislike them, we have some other tests done in the building but lower pressure, basically to see that someone can code something basic in a language of their choice or pseudocode. We don’t assess syntax or mark down for typos. But if a grad dev comes in and tries to dictate what they will and won’t do, that is a huge red flag. You take on most grads at a net loss, and develop them into a value adding member of the team. No clever, brilliant, team oriented person I’ve ever hired has tried to rewrite the process. Those that have were mistakes to hire or even continue the process. There are bad companies, bad managers, bad hirers and definitely people who are bad grad devs. If you refuse a reasonable test, and it is not a senior position, then you score zero for that. On the other hand, say you hate them, knuckle down and do it.
We really need to discuss how we can organize tutoring programming to those willing to learn. Interactively. I feel that is one the most important things we should try to accomplish: teach
The worst interview I ever had was a mock visioning session where the interviewer asked me to detail how an undo/redo system would work for a imaginary app that multiple simultaneous users working on the same document/project. They wanted a simple solution that a junior could code.
If you've ever worked with either of those things you know it's not a simple thing a junior could handle on their own. Undo/redo sounds simple, but has so many edge cases. And multiple simultaneous users is an area of active research in academics. Currently you'd probably use some sort of CRDT
21:50 this didn't work with coinbase then?
KEEP CALM!!!
I don't mind code tests. I don't accept the ones that makes me think I'm writing code for the company and they had no intention of hiring me. Just use my code. I've also had one that was that was supposed to be for C# backend/api and SQL developer. Which is my thing. They sent me a take home that had to be done in React!!! I had never touched react before in my life. I just said NO. I was currently employed so wasn't a big deal.
12:24 Why is sussing out requirements criteria the worst? It’s an important skill to work out requirements and scope and the interviewer is testing that skill. What’s the problem? It’s no different from finding algorithm tests hard.
All of the small businesses I know that do take homes pay for them.
These are all remote work positions with a global hiring pool. Lots of people applying for these remote jobs aren't from the US and don't have English as their first language. So you need a reproducible process that gives them a fair chance to show what they can do and to figure out if there really is a communication barrier and not just some bias in the hiring process.
Top 5 candidates get given the same small assignment that would have been their first assignment for the job and that has a well defined scope due to the company's experience with how long similar tasks have taken employees in the past.
Results are compared and person who is best for the company gets hired for the bigger project. There's also a quality control component. You aren't being compared to some nebulous standard but to what other candidates have done. If multiple candidates have problems, then you know the problem is on the hiring side. If 4 people produce great work and 1 candidate had trouble, then you know it's the candidate.
The company also learns a lot about the candidate based on how the contract work gets negotiated and how time gets estimated. Candidate learns things too. It's literally a trial run where both sides get to see if they want to work together long term. A lot of companies I know have found some truly outstanding devs from Eastern Europe that wouldn't have gotten the job otherwise because the interviewer wasn't impressed by just talking with them.
People are certainly open to cheaper ways to do this than paying 5 different people for the same work. And there's a ton of room to negotiate rates and scope. But ultimately, companies do this because it's hard to hire fairly from a global candidate pool when your company is small and you don't have a team with the international reach and resources that Netflix does.
Take-home challenges are unfair w.r.t. the amount of time you are willing to spend on it. They may say "3 hours" are expected, but if you spend 3 hours, you are competing against someone who could have spent 30 hours, because they could. And the expectations for the end result are just nuts... production quality, with tests, with documentation maintainable, extensible, and so on
"hash tray in my mind" maybe was something like "harsh taste in my mind"
When I hear "coding challenge", I think "unnecessarily cryptic description for what would be a simple implementation if you used actual human-readable names instead of ".
I did a take home once. 1 week developing the application. But it was for a internship. So I had to learn some things too along the way. Since it a internship i find it ok, since I think that they were trying to measure if you were really invested into it. I fucked up at the english interview as I tried to have a discussion about what usa means by highschool (it's slightly different from brazil highschool 3 grades). And some hard questions that I couldn't translate to english because of vocabulary. Technical stuff are mostly english so i would be easy :')
Bro called video thumbnail "box art". Clearly a sign of taste and distinction!
Could someone elucidate what Prime meant by being called a racist by the core team. Said it like it was some throwaway line, but now I feel like I need more info.
Thanks in advance.
I feel there is a big problem with the industry, they say there is a shortage of developers, though don't hire inexperianced or developers that don't meet their standard. I get why they do this, they have to get a job done and you have to be able to do that job. But what happened to training to do that job? Also I feel that pay is a big issue, no one wants to pay you your worth no more, though I feel this is on us developers with replys like "I will work for less if I can just get my foot in the door". Stop devaluating your skills people!
Interviewing should come down to: Will this person be able to work with us in a professional and social context. Skill is almost irrelevant, because if you check for a specific algorithm, data structure or something, and it's arbitrary and not critical for the job, then what's the point?
I love take homes, but got one that was actual production code and the code was so horrible i just didn't do it, it was shocking. So i kinda get this but writing an article is a lot
It's taken me so many videos to realise "take home" isn't "salary" or "take home pay", it's "homework".
Has anyone made the comparison between companies that do coding challenges and the ones that don't?
Do you feel like the quality of your co-workers is higher with the coding challenge or not?
Also, equally important is for the applicant to be able to ask intelligent questions. This can be built into the coding challenge by making it slightly vague, how else do we get quality people?
EDIT:
I really do not like take homes tho, they can be free work for the company "hiring" and the applicant could cheat as well, getting a friend to help them out.
The one thing i cant explain is how i explain things well to people. I partially blame my Neuro-divergency, and its really useful
the Start of the video is the best
google app engine is actually pretty good for throwaway apps cause the free quota is pretty generous
What is your take on "test week" for hiring? The first company I wanted to work with had those and I spent either one or two weeks and not got hired but was doing real work
Also this was payed! So I got a not even little amount of money for this.
- I was too noob for that kind of work thinking back. Really. Have to say that thinking back I was just unprepared for their level.
- Company culture was extra woke (that is why I not name it, because I still like their product and want no harm) so I would feel bad there anyways
- Mentoring was extra shit because I got unlucky and never at all met my mentor in the two weeks, but worked somewhat together with an other new hire at least.
All in all it looked not the worst idea for hiring, but likely is an expensive idea because of payments.
I think probably it's better for both the candidate and the company with this sort of open challange that leaves room for creativity. Sure, it will not let you study to guarantee success, and you might spend 16 hours on something making it perfect, only to be rejected because you were too slow (or the other way around: you did it inside the estimate but they picked someone who put in extra time) -- but that actually told both the candidate and the company soething about the other party, then. Maybe if your values, tastes, priorities or whatever were so different, it was just not a good fit? It also lets the company see how the person would solve problems in their domain, which might be more relevant than algorithms. I guess if I was really set on getting a position at one particular company I might be ticked off by an unfair assessment, but if you view the process as a way for you to evaluate the workplace as much as them evaluating you, I think it's preferable.
it is like, well i am ready to take the job but no questions asked
A gentlemen debate, quite rare.
While I hate take home challenges and how they waste people's personal time, I am also strongly against the handshake. It's standardized testing, looks great on paper but is pretty bad in practice.
Everybody knows what they need to learn, everybody knows what and how to evaluate, pure perfection in any sense except judging how well a candidate will be in the actual job... so pretty useless and waste of everyone's time.
In my last job I was doing interviews and I had to solve one problem, hire candidates that will be able to do the actual job and fit with the rest of the team. Asking for the secret handshake was giving me no real info to go by.
My preferred way was live code review, this was giving me the most accurate information to go by.
Of course this is for candidates with experience not for people fresh out of college, for those maybe secret handshake is applicable.
While I am not in IT yet heard stories about companies giving out coding assignments as a way to just get free labour out of you, they were never going to hire you just get free work hours out of you
While possible this is incredibly rare. Your code means jack shit to anyone who doesn't know it, doesn't know you, and are unsure about your skills. Maybe small startups do this, but not established companies
My first "coding challenge" was verbally explaining how I would write malloc 😅
take a shot every time prime says: youknowhatimean
cycle in singly linked list
namedropping amazon interview question
I like his attitude. Nice person.
Here's a hot take.... "sure, I would love to complete your take home coding challenge... in fact, could we potentially schedule a pair coding session with one of your engineers so the two of us could work together for a couple hours" .
boom, get their time too
So my take of both videos is basically when you given Coding Challenge, review it and ask them for clear Acceptance Criteria (if there is non) otherwise we can agree is waste of time for both sides. Although someone will say well in real job environment client may not have clear Acceptance Criteria which is 100% true no client knows what they want, but that's why you have BA's and ask questions and move the story for the next sprint because they dont know what they fckn want :D
Where do i find these take home coding challenge jobs?
17:40 where the fuck did he pull this from exactly? He keeps repeating it and it was nowhere in the article. Saying no to a coding interview isn't "change the process for me specifically" it's "I'm not doing that because of X Y Z". If a company, as he has explicitly mentioned is common, continues to have that position vacant afterwards they might go back and call you again since they might have passed up a good candidate from their hiring practices, but that was never the goal.
The entire point being made is it is in your best interest to just say no and spend your time doing other things, applying to other companies, etc. Your time has value, spending hours and hours working on some mock challenge isn't a good ROI.
It really seems like he just flat out can't fathom the idea of saying "no I don't want to work for you".
I would rather explain my solution versus code something during an interview. If you can articulate code in English, you're hired. Intelligence is not what you know, but knowing what you don't know. If you can detail the perimeter of your knowledge, that's better than typing crap. The problem is, your initial interviews are not with the people you need to talk to. Your first handshake is with a corporate ball sucker. Type A personality disorders, not sigmas that can think for themselves.
Looks like we hit a minefield of joy..
I got a take home exercise for fullstack position. need to do a full parking ticketing system which multiple conditions. crazy or what, i just want to apply junior-mid position with not high paying job. they reach out to me (so called CTO) yesterday, and today want to interview. then want me to do full application from scratch, start from architecting the app to finish the development just under 5 days. i tell them thank you and accept another job.
note that, i just have 2 years experience in frontend development with little knowledge on backend nodejs. i totally can see they really desperate want a cheap 10x developer that can do almost everything. also, the company is a startup with 5 people. hahahaha. they said they are fast pace company n bla3. forgot already.
Me having just deployed an app to google app engine weirdchamp
it happens
If you're unemployed and you say no to a part of the interviewing process, then you have no idea what's on the line. And what's on the line? A job? Just a job? No, it's hundreds of thousands, if not millions of dollars. Let's give an easy number to work with, say the job is for a salary of $100K/yr (and for a SWE this is entry level pay), and you hope to stay with the company at least 5 years, not even taking into account raises and promotions, that's at least $500K on the line. What would you do for the chance of $500K? If you're willing to do an interview, but not willing to commit several hours, or even 10s of hours for the interviewing process, then don't even waste your time doing interviews.
So if you're not willing to commit to doing what the interview required, then don't waste everybody's time, including yours. Tell them upfront you're not willing to commit to doing long interviews, and after they laugh in your face, they'll appreciate your honesty in not wasting everybody's time.
so many things these days leave a hash tray in my mind
That’s just a tech screening.. is that what you were talking about all along?
A code challenge is like a take home exam.
Yes, i suppose your point about leverage is true enough, but that needs to be an acceptance from both directions.
If you’re interviewing someone who hopefully and probably already has a good job, you don’t treat them the same way you treat people who don’t.
That’d just be an ego power play that limits your hiring pool.
Yes it also limits the job pool for those of us who don’t do take home exams, but two things can be true.
I consider it disrespectful to ask that of someone who is already employed, it asserts that your job position is better and that I should perform tricks for you.
At the same time, I recognize that there are a lot of people who misrepresent themselves and it can lead to very expensive misshires.
So I think it should be applied surgically instead of carpetbòmbed.
After a couple of interviews, if you are enthusiastic about hiring this person, prooobably don’t do anything that they could receive as disrespectful. You know how fking arrogant we codemonkeys are.
Also keep a leash of your alphanerds during the interview process. The are a bigger problem than take home exams.
Alphanerds will not only chase off great candidates, but can be extremely nitpickey about academic knowledge.
The best candidates, believe it or not, may not remember the bigO stats on sort algorithms. And unless you are doing ACTUAL computer SCIENCE then it probably isn’t applicable anyways because you are probably going to use award winning canned framework sorts/etc.
And I don’t want to hire another booksmart slacker. Productivity is king and I focus on how they handle assignments. Just give them a theoretical task and have them walk me through their process.
I just want pragmatic productivity
The point about job privilege is really important. You absolutely have a position of control in that situation and exercising that control is a good thing.
Is hash tables was actually harsh taste 😂😂😂
Anyone else thinking of just calling an audio API using a game engine and calling that a music player? Its 4 hours and the main goal is to get some form of audio eh
What are these 50 minute interview you speak of? Every role I've interviewed for has been around 6 hours. Every. Single. One.
Long live ThePrimeagen 👏
Good stuff
Making decisions from a point of anger leads to bad decisions?😮
What's with all the silent h's? Is this a French person?