8 ms·
> Despite a long and storied career in software development, I have few abstract problem-solving skills. I proceed through problems in increments, getting sligh
by edfletcher_t137 4y ago
> Despite a long and storied career in software development, I have few abstract problem-solving skills. I proceed through problems in increments, getting slightly better each time. The beneficial thing for you that my experience brings is that I can do it really fast. Fast enough to deliver a working piece of software in a timeframe that won’t bankrupt you.
> Never in my entire career have I whiteboarded a solution that even remotely survived contact with software frameworks, APIs and hardware constraints. A hundred different gotchas and restrictions lay in wait. The only way through them to a resilient solution is one step at a time. So, I can’t show you anything meaningful with Leetcode challenges unless I practice them as a discrete skill.
This, 1000x. This whole piece nails it, but this really jumped out.
I succeed and excel because I actually get things done, rather than "mostly done". No interview methodology ever can hope to screen for this. Or any of the other things mentioned above.
The process is getting worse, not better, and this piece rightly points out why.
- omegalulw 4y agoYou are assuming that the same person can't do both.
- onion2k 4y agoIf the skill you're hiring for is to iteratively solve a real world problem, then it doesn't matter if someone can do both. You need to find someone who can iteratively solve real world problems. People might have both, but some people only have one, and not the one you're hiring for. If they can ace Leetcode problems, or unicycle, or speak Klingon, that's lovely but irrelevant, and absolutely pointless to test for in an interview as a proxy for solving real world problems.
- weq 4y agothen you can work at a FAANG company and get payed handsomely to lock up all that talent selling people things they dont need through ads!!!! Some people see NASA and think of all the smart people who worked there and what they did. me, i see talent wasted on war and i imagine all the great things that these people could of done if they applied their talents to something meaningful.
- revertmean 4y agoWhat war has NASA ever been directly involved in?
- toss1 4y agoEven if you really meant "DOD" (Dept of Defense) instead of "NASA" (National Aeronautics & Space Administration, which is not involved in wars), work of the DOD is absolutely necessary to maintain the free society which you and I enjoy. Unless you want to —literally— live under a Hitler, Stalin, Pol Pot, Mao, or Putin, democracies must always be better armed than autocracies. Autocracies always expand and take over less-well-defended self-determining peoples, and life under an autocracy always gets worse. Obviously, it would be ideal if we didn't need to constantly and diligently defend ourselves from autocrats and would-be autocrats, they still exist in the world, and we must still defend against them. Yes, mistakes are always made, both in over-defending (e.g., Vietnam, Iraq) and under-defending (e.g., Balkans, Ukraine), but that does not eliminate the necessity. Wishing the world were different does not make it so, as much as you and I would like it to be so. >> all the great things that these people could of done if they applied their talents to something meaningful. Also, much of that work actually does get out eventually to products that are meaningful and useful to everyone. GPS, satellite communications, carbon fiber composites, and more are just a few examples of great things created initially for defense work, and that are now used universally. I work in carbon fiber and make things for everything from the DOD to sporting goods for kids. None of it is a waste (anymore than there is waste and inefficiency inherent in any large organization). I hope that makes you feel a bit better about it.
- h8_interviews 4y agoI was in the "on-site loop" for a company you've likely heard about. When we were smaller, I was tasked with writing an interview question for JS devs. I created a handful of unit tests that were all really easy questions technically, though maybe a little obscure, because they were designed to spark dialogue. Think "escape room", solve one test, move to the next. Google was allowed and actively encouraged. But it wasn't really about the tests (they had to pass, of course, and shockingly some didn't). A not-very-good candidate would still make it to the end and solve all the puzzles and get a rejection. The goal was to create a lot of jumping off points to sort of "break the 4th wall" and see what the candidate actually does to solve a problem. If I could get someone to search the web as the fastest way to solve something, that was almost always a great sign. Sometimes I can see them building an inefficient answer and ask them if they'd like to search online for an easier algorithm, and remind them to treat this how they would actually treat their job. Some people stubbornly refused. If I could get them jazzed to tell me about their editor configuration, that was almost always a good candidate. Because people who care about writing code care about editors. Do you hate vim? Great, tell me why. Do you love emacs? Show me a lisp snippet or whatever you think is cool. I'd see a lot of `console.log({ foo, bar })` but also some `console.log("foo: " + foo + "\nbar: " + bar)`. I'm not judging harshly on any one particular thing, but I just want to see some level of craftsmanship about something. If you're from the java world, cool, show me some intellij tricks as you're working in webstorm. Do you reach for the repl/debugger to try out ideas by default? Good sign. To me it's simple: would I want to work with this person? could I recommend the company hire them based on how they work? I can't actually work with you, so I want the closest thing I can do in an hour that feels like we're on the same team. I think the question is now retired because it didn't scale, or maybe it's still there with a rubric that invalidates the point of it. If anyone's trying to do ML in this space, try softball questions that require more search and discussion than code, then NLP the discussion and ignore the code. Use internal mock interviews to train it to match your target culture. I think that would make this approach scale. I personally found pretty good success with the people I interviewed this way as peers, but I wasn't in a position to find out if they were really successful or not by internal metrics.
- baskethead 4y agoYour technique has already been proven to create unconscious bias, because you are more likely to hire people that are like you. You even said it yourself, you want to work with people that you like and that you get along with. Here's one of hundreds of articles that talk about this: https://www.forbes.com/sites/forbescoachescouncil/2018/05/01/why-you-mistakenly-hire-people-just-like-you/?sh=16de3b683827 https://www.forbes.com/sites/forbescoachescouncil/2018/05/01... Unless there's data that backs your choices vs the ones that you rejected, all you're doing is reinforcing particular stereotypes in your company and in the software industry.
- baskethead 4y agoLeetcode-style interviews : software engineering :: auditions : acting Auditioning is nothing like being an actor, but that's primarily the only way actors get gigs. Unless you're so well-known that they seek you out. This is exactly the same thing as in programming. You have to submit yourself to a humiliating barrage of LC and systems design questions because that's how companies like Google have decided that's the best way to determine talent. And based on their multi-trillion dollar valuation, it's hard to say that they're wrong. So unfortunately, unless you can come up with a better way, auditioning for your software engineering job is here to stay, just like auditioning for your acting job. So you might as well accept it.
- b20000 4y agovaluations are mostly made up and they have nothing to do with how they hire. and you are wrong that it’s there to stay. if people decide to no longer play ball and organize that will be the end of it. the current system was created by a single woman who simply created it to build a consulting business around it. and you are all too naieve to see it.
- baskethead 4y agoIt's ridiculous to imply that Google and Facebook aren't one of the most successful companies in the history of the world. And there's no way they could have made it to one of the most successful companies in history with a company full of terrible employees.
- b20000 4y agoyou need to ask the question, why they became succesful and why they are still here, collecting data about you every day. they know you better than yourself.
- leaflets2 4y ago> created by a single woman who simply created it to build a consulting business Who's that? (I don't agree but I'm curious about your opinions anyway)
- projectazorian 4y ago> Never in my entire career have I whiteboarded a solution that even remotely survived contact with software frameworks, APIs and hardware constraints. A hundred different gotchas and restrictions lay in wait. Not sure about this. Past a certain level of experience (and given some prior knowledge of the system being worked on) I’d expect someone’s white boarded designs to come out close to the mark at least some of the time. Not always, maybe not even half the time, but “never in my entire career” would surprise me.
- pas 4y agoHm, his GitHub profile starts in 2017, before that according to his LinkedIn profile he was a project manager, and since then works as a DevOps guy. Though he was already writing SQL migrations in 2008 (from MySQL to SQL Server 2005). ¯\_(ツ)_/¯ It's not terribly surprising to me that he simply doesn't have experience with coming up with architectures on the spot. Doing interviews is hard, from both sides. No candidate wants to seem arrogant by explaining that why the question/task/problem is bad in the context[0], so the frustration remains and gets vented in blog posts. [0] Because roles (job descriptions) in the tech industry is so vague, and goes through so many hands. (HR, recruiter, engineering managers, job portals, etc...) And by the time the interview happens it's no wonder the parties have a lot of mismatched expectations of each other. And that's just the baseline, what the post describes is just plain old fucking shitty behavior in a shit job market.
- actually_a_dog 4y ago> It's not terribly surprising to me that he simply doesn't have experience with coming up with architectures on the spot. Or, maybe they spent their career mostly building applications and not architecting systems. Those are very distinct skills. Of course, it also doesn't help that in an interview context, "system design" can mean "design infrastructure to support a system," or "object-oriented design of a system."
- viraptor 4y agoNot only that, whiteboarding a design will bring up lots of the issues you'd otherwise find in those small steps anyway. It just shifts them left - boasting about purposefully delaying finding them is not great.
- byteface 4y agoThere's a lot these tests don't pick up for sure. I feel soft skills is one and being focused on the day to day tasks is another. By hiring based on drills you run this risk of hiring a nasty or emotional person that just wants to use framework x rather than do any of the mundane bill paying work. If soccer teams started hiring based on ball-juggling skills they'd be full of street perfromers and clowns rather than world class strikers. I find tests are really bad for generalists too or older people who can't remember vividly the math they did at school. However we gotta suck it up and it is quite fun refreshing some skills and knowledge between gigs. What's worse is when you pass the tests but then don't get the job. Makes you feel it was something about you personally.