Can’t just be me, can it? Currently 0 for 3 on interviews because I can’t seem to get past the technical interview/test. Usually because of some crazy complicated algorithm question that’s never been relevant to anything I’ve ever had to do on the job in all my years coding.
Also, while I’m ranting: screw the usual non-answer when given feedback.
A few years ago I was in a hiring loop where four interviewers grilled me on a number of subjects, including algorithms and data structures. They asked me all sorts of trivia questions on assimptotic complexity of this and that algorithm, how to implement this and that, how to traverse stuff, etc. As luck would have it, I was hired. I spent a few years working for that company and not a single time did I ever implemented a data structure at all or wrote any sort of iterator. Not once.
I did spend months writing stuff in an internal wiki.
I can’t help but feel that those bullshit leetcode data structures computational complexity trivia are just a convoluted form of ladder-pulling.
My workplace has the opposite problem.
The company has been in dire need of programmers for years, so they hired people (including myself) without tests. However, the work involves lots of custom iterators and the occasional handcrafted parser, which most of the company is incapable of writing. The bright side is that management has their metrics mostly right, so I’m getting lots of raises for solving fun problems.
Ahem, uh, where are they hiring? Asking for, uh, me.
My workplace has the opposite problem.
I don’t see that as a problem. The job description of an engineer includes dealing with new problems and onboarding onto new things. So you never wrote a parser and now you have to. That’s ok, just go ahead and start from the ground up.
What I perceive as a major problem is the utter disconnect between what companies test for, and what companies actually do.
It makes no sense at all to evaluate candidates on obscure trivia questions no one will ever care about or use, let alone reject an applicant because they mixed up O(nlogn) with O(logn). It matters more if you know a good, healthy answer to tabs vs spaces.
I once was a part of an hiring loop where we assessed a candidate, and one other fellow assesser wanted outright to reject the candidate because he failed to answer one of his questions on data structures. Everyone in the meeting voted in favour of that hire, except that one guy. When we asked to reconsider his position, he threw a tantrum because he felt that it was a matter of principle that we had to not hire a candidate that didn’t knew trivia. The hiring manager asked if that info was important, and in case he felt it was whether it could be looked up online in a matter of minutes, but the assesser tried to argue that it was besides the point.
Data structures and algorithms trivia feels like ladder pulling.
It matters more if you know a good, healthy answer to tabs vs spaces.
You had me there, for a second
That sounds like a win-win situation. You lucky bugger!
I always just answer that with “do you want a software engineer, or a text book? If we need that for a project then I’ll go dig out my college notes”
It usually works with other engineers, the issues are usually with the recruiters.
deleted by creator
In my experience, the job that HR excels at is creating and perpetuating the view that the company needs a HR dept. Generally, the most unneccesary people in an office are HR.
Holy. One place I worked at had way too many HR personnel. It was crazy. I happenned to have my workstation directly next to them. They quite literally did nothing all day. Nothing. At. All. It blew my mind.
So why did we have so many? Well at basically every company-wide meeting this dep was putting on the biggest theater performance of being overwhelmed by “governmental endless bureaucracy” or something. So they always tried to hire more of their own friends. Temporary roles always became permanent and we ended up with 20% of the company working HR. The owner of the company, bless his heart, really could not say no.
My experience with HR in most companies has been hit and miss, but this one example really opened my eyes. Of course if you hire people who are basically actors you run the risk of forming an HR dep that is very dramatic and manipulative.
I can’t really blame the workers for taking advantage of an easy job and making a great living out of browsing Facebook and gossiping all day. But it really suck that the actual good workers were over-worked because other areas of the business were under-staffed. Virtually nobody else had the political impact in the hiring process HR had. Obviously this business wasn’t run by genius.
20% of the company!? My last company had useless HR like that. Only 3 of them for 35 of us, but they did nothing and that was 2 too many. The “Director”, with all of two people under her, was so wildly incompetent we all thought she had something on the owner.
They couldn’t even handle their core job of bringing us solid candidates. Had no one under me but was still treated a management (IT) and finally put my foot down. Made it crystal clear, with many examples, that the people HR was bringing in didn’t have the most basic office related PC skills, and that I could tell on day-1 who was and wasn’t going to make it. Changes were made, success was had.
So ask yourself, how the hell is the IT guy a better judge of candidates than a “professional” HR team?!
I should add, my current company’s HR is rock and roll. It’s really nice working with them and I’m still good friends with one that left last year.
Yeah, 4 employees out of 20.
The fact this department even existed is a mystery to me. They didn’t even screen candidates or participate in interviews. It was basically 4 glorified secretaries. To be fair they also managed the payrolls, which consisted of sending the same excel file to he accountant each week. Realistically we would only have needed 1 person to keep track of whatever might pop up and to make sure the payroll system was up to date. The owners liked to screen and do the interviews themselves.
At some other place I worked we had 1 admin/accountant person working like 1 or 2 days a week for a business of about 40 employees. Again the owners were taking care of new hires.
HR as a department seems largely useless unless you’re hiring 365 days a year and have so many employees that you can’t keep up with all the requests. HR people are usually terrible at screening candidates anyway.
The job I was talking about was IT at a payroll company. Running payroll can be surprisingly complex, so most small businesses farm it out to a employee leasing place, let them hassle with the regulations. Lot’s more to it than multiplying hours by pay rate.
But it sounds like they were farming it out? Sending hours and pay rates to an accountant?
We’re a software dev, and despite the low turnover, we’re constantly growing and hiring. Not easy to pull in solid devs because it’s such a competitive field. HR earns their money in my outfit. We’ve needed a new security person in DevOps for 2-months, haven’t heard a peep from the boss about candidates.
But yeah, I feel you on the useless HR people. When I say our director was so dumb and useless, I really meant we thought she had blackmail on the owner. We were not joking, it was the only explanation that made sense.
Yeah, payroll was outsourced and they met with the firm once or twice a year. The firm took care of mostly everything legal, including insurances and tax benefits afaik. The head of “HR” was a lifelong friend of the owner so I guess he didn’t want to go there.
My experience in a big software company was different and probably just like yours. The people there were rockstars.
This. 100x this.
The problem is that most times HR person is all you’ll get at the first interview and you’ll only get someone marginally tech-versed on the second interview. Even then you risk having some bozo who regrets not being hired by Google so all the questions are hyperbolic in the extreme and not related at all to daily tasks.
I believe algorithm focused technical tests are useful. However, if the interviewing team hasn’t taken the time to understand both the problem and the answer, then they are completely pointless. So you’re exactly right here to challenge their bullshit.
don’t take tech interviews seriously, they suck for everyone but big corps
your 2 decades of experience mean much more than memorizing algorithms, you know how to produce real value
don’t forget that, and don’t let them forget it
your 2 decades of experience mean much more than memorizing algorithms, you know how to produce real value
That’s all fine and dandy but the HR recruiter that can’t tell apart git from grunt needs to cross boxes in the skills assessment section, and if you don’t ace coding challenges you are as good as dead to them.
Why are you applying to that soulless shitshack??
Why are you applying to that soulless shitshack??
If you automatically rule out companies that either do their own coding assessments or offload them to third parties, you’d rule out most of the potential job market.
There are millions of small companies and shops that need engineering help. Many will actually talk to you like a person because they haven’t been enshuttified to death.
STOP WORKING FOR THESE GIANT HELLHOLES.
Back when i was a kid, i thought electronics shop were scammers; you knw, solder a wire here, hold power buttons longer than usual, and the thing works again! (This is the reason i got into fixing things 😁)
But since then, i came to a revelation, than it takes years of experience to knw which wire to touch, and wat not to touch at all; what is worth saving, and what is a gonner… saving time…
Coz apparently, as a kid i had a lot of time to spare. These days… Not so much.
PS: i still think they were scammers, coz i believe in being informed… Thats why for every electronics fixed/not fixed (even if its is a punny solder of a wire), i am completely transparent with the user, for both our sakes
There’s a story/joke about a company that has a large, important industrial machine that stopped working. They call in a specialist engineer, who walks up, hits it with a hammer, and it starts working again. He then hands the manager a bill for $2000. Incensed, the manager demands an itemized invoice because this was outrageous for something that took 2 minutes. The engineer kindly obliges: hammer $5, knowing where to use the hammer $1995.
Yep, use to work somewhere where we had a technician that would spend a whole lot of time just walking around, noting where we had blown light bulbs and stuff like that and he told me something similar “What I’m doing now is not what I’m paid for, that’s just me being nice to my employer, what I’m paid for is knowing how to solve the real issues when shit really hits the fan.”
Sysadmins can similarly have a hard time. After all, if they’re doing their job right, there are no problems.
I remember reading that as well, wasn’t it on a ship?
😂
But since then, i came to a revelation, than it takes years of experience to knw which wire to touch
Might be, might not be. A popped capacitor doesn’t require a lot of skill to spot.
Not all jobs are rocket surgery.
deleted by creator
Okay
Imo “scammer” is the wrong word. “Hustler” is more accurate in my experience.
Under certain circumstances, those iFixit places are exactly what it says on the tin - but if rent’s coming up and they haven’t had many walk ins, you might end up with a new Flux Capacitor in your JavaScript Microlibrary, since the old one looks like it started sending unhandled exceptions to the teraflop reader - but don’t worry, they put in a new 6-charge teraflop reader that should future proof it for years.
Yeah, I changed my career direction (industry, tech stack…) but before that, my CV only was enough for me to get hired. They would just verify the information, and sometimes, there weren’t even a single tech interview.
Yeah, they kinda suck and they are brutal to go into cold. Having to grind a bunch of leetcode problems is a burden, particularly if you currently have a job and god forbid a family.
I would still take them over the puzzle questions that used to be popular, or the personality test nonsense that dominates most fields. At least Leetcode problems are reasonably reflective of programming skill. I’ll also take them over vague open ended questions - ain’t nothing more fun than trying to ramble my way into whatever answer the interviewer is secretly looking for.
Personally, when the day comes when I’m In Charge, I plan on experimenting with more day to day type evaluations. I think there’s potential for things like performing a mock code review or having someone plan out a sprint based on a very detailed design document. “Here’s an icky piece of code, tell me what it does and what you would do to improve it” seems to have fallen out of style, though it’s not clear to me why.
That said, like it or not it’s how the game is played and not changing anytime soon. Get on the Grind75 train, or don’t and keep failing tech screens.
I have never found the ability to regurgitate Leetcode solutions as reflective of programming skill or even good performance. I’ve seen what talent I get from FAANG hires and what talent I get from random people with state degrees. Most of the time I will take the later. I have yet to staff some crazy R&D project that actually required anything like the things Cracking the Code Interview tells you to do.
I’ve found a lot more success giving people reasonable design exercises based on company projects and code exercises related to actual work done. I have made a career of only taking jobs with similar interview processes and as I’ve grown into leadership I’ve continued to give interviews that accurately test day-to-day skills. Am I missing out on really good talent by usually ignoring FAANG resumes? So far I don’t think so and I don’t need those idiotic attitudes polluting strong, elastic teams either.
I see them as a flawed indicator of the ceiling of someone’s theoretical computer science abilities. Having worked with some brilliant people that career shifted via bootcamps, I will contend there’s value in having that foundation. I also prefer Leetcode problems over having to memorize search algorithms. But yeah, it’s not very reflective of day to day tasks even in R&D heavy projects. The most algorithm heavy thing I’ve ever done was implement Ramer–Douglas–Peucker to convert points from mouse polling into a simplified line.
(There’s clearly a “it’s what everyone else is doing” aspect to Leetcode, on top of being very practical to run, hence I why don’t see them going anywhere. They’re also as objective as anything in an interview will ever be, so as I always say: it can be so much worse.)
I intend to make the hacker “dive into an icky codebase armed with a stack trace and fix a bug” aspect of software development a part of my interview process; plus lean more heavily on system design questions which is where non-entry level engineers really ought to shine. The parts that worry me are the ability to create new tests as they inevitably leak, plus whether I can truly objectively evaluate someone’s performance.
I’m curious what you include and how well it works.
When I was running DevOps/SRE consulting I did up to a 2hr deep dive into how to set up a codebase in VCS, establish CI/CD, design deployment, and manage the lifecycle. That gave a lot of freedom to ask specific questions related to the clients I need staff to support and also to get a feel for what people did and did not know. You start with some trivia questions and can organically move around based on the candidate to probe their strengths. That requires having a good interview team; what I’ve found is that if you train your team to interview the way you’d handle a normal design session things work out really well. I’ve got a lot of concrete problems to drop in based on real issues we’ve faced (if you’ve had to support EoL’d Ruby in k8s you can commiserate with a surprising number of folks). The length was dependent on the salary being asked for which determined title. Someone at an architect or manager level needed to know way more than someone just hitting senior status.
Now that I do general engineering stuff I’m trying to figure out something along those lines. I’m currently a fan of code reading some gnarly legacy shit we have to support and either some short data pipelining, API optimization, or component creation depending on what I’m trying to hire for. If you spend an hour with someone trying to code together you can get a decent sense of how they will work day-to-day in terms of how they handle confusion, talking through problems, and basic language knowledge. I try to remove gotchas and keep things in the candidate’s wheelhouse (One time I failed an interview because someone asked me to use a library I’d never seen and I spent an hour flailing because it needed a trailing slash but didn’t have good error messages so I could not figure out why anything wasn’t working. Huge fucking waste of everyone’s time; didn’t evaluate anything other than if I knew that library that wasn’t important.).
I don’t do take homes. I do realize that limits the candidate pool to people that are comfortable collaborating in a potentially stressful situation. I sometimes worry about that. It’s very important for a strong remote team to work well together even when things are awkward or stressful, so there’s a bit of value doing it that way imo.
Frankly I don’t care about interview questions leaking. Coming out of DevOps, it’s very obvious when someone actually understands what’s going on in the interview and when they’re copying and pasting. I’m very happy to have people take code from Stack Overflow during interviews; that’s real fucking life and shows me their research skills. Candidates I will hire can explain or improve the code. I’ve had to reject plenty of sysadmins that do not understand any of what they’re copying and cannot adapt to minor changes that I’ll add just to see how someone handles it. I worked at a company whose questions were on Glassdoor. We had plenty of people that came in prepared for those. We hired several that could roll with the punches (what if you change the inputs, how do you test this case, what’s going to break) and dropped plenty that clearly had no fucking clue.
Why are you assuming FAANG resumes can’t do system design?
I have two problems with FAANG candidates.
First, having gone through the full interview process at several and rejected all due to laughably low base salaries, I know how those candidates are selected. The skills being evaluated have fuck all to do with what I’ve actually needed engineers to do. That gives me zero confidence in their ability to do anything meaningful. Solving tic-tac-toe doesn’t mean you can actually walk your way through security problems in an API.
Second, the toxic cultures at these companies is not something I want infecting my teams. Google, for example, is famously about making yourself look really fucking good for a performance review board, not making the company better. Amazon makes people think the talent pool is big enough for perpetual unregretted attrition and pits peer against peer. Meta completely strips any semblance of ethics and therefore customer understanding. Twitter doesn’t fucking care about security.
Most engineers meet expectations. Period. People think FAANG is hot shit. It’s not. It’s arguably worse than most run-of-the-mill places because people on the internet like to make FAANG out to be hot shit. The chances of someone actually doing something big at FAANG are so fucking tiny it’s just like thinking you’re going to make the next killer indie game.
It’s pretty shitty that you are attributing the cultures of companies to the personalities of individuals. You’re going to miss out on a lot of good people doing that.
I think it’s fine to attribute those values to employees who fought to work at companies with those problems. I’m not calling out hidden problems; I’m calling out the issues you can easily find when you do a cursory search for information on the company you’re going to work for. If you think it’s okay to go work for a company like Meta I know you’re okay with some disgusting shit and I don’t want you near my team or my customers.
I hope you reconsider your stance cuz you’re making a lot of assumptions about people based on very limited information.
You do you, but throwing out applicants because you think they personally agree with everything their past employers have done is ridiculous.
Although I agree with you that people shouldn’t equate company values and employees’ values, I’d say that it could be true, especially if they did work there for long enough.
As for my personal opinion, this could likely be solved by a short questionnaire on why they left the company and what do they think of this and that.
I have never tried to get into FAANG (MAAMA 😅) but if I did, I’d definitely focus more on how to get there, not on why that’s a bad idea, so it’s not quite correct to judge based on the fact that someone worked somewhere.
As a side note, I had never did a thorough research of companies I applied to, somehow it mostly worked out, but I did sometimes end up in the company I wasn’t quite comfortable in ¯\_(ツ)_/¯
But OP was experience hiring both sorts of candidates and found non-FAANG employees to work out better.
And no, one shouldn’t judge completely on a former company’s culture, but some people do indeed drag that shit with them. My old boss would be great for some roles in my new company, but she has absolutely poisonous management skills stemming from her environment.
“Here’s an icky piece of code, tell me what it does and what you would do to improve it” seems to have fallen out of style, though it’s not clear to me why.
Because reviewing code is easier than writing it, unfortunately.
I disagree with that as a rule of thumb. I’ll take writing 1000 lines of code from scratch every time over deciphering 1000 lines of bad code.
However, I do you think are right if limited to the ~100ish lines that fit into an hour sized block of interview time. I suspect the other half of the answer is (good) job postings have largely gotten away from hard language requirements. It’s perfectly reasonable to hire someone that will need to familiarize themselves with Go or Python or Typescript or whatever. It’s not fair to expect someone to analyze code in a language they haven’t used on the spot.
Even deciphering 1000 good lines of code is hard . I work in abap and 95% of my time is going through old ,or very old code written in diffrent programing styles . The rest is usualy writing a one or two lines of code.
Maintaining a code base is definitely harder than writing new code, in my experience.
Don’t worry about the algorithm questions… companies asking that are just google-wannabe companies that don’t deserve you. I have always told recruiters “if there’s a time-limited interview test, I’m out”, and I’m doing very well for myself now.
If you’re desperate, unfortunately, you have to pick up a book on algorithms… one of those 600 pages book, and start reading…
Let’s be honest, even if you finish that 600-page book, you might not “crack” the algorithm interview. The inteview requires you to grind the question, or simply a lot of practices.
Astronaut: You mean they’re all too stupid to do the jobs they currently have?
2nd Astronaut: And they always were.
Also - those kinds of interview questions are bullshit. A good tech interviewer can ask about past experience and learn plenty from questions in that context.
If they ask a tech test question, it’s time to leave. When they act surprised, tell them you don’t believe in wasting your time with bullshit.
You’d be surprised by the number of applicants that can’t write a for-loop. There’s a middle ground between no test and complex tree search algorithms.
If I ever encounter that middle ground, I’ll let you know. Until now, it’s only ever been complex bullshit.
deleted by creator
Lmao, what the heck. I’ve heard about that, but I still cannot believe it’s true.
This is why googling is a skill, even if I don’t know then some 15 year old kid from Bangladesh has a YouTube tutorial on it
deleted by creator
Why? Tech tests are fine, absurd complex tests for shitty jobs are not
If you find some that are reasonable then I consider you lucky. I have not. They’ve only ever proven to be an absurd waste of time in my experience.
I only got quite simple tests tbf, but I don’t look for senior positions. Main thing is to just get the problem solved writing decent code (if it’s a home assignment) or to walk them through your reasonings
The only time I got a leetcode waste of time it was a Dijsktra/A* problem (which I failed)
I simply refuse to move forward if the interview process involves a whiteboard interview. I have no aspirations to work at FAANG so this has only happened to me a couple of times
The worst is when you’re not expecting it and get ambushed with a whiteboard…
You have a 2^n marbles and a scale…
I was so lucky in the interview for my current job: I’m working on a product with a big networking component, and I was asked to write an echo server with low level components. That was maybe the second time I had a test related to the job.
Never had issues in the past, I actually did the tests for few friends, just for fun. But most of the time they are overkill. Now that I have more experience I realize it takes few very basic questions to understand if one is technically fit for the job.
I don’t know if I would appreciate a complex test now if I was looking for a new position. It feels a bit disrespectful.
I currently struggle accepting all the psychological and hr tests for management positions… They are hr bs. I do them, but they are imho much worse than technical test, because completely useless and arbitrary. Those are really offensive and intrusive
another problem with tech tests is how broad of scope they cover - like everything you’ve learned when pursuing your degree.
Most other professional engineering disciplines have licensing obtained using FE and PE exams. Those exams are effectively “tech tests” equivalents but after passing them you get a license that you have to maintain. I can appreciate this approach since you can take CEU (continuing education) to maintain your license instead of taking the entire test all over again.
I never though software engineers would need a license but I would MUCH rather prefer grind to obtain a license ONCE which then I can use to fulfill tech test requirements and maintain the license with much less effort throughout the year.
deleted by creator
thanks for sharing, didn’t know they got rid of it - makes sense though
from the same article:
if the boards aren’t regulating the [software engineering profession], it’s tough to get people to take the exam
Now middle managers and HR are regulating the software engineering profession -_-
deleted by creator
But if people want to complain about the irrelevance of reversing a list or describing two different approaches to balanced trees… they’d probably complain more about being tested on generators and RC frequency response in low pass filters even if you only have to take it once.
LOL! absolutely.
I think the skills tested on tech interviews are important, though; At least fundamentals. I don’t encounter many people that consider time and space complexity of a unit of code (big O notation) and that’s unfortunate.
Data structs and their method for language built-ins are already optimized so I get that most people just use them but man, I see so many developers not even choose the correct structures. That includes me until I started leetcoding for a new job after 4 years of professionally work.
But of course, this needs to stay in reason. Asking Brainteasers and optimizations like dynamic programming are dick moves. I don’t want my team to prematurely optimize and make our code base complex just cause.
I hope I never have to look for a job again but with the way my business has gone lately, I may need to start thinking about it in a few years.
I’ve also been coding for 25 years, most of that professionally. I’m not sure I could pass a tech interview.
The reality of tech.
Sometimes those positions are meant for promoting internal candidates, who obviously sat in, conducting the same interviews in the past. So the difficulty is dialed up to “I am Death incarnate!” levels and they then have scoring data to support their selection of the internal candidate. At a friend’s workplace, they’d opened up a 2-3yr exp position to convert a great intern, and had some great 10+yr exp people apply. My friend said that was a little awkward. Even if Mark Russinovich or Linus Torvalds applied for that job, they still had no chance at getting it. I joked that I might put a resume in his manager’s pile for the creator of the tech stack they were interviewing for, just to hear how that reaction was.
That’s probably not representing even… 5% of these gauntlets, but it might make you feel better. Sometimes, it’s the hiring manager fulfilling the letter but not the spirit of some process, but it means they are frustratingly hard on candidates in the process.
And perhaps, ultimately, you have dodged some bullets.
For a lot of these you need to study/practice on sites like HackerRank for a while first. Some companies go overboard and expect you to build some crazy recursive dynamic programming implementation in 15 mins without an IDE, others are more realistic and just want to see if you know things like algorithm complexity, can pick appropriate data structures, and write logical and clean code. And yes, very little of it applies to what most of us do day to day. Anyways, HackerRank is great for interview practice, you can Google for pretty much any solution to their questions.