For that kind of seniority/experience, what fraction of companies asked LeetCodey stuff? Was it easy or medium/hard problems? How much time did you have to spend preparing/practicing?
Not the OP, but with similar experience levels and I’ve never done a LeetCode interview, and even regular interviews are pretty light. I mostly contract though, and they generally offer me full time after a little while if I want it.
Also not OP, and also similar experience. Most of my interviews are an hour or two of conversation, sometimes with a "I've been told I have to ask.. " techy question but never involves any actual code/whiteboard. Several times the interviewer has said something to the effect of "I won't insult you by asking you to do a tech test, it's clear to me that you understand the work" or similar. One occassion (some years ago now) I've replied to a request to complete a tech test with a "Would you rather look at my open source code/contributions?" which they did and I didn't need to perform the test.
Not quite as experienced as you (I’m in the 10-15 year bracket).
I never ask LeetCode questions because it’s far easier on both sides to ask experience-based questions like “what do you like/dislike about <technology on your resume>?”
If I get superficial answers that tells me something. If i get well thought-out answers from people who have clearly spent time in the trenches that tells me something too.
I've been doing this for 30+ years, and I've found the same. It's not just whether the candidate can answer correctly, but how they answer.
Back when I was doing C/C++ interviews, I'd ask questions like:
What's the difference between single and double quotes? A meh candidate answers something about you need single quotes for just a single character. A good candidate answers about how the data type for a double-quoted constant is a char.
If I want to pass a variable into a function, and have its value changed by the function, what do I do?* A lousy candidate says "put an ampersand in front of it". A meh candidate says to pass a pointer to the variable. The best candidate will talk about the difference between call-by-value versus call-by-reference.
People really do reveal a lot about themselves not just in what they say, but the way they say it.
> If I want to pass a variable into a function, and have its value changed by the function, what do I do? A lousy candidate says "put an ampersand in front of it". A meh candidate says to pass a pointer to the variable. The best candidate will talk about the difference between call-by-value versus call-by-reference.
I agree it's good for a candidate to demonstrate a solid understanding of evaluation strategies, but the way you phrased the question, the 'meh' answer seems about right. You asked what do I do? which invites a narrow answer specific to the language.
In fact, I had an instructor in college that would have marked you down if a quiz/test asked this question and you wrote an entire paragraph describing call-by-value versus call-by-reference.
On the final, he said "Each of these questions is answerable in 1-3 sentences. If you're writing 1-3 paragraphs, you're wasting my time and I will subtract points even if your answer is correct."
Both great questions, where the answer will give you a level of knowledge, rather than a yes/no.
(personally, I would be a meh candidate until you probed further - but I've not touched C for.. hmm, I'm old)
I often get questions where I need to determine if they're looking the textbook answer, or a real-life answer. Usually I will go with "well generally, the answer is $Textbook. However, ..."
I just realized that my above model answer gets broken by the formatter. the first question should get answered with char-star, that is, pointer to char.
Well, at the time I was doing that, it was actually for a C and not C++ job, so &references weren't even a thing. But my point wasn't that using the ampersand is wrong - just that if that's how you describe what you're doing, you probably don't have a very strong foundation in how the language really works.
Completely off topic, but I wanted to see if your bio could be parsed for an email with chatGPT - since I thought yours was the most interesting I've seen in some time. Turns out cgpt is quite clever:
What's the email address: To email, send to the domain [redacted], using the mailbox "[redacted]".
In general, email addresses consist of a username followed by the at symbol (@) and the domain name, such as [redacted]@[redacted]. However, without being able to verify the existence of the domain [redacted], I cannot say for certain what the email address would be.
Exactly this!
I haven't been interviewed for a long time now, but since the beginning of my career, when I have interviewed people I ask deeper questions. Even with tech tests, I use them as a jumping board for diving deeper into language design, tradeoffs and experiences.
Even a trivial, reverse-a-string kind of questions can take you deep into candidate's knowledge.
Contracting interviews are nothing like FAANG though, I literally had one that was a 30m chat with a couple of softball questions. Compared to FAANG they are all a walk in the park and barely need any prep.
I give contractors a coding question related to the job. Unlike LeetCode, it isn’t really challenging (not even fizzbuz), just a test that they can learn a few APIs (that are given descriptions) and write down code. You’d be surprised how many candidates freak out at that point. Unfortunately, it’s often needed for the role.
Not everyone can do this, but if you can manage to first do contract work, IMHO it's win-win for both parties. From the company's point of view: senior engineers are very expensive -- having a contract period lowers risk. From the employee's point of view: you get a good idea of what the company is doing / what your exact role would be before you commit.
In theory, it's at will employment yada yada. But in practice, it makes a difference.
How do you find contract opportunities? Is it the same as regular job searching? Do you use a firm? Do you apply to full time job posts but say you prefer contract to hire once you have an interview?
the canonical way is reaching out to anyone in your work history that you had any sort of positive working relationship with. i just went through this exercise and saw a tip in a similar thread to ask something like this in the email, “do you know anyone who is looking for contractors?” this way you don’t create a potentially awkward situation for them where they have to say they can’t hire you. and, in my case, this led to referrals that ultimately ended up in signed contracts.
big agree on contracting interviews being light. i’ve had about a dozen in the last year and only 2 asked technical questions. the rest were more curious about time lines and cost.
I went out of my way to not do leetcode so I only had one because Glassdoor was wrong. I would ask the recruiter during the initial call where I also talked about salary so as yo not waste everyone's time. I cancelled a few interviews that I later found out were leet code, not because I don't want to do them but more I think the people you end up working with are better at testing than coding, from my experience.
You can make SF/Seattle/coastal money without participating in leetcode interviews. There is a fascination on this website with these cities, but you can make just as much from just about anywhere without going through this popular hazing process. It will limit the amount of opportunities offered, but there will still be opportunities regardless.
Base is higher than I was making at Twitter, but instead of RSU/ESPP it's now options which can go either way, so it's a gamble. For me, I prefer startups, but the golden handcuffs are hard to takeoff once you've had them on for a while.
just chiming in for others that i've had a job specifically waive a coding test because they saw me livecode in front of 2000 people and my fave amazon interview story was a guy that walked in with his laptop open to my blog saying "this is just a formality i've read your work" lol
TLDR why leetcode in private when you can work in public*
(*yes yes, not everyone can work in public, but i bet a fair amount of you can but havent given it a real shot)
Last time I had a coding test during a job interview, I was left alone for an hour with a laptop that was screen-shared with a number of interviewers that was unknown to me. It felt a little like live coding in public but without any audible feedback. That might stress some people out I’d guess, but it felt chill to me. I did my usual thing, even used StackOverflow for some quick syntax & library tips, and finished the program (a Tetris-like game with an AI player, in Python). Got the job. It was pretty fun TBH, even with a lot of experience, I’d prefer the live-coding interview over talking through database schemas or whatever.
It was a whole game from scratch in the programming language of my choice. They only specified the rules. It was keyboard and console only, btw, no graphics or controllers or sound. I took the whole hour and was mostly done when I ran out of time. I forgot to write the score keeping before the interviewer came back. The AI player was “extra credit” and I finished that, so it helped excuse my scoring oversight.
It wasn’t that much or that bad, really. The setup was pretty simple, and quite doable for junior devs IMO (though full disclosure I had just left a position as a lead game programmer, so for me specifically it would have looked a little bad if I didn’t smash this particular interview question). It also helped that the problem was open-ended with extra credit features. I learned later when giving the interview myself that most people never finished the basic game, the majority never tried to write an AI player, and the interviewers were quite forgiving with their ranking & scoring - it was adaptive to the candidates. The coding part of the interview was just trying to be a bit fun and not just be pure dumb LeetCode problems. IMO it worked, I totally enjoyed the interview. The rest of the 4 hour interview included some whiteboard questions (on DB schemas, which I flubbed pretty hard) and also a lot of just talking about experiences and goals.
Yea that would do it for me haha. My bread and butter is embedded C! Technically it's C++ but we try to ease off the ridiculous C++isms because this stuff needs to be readable to the person that was waken up with a phone call at 3am and needs to explain some random behavior lol.
I've never done anything spectacularly fancy with CLI terminals. I could rig up a UI with c++ and qt, or python and tkinter.. but it's been a while. Longer ago, I used to do objc but that was forever ago!
Oh you could do what I’m talking about in C, no problem. By console and keyboard only, what I mean is that this is a game done in the shell with a REPL using printf() and scanf(), it was not graphical or anything. The programming problems weren’t about game programming, it was just design a little data structure to hold the board state, implement valid move checking, detect win/lose states. Really simple stuff, I guarantee it wouldn’t be hard for you.
Re: ridiculous C++isms and embedded C, I’ve been in the same spot for my entire career. After learning C++ in college, I joined a CG film company that had banned C++ (dumb story) so I learned how to write object oriented C. Working in console games after that, we weren’t allowed to use any built-in memory management or exceptions or a current compiler, so very restricted C++. (And the worst bug I ever fixed was when someone tried to get clever with their C++ copy constructor.) These days I use CUDA, which is also technically C++ but basically C.
So your suggestion is to just become a content developer and start marketing yourself online? Getting your work in front of others and getting the amount of reach that you have is also a lot of luck. Not everyone can get the same amount of reach as you have - I've seen hundreds of developers shouting out into the void without any recognition.
> Getting your work in front of others and getting the amount of reach that you have is also a lot of luck
I think this is dismissive of their talent, relative to other people who might try doing the same.
To be fair, swyx was also being dismissive of their talent "Just work publicly and you don't have to prove your coding skills!", which of course assumes your talent will be evident to anyone glancing at your public work. In my opinion, making incredibly complex work look effortless, and therefore easy to follow, requires exceptional talent.
> I think this is dismissive of their talent, relative to other people who might try doing the same.
I believe those who are popular content creators are also better at marketing and sales. Getting their work recognized means that their marketing talent is good and not necessarily their programming skill relative to other people who are doing the same.
When looking from that perspective - are you optimizing for hiring people with good programming skills or those with good marketing skill?
You don't need to become a Twitch streamer or anything, I expect the main developer of a significant open source library would have a similar advantage in adjacent industries.
You can take a traditional career path, or you can carve out a niche somewhere.
Not OP, 15 years of commercial experience, been writing code since 95. Only two companies did something similar to LeetCode, never prepared — last time I seriously took part in programming competitions was in high school in 2004 — still easily solved everything they asked for. One of the problems was actually famous n queens — which I remembered as a problem, but didn't remember the solution for. Solved it in 40 minutes (with an uncommon solution, as interviewer later told me) anyway.
Most of interesting questions had to do with system design and debugging, soft skills (also system design and debugging, but of systems made out of people instead of code) and code reviews — with me reviewing their production code. Sometimes I got pretty stupid interview questions like remembering REST spec (there isn't one) by heart, but those were companies I wouldn't want to work for anyway.