“Why can’t I get a job in tech???”

The Question

I get this question a lot from people just starting out in this industry, more so now with the rise of coding bootcamps and the glorification of being a developer, our infatuation with startups and entrepreneurism, and the rise of nerd culture. It seems there are more aspiring developers than ever before, which is good because there’s a global shortage in software engineers that seems to be growing. Unfortunately, companies are still having trouble filling their software engineering roles because everybody wants to hire the best software engineers, but the best software engineers only want to work for the best companies. This could be the topic of a future post, but you see the dilemma.

Here’s an anonymized question I just received in my LinkedIn inbox:

“Hey Karim,

My name is Percy and I was hoping to get some advice on the first steps in this industry. I am a full stack developer but I am having a heck of a time landing a job because I have not accumulated enough experience. What steps could I take to overcome this hurdle?

Thanks, Percy”

My Story

Before I dole out my advice, I think it might be helpful to hear my story so you know where I’m coming from.

After having been in this business (software) since 2004, I’m now considered a veteran. I’m a senior software engineer and I’ve been managing teams of engineers since 2011. I literally have multiple recruiters reach out to me every day trying to sell me on some new job opportunity.

But it wasn’t always like this; it took a lot of work.

I graduated from UCSB in 2003 with a computer science degree, but I never did any internships over the Summer like the smart kids. I worked at the beach, as an ocean lifeguard, and went surfing every day. I didn’t build anything cool in my spare time like I should have. I just worked out and partied … or wait, maybe that was worth it. I did have a lot of fun …

Anyway, my point is that (besides earning a CS degree) I was woefully unprepared for the job market. The unfortunate reality is that a CS degree just doesn’t prepare for the real world of professional software development. I went on dozens of interviews for software engineering positions and got rejected again and again. Interestingly, the place I usually failed was in the interview. Nobody ever coached me on how to pass a software engineering interview. For those of you haven’t experienced it; it’s brutal. You have to get up in front of your interviewers and solve puzzles or write code on a whiteboard. You basically have to prove you’re smart enough to work at X company. This process has evolved slightly in the past 10 years, but it is still a stressful endeavor and I still get nervous at interviews. Heck, I even get a little nervous interviewing people.

Through all those failures, however, I never gave up. Instead I tried to learn something from every failed interview, and I started building websites … first for myself, and then for friends, and then I decided I’d start a web dev shop, and I built a website for that, and then took on more clients. They never paid very much, and some I did for free … but I was building shit, and I was learning.

Eventually, I landed my first job in tech, working for Electronic Arts as a Language Integration Technician. My job was to take assets in foreign languages, put them into video games at various stages, play through them, and make sure everything looked and felt okay. It was basically a glorified QA job.

 

The Answer

Here’s my (abridged) answer to Percy and future devs who are struggling in this market:

“Hey Percy, it’s always tough to break into the industry, especially if you didn’t do internships during school. I made the same mistake, but don’t lose hope. You’re doing all the right things, working on side projects and keeping your education up.

Are you getting interviews? or not at all? If you’re getting interviews, you probably just need to focus on your interview prep and get better at that. If you’re not, I recommend reaching out to recruiters and utilizing them to help you. Your interests are aligned; you want a job and recruiters get paid if you get a job.

Also, don’t be too proud to apply for QA jobs. It’s a way to get your foot in the door and I guarantee as long as you kick ass and show initiative, you will get promoted into that development job that you want. That’s what I did.

Also, if you haven’t already, don’t hesitate to apply for just front-end or just backend roles. I personally feel the full-stack developer is a bit of a myth, at least a good one anyway. If you really want to do full stack, your only options are probably small startups. Any mature software engineering organization knows they need their engineers to specialize in one area to get the most productivity and highest quality code out of them. Best of luck!”

Chief Technology Officer (CTO) or Individual Contributor (IC)?

Which path should you target in your career???

So LinkedIn just released a mentorship feature where they pair mentors with mentees through the app. I signed up as a mentor and got flooded with requests from young software engineers and surprisingly many young data scientists. The most common thing these young engineers want advice on is which direction to take their career.

Here’s a request from one such data scientist, let’s call him Ralph:
“I’ve been a data scientist for less than 2 years and would love to hear your advice on focusing as an individual contributor or growing as a leader towards the CTO path.”

I would love to help Ralph on a one-to-one basis, but unfortunately don’t have time in my life right now to meet and mentor with every young engineer and scientist that comes my way looking for mentorship, so I will point them here, and to this response:
“Hi [Ralph], unfortunately I can’t make time anytime soon to meet you, but I get this question a lot so let me give my advice here.

There is a lot of leadership you can explore without explicitly going down the managerial track. You can own projects, you can be the tech lead, you can volunteer more at work, you can start projects on the side, and you can mentor people. All of these things will help you figure out if you actually like dealing with people as part of your job, because the fact of the matter is that the higher up in the managerial chain you go, the more it is about managing people.

The other thing that I’d like to point out is there are a lot of great end games out there besides just IC or CTO. A lot of companies, including Coffee Meets Bagel, have an architect track for people who know they’re not interested in managing people and just want to immerse themselves deeper in code and architecture. End game for this track would be Chief Architect.

We also have our data science organization as a completely separate, high-level, organization from engineering which reports directly to the CEO. So, at some point, we will have a Chief Data Officer or a Chief Algorithm Officer. Now, those positions would still be very heavy on people management, but probably a little more specialized and more hands on than a CTO role.

I hope that helps. Happy to answer any other questions or dive deeper!”

And I hope some other young engineers stumble across this as well and get some value out of it!