Degree matters if you have nothing better to show, consulting and BigTech backgrounds are negative, too many seniors can't code.
Part of working with a growing company has been interviewing. A lot. 17 interviews for senior engineers in 18 weeks, I counted. Felt like more π
Everyone I interview considers themselves a senior engineer, talked to our recruiter, and got a first thumbs up from the hiring manager.
My interview is a React pair programming challenge. Sometimes I'm the pre-onsite tech screen. The one folks cry about as The Leetcode.
It's not about leetcode, it's about showing you can code your way out of a wet paper bag π
The Senior Minset email crash course
Get a free chapter from the Senior Engineer Mindset book and a sample audiobook chapter, followed by a Senior Mindset 101 email course.
You'll get insights to apply at your work right away.
Too many seniors can't code
PS: writing a for loop to prove you can code your way out of a paper bag does not count as leetcode
β Swizec Teller (@Swizec) May 6, 2021
And is unfortunately necessary because for many seniors itβs been so long since they did anything other than meetings that theyβre pretty useless.
2 types of candidates can't code βΒ the very junior and the very senior.
Juniors struggle because they're fresh. Know a lot of concepts and ideas academically, but the visceral experience and battle scars ain't there yet.
Seniors struggle because they spend less and less time coding. More and more meetings, design docs, tribal knowledge, code archaeology, and mentoring. Suddenly you can't code.
Our "leetcode" is a question you can solve with a loop and a dictionary. Takes people 2 minutes to think of a solution, 10 to 15 minutes to code it up. Sometimes they choose Java and it takes 20 minutes.
Then we chat about curveballs and dig into "Anything you could improve?". The fun part.
Many engineers get stuck because their first stab is theoretically optimal. But algorithm complexity ain't everything my friend.
You can improve how it works in practice.
One day I'll find an engineer who says "Hey bozo there's a limited number of English words, get outta here with your memory performance question"
That's the corner cutting mentality you want in a startup engineer. Real world constraints that make the code easier to build. π
Read the instructions!
The React pair programming challenge tells you a lot about a candidate. Many promising senior engineers turn out to be mid-level instead.
Most folks who thought they were senior evaluated at mid-level.
β Swizec Teller (@Swizec) May 6, 2021
Youβd trust them to write good code, but not to design solutions and component interfaces from scratch.https://t.co/0awoRATelA
You get a working toy project, a user story, and up to an hour to solve the problem. Pretend it's a work day except you can't use npm install solve-my-problem
.
Almost everyone solves the problem. But it's tricky.
If you read the requirements and ask questions, you build it in 30min. Plenty of time to discuss optimizations, better solutions, debate about component design, and interview the interviewer.
If you don't, you'll take a wrong turn, make a bad decision, and it's gonna take 50min to build.
Candidates run out of time when building step-by-step with no plan for the end goal. You gotta have a plan.
Skip the fiddly details
Engineering protip: Solve the problem.
β Swizec Teller (@Swizec) May 4, 2021
Your fantastic code doesn't matter unless you solve the problem.
Engineers have a hard time letting small fires burn.
Yeah sure the code is ugly and you have no idea how it works. But it works, has a name, and is self-contained.
Leave. It. Alone.
You do not have time to refactor everything in an interview. You won't have time to refactor our 600,000+ line codebase in your job either. Trust me, I wish I could.
Lots of dragons lurking around. Kill your dragon my friend.
That's my favorite signal to look for in a senior engineer. Will you look at a working non-leaky abstraction and lean into it, or waste time?
Kudos to you, if you can slay dragons and finish the user story.
Maybe focus on the user story first? π
Many engineers lose time on fiddly details, little design tweaks, tiny refactorings, then realize "Oh shit, I didn't read the whole story! There's more work than I thought!!"
Too late.
Too many engineers can't build
Biggest surprise in interviewing seniors was how many of them have no idea how to build stuff.
β Swizec Teller (@Swizec) May 7, 2021
They're so used to working in mature codebases they forget JS event bubbling, HTML form behavior, how to design a database schema, or make a tech decisionhttps://t.co/i619qRJgCs
My biggest surprise was seeing how many engineers can't build.
Yeah sure they'll write fine code, design a reusable component, quickly grok existing code, understand React, and even ask good questions ...
... then they're like "Wait that's weird, why does the page reload when you submit a form?"
Because that's how HTML forms work, damn it! π£
They're so used to working with an established framework they forget the basics. How to make a link, how to add a button, the behavior of forms, event bubbling, ...
Someone somewhere solved it all. Now they're reusing patterns, copying code around, and patching little details.
The system design interview highlights this the most. Many fail or get a flabby "yeah maybe".
Senior fullstack engineers who can't write a SQL statement, design a caching structure, think about scalability, or deconstruct a fuzzy ask into a clear model schema ...
Why consulting and BigTech backgrounds are bad
And that brings us to the most surprising revelation of all π BigTech engineers are bad.
Great at what they do for their companies. Likely flop in a startup.
Consultants and consultant-like folk are great at talking a lot, generating reports, giving advice, and taking up space. Where they falter is getting shit done.
It's like the lesson from Moneyball, doesn't matter who's on your team βΒ do they get on base and score points? You need points.
Same problem with BigTech folk.
Lots of meetings, lots of process, lots of free time, lots of deep thought about a specific problem and all its implications for a bazillion users.
We don't need that. We need you to get on base.
Then build the tools to get everyone else on base. π
The best question to weed out senior vs. mid engineer
Why'd you do that?
Best question you can ask a senior candidate is βWhy did you solve it like that?β
β Swizec Teller (@Swizec) May 6, 2021
Seniors have a reason, even if you disagree
Mid-level canβt explain or back up their choices
Can be as mundane as return null vs []https://t.co/moBnAy6mBQ
I ask this a lot. While you're coding. π
Seniors explain every decision. Tradeoffs, implications, ergonomics, abstractions β there's a reason. Even if you disagree.
Mid-levels falter. It's how they've always done it. Or a tutorial said so.
Cheers,
~Swizec
PS: here's a bonus about job hopping that didn't fit the article
Job hopping doesnβt hurt you as much as getting stuck maintaining a unchanging system or working in a widget factory.
β Swizec Teller (@Swizec) May 6, 2021
Typical failure mode is to become a growth or sales engineer. Many devrels fall into this trap too.https://t.co/beTBep8R2q
PPS: don't worry we do hire folks from BigTech and Enterprise when they show the right mindset. Unfortunately those places are designed to hammer it out of you by force. They need interchangeable robots.
Continue reading about What matters in a senior engineer job interview
Semantically similar articles hand-picked by GPT-4
- Interviewing tips for experienced engineers
- You're not asking for a job, you're selling a service
- What to expect in senior level interviews
- What makes you a senior software engineer anyway?
- Getting from junior to senior
Become a *true* Senior Engineer
Get promoted, earn a bigger salary, work for top companies
Getting that senior title is easy. Just stick around. Being a true senior takes a new way of thinking. Do you have it?
The Senior Minset email crash course
Get a free chapter from the Senior Engineer Mindset book and a sample audiobook chapter, followed by a Senior Mindset 101 email course.
You'll get insights to apply at your work right away.
Have a burning question that you think I can answer? Hit me up on twitter and I'll do my best.
Who am I and who do I help? I'm Swizec Teller and I turn coders into engineers with "Raw and honest from the heart!" writing. No bullshit. Real insights into the career and skills of a modern software engineer.
Want to become a true senior engineer? Take ownership, have autonomy, and be a force multiplier on your team. The Senior Engineer Mindset ebook can help π swizec.com/senior-mindset. These are the shifts in mindset that unlocked my career.
Curious about Serverless and the modern backend? Check out Serverless Handbook, for frontend engineers π ServerlessHandbook.dev
Want to Stop copy pasting D3 examples and create data visualizations of your own? Learn how to build scalable dataviz React components your whole team can understand with React for Data Visualization
Want to get my best emails on JavaScript, React, Serverless, Fullstack Web, or Indie Hacking? Check out swizec.com/collections
Did someone amazing share this letter with you? Wonderful! You can sign up for my weekly letters for software engineers on their path to greatness, here: swizec.com/blog
Want to brush up on your modern JavaScript syntax? Check out my interactive cheatsheet: es6cheatsheet.com
By the way, just in case no one has told you it yet today: I love and appreciate you for who you are β€οΈ