Engineers often complain about "recruiter spam". Those impersonal emails recruiters send to anyone with a pulse and the words "software engineer" on their LinkedIn profile.
Set your LinkedIn location to San Francisco and your profession to Software Engineer. Try it, I dare you.
You know what's the most common question I get from readers?
"Hi, I graduated from and I have amazing Comp Sci knowledge. I built this and this and this and I'm making money as . I want a better job, but nobody's emailing me. I've sent out very many applications, and one person replied that they're not interested. Everybody else ignored me. I'm really bummed out. Why is this so easy for everyone else? Am I not good enough?"
First of all: You're great! You're writing code, and you're being paid for it. You're cashing checks, and you're paying the bills. That means you're a talented programmer in my book!
Your code is creating real value. Congratulations 👏
Took me 7 years of tinkering before anyone paid for my code. Way more than that before recruiters started emailing.
“If you wrote something for which someone sent you a check, if you cashed the check and it didn't bounce, and if you then paid the light bill with the money, I consider you talented.”
How are people capable of finding new developer positions so easily when people like me struggle to score a single interview?
Hint: They're not. It's all a lie. A beautiful story you see on social media without context.
When you go online, look at social media, or talk to a friend at a bar: you get their highlight reel. You haven't spoken in 2 months, and you ask how it's going.
Are they going to tell you every day in painstaking detail?
Of course not. They say "Life is great! I just started a new job, moved into a new apartment, and I'm going on vacation to the Caribbean next month."
What they don't mention are the 300 job applications they sent out. 200 emails scheduling initial interviews with just 50 responders. 30 versions of their resume tailored for each application. 10 phone screen interviews. 30 in-person interviews. And the 2 job offers they got.
They then spent 3 weeks negotiating the offers until one job fell through and they barely got the other.
Getting a job is hard work.
Plus, you're comparing yourself to tens, if not hundreds, of others. Follow 1000 people on Twitter, and I promise you at least one of them is starting a new job they're excited about every week.
You're seeing week after week of excited job announcements while you sit in your cubicle eating chips and distractedly pushing your mouse around trying to work out a boring problem you've been stuck on for days. Ugh why is everyone's life so much better than mine!?
It's not. You're just comparing yourself to a thousand people. You can't compete with a thousand people! Compete with yourself.
Changing jobs every 2 years is super aggressive. You're killing it in your career growth if you get a better job every 2 years. Absolutely smashing it! Meteoric growth.
Finding a job is like running enterprise sales.
You're selling a $400,000 product. Yourself.
Your future employer is paying some $130,000 per year for your $100,0001 salary. Assuming a decent 3-year tenure with no raises, that makes $360,000.
That's an expensive purchase, my friend.
If you were buying something for almost half a million dollars, how certain would you want to be that it's the perfect fit for you and your business?
So don't despair. It's normal to have a 5% response rate to submitting applications. A low success rate in interviews.
You're running a sales funnel. Each submission is a new lead. Each reply is a qualified lead. Then you have phone screens, interviews, and salary negotiations.
Finally, after much effort, you close a deal.
And you only need one. Just one deal. That's all you need!
Getting a NO is a good thing! You want nos. Collect them. Wear them with pride. You've earned those.
Don't think of a No as a comment on your skills or quality. It's not about that.
Every No is saving you from a job that wouldn't be a fit. A job you'd hate. A job you wouldn't be happy in, or you'd struggle too much, or whatever.
Would you rather hear No or get a job you hate?
There's a rule in selling things online that says no matter what you do, a 5% conversion rate is about the best you can hope for. A lot less than that, and you've got bad positioning or are talking to the wrong people. A software engineer probably won't purchase cow manure.
A higher rate than 5% and you're probably underpriced. Charge more.
Sales have higher conversion rates. 10% to 15% for qualified leads from what I've heard.
That means, even if you're the best sales person in the world selling exactly what people want, you still need 10 conversations to sell 1 product.
Two ways you can increase conversion rates:
- Find better leads. Apply to jobs you're qualified for, jobs you're enthusiastic about, jobs looking for you.
- Don't mess up the process. Ranging from obvious things like showing up on time to less obvious stuff like following up relentlessly until they give you an explicit answer.
You can learn this by trial and error. Or read some sales books.
Ultimately, it's a numbers game. No matter how qualified and how great a match your leads, you need enough of them to make a conversion.
Go to meetups. Network. Meet people. Ask about who's hiring. Send emails to everyone who posts on HackerNews. Email everyone who posts on Reddit. Go on Twitter. Announce your job search to the world. Hustle.
Explain what you can do for them. Shout it from the roof tops. The more initial contacts you make, the likelier you are to land a sweet gig you're gonna love.
And don't worry about rejection. Rejection is good.
If you write code that gets deployed to production, is used by real users, and delivers some value to the user (otherwise they wouldn't use it) 👇
Then, my friend, you are a skilled developer. Congratulations.
Anything other than users using software you've built is irrelevant. Users don't care what people on Twitter say about your code. They just want to solve their problem.
A-ha! That's a great question.
First, you have to realize what employers are looking for. They're not all looking for the same things.
Most employers are primarily concerned with not making a mistake. Hiring is expensive and firing is unpleasant. They'd rather skip a few good candidates than hire one bad person.
You can reassure them that you're not a mistake.
Show that you've shipped production code. Show that you can work in a team. Show that you're hardworking. Show that you won't miss deadlines. Show that you're a good communicator.
Stuff like that.
Rockstar developers are great, but they're also hard to work with. Divas with big egos. Not a great fit for most teams.
Consistency is key! Can you produce good code, day in and day out, at a predictable pace with a predictable level of mistakes?
Awesome! You're a great fit for every normal company.
Looking to join more of a fresh startup? Then you gotta show you've got the stomach for crazy work hours, the mental agility for priority shifts, and the ability to come up with novel solutions to novel problems.
Consistency is less important and flashy heroics to ship code on a ridiculous deadline revered.
So how do you display those skills?
It depends. Often just saying the right words when expressing your approach to work and philosophy about code (often asked during a phone screen) is enough.
Speak the corporate tongue and you will stand out to a corporation.
Speak the startup tongue and you will stand out to a startup.
Speak the business value add language and you will stand out to a medium-sized business or a consultancy.
What never fails is recording your achievements.
Built something cool for your job? Write a blog. Solved a hairy technical problem that reduced server load 50%? Write a blog. Involved in a project that made $1,000,000 in revenue? WRITE!
Two types of blogs are most valuable for your career:
- We had a tough technical problem and here's how I solved it
- I wrote code that improved sales or increased revenue by $X
Video works, too. Just adding it as a blurb on your LinkedIn is a-ok. You don't need a blog. Just a permanent record of your achievements somewhere that an employer might look.
Written in employer tongue. Problem X, solved using Y, with the business result Z.
You're awesome ❤️
There's a whole book I could write about this. Perhaps I should. Until then, look up the works of Patio11. His podcast will change your life. Listen to it all.
Here's how it works 👇
And get thoughtful letters 💌 on mindsets, tactics, and technical skills for your career. Real lessons from building production software. No bullshit.
"Man, love your simple writing! Yours is the only newsletter I open and only blog that I give a fuck to read & scroll till the end. And wow always take away lessons with me. Inspiring! And very relatable. 👌"
Ready to Stop copy pasting D3 examples and create data visualizations of your own? Learn how to build scalable dataviz components your whole team can understand with React for Data Visualization
Curious about Serverless and the modern backend? Check out Serverless Handbook, modern backend for the frontend engineer.
Ready to learn how it all fits together and build a modern webapp from scratch? Learn how to launch a webapp and make your first 💰 on the side with ServerlessReact.Dev
By the way, just in case no one has told you it yet today: I love and appreciate you for who you are ❤️