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:
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?
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.
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!”