When I got my acceptance letter to the University of Washington I thought my days of financial stress would end upon graduation. There would be a Saturday where I would sit in a field, listen to speeches, walk across the podium to collect my diploma, and two days later I’d wake up early for my first day of work in a new industry.
Like everyone else, the current job market and world economic conditions were beyond any reasonably conceivable reality I could conjure up. I didn’t even get to sit in the field.
Six weeks ago I graduated (via that webcast) from UW Bothell with a Bachelors of Science in Computer Science & Software Engineering, with an added optional emphasis in Information Assurance and Cybersecurity. My cumulative GPA was 3.5. I had run a startup with four of my friends for over a year, bringing Virtual Presenter Pro from concept to commercial release in under 14 months while we all remained full-time CS students. In any pre-pandemic job market finding a position would have been a relatively easy process, but that is not the case today.
Not one person I went to school with, who didn’t have a position secured pre-COVID, has gained employment. I’ve submitted roughly a hundred applications, optimized my resume, been given referrals by friends at several companies, and haven’t received so much as a phone screen.
Whereas in a normal year I would be competing with some of my classmates and a few unfortunate unemployed junior engineers with 1-2 years of experience and subpar skill sets, this year my competition appears to have expanded to include relatively experienced junior engineers with solid soft and technical skills and much broader networks. With the highest unemployment rate in recorded history, even those folks are struggling to find work.
A phrase I use with remarkable frequency is “you have to confront reality on reality’s terms”. Wishing that the job market were closer to normal won’t do me any good, so it’s time to do some confronting. If my competition is better qualified than I am, then my options are to either wait until the market for people at my skill level returns or to increase that skill level.
That means it’s time to develop and implement a plan to get hired. The way I see it, there are a series of areas I can focus on to maximize my chances:
Data Structure & Algorithm Practice
All the interview opportunities in the world won’t help me if I can’t solve technical problems in those interviews. It’s been more than a year since I took my last DS&A course, and with such a demanding course load coupled with building Anxious Software in my free time, I need to do some work here. Leetcode, Hackerrank, Cracking the Coding Interview, Elements of Programming Interviews, Programming Interviews Explained, and the Algorithm Design Manual are going to be my daily companions going forward. In the last month I’ve solved ~70 LC problems, brushed up on my SQL syntax on Hackerrank, and written out solutions to dozens of problems contained in the aforementioned books. I’ll just need to keep doing 2-3 problems per day and force myself to work through the problems I’m least comfortable with, basically in perpetuity. I’ve also made a set of flashcards from the Big O Cheat Sheet to make sure my time and space complexity fundamentals are solid.
Practice makes perfect. The stress inherent in interview situations is a factor I must be capable of overcoming. I’ll be setting up a schedule with my friends so I get 3-4 mock interviews every week. Furthermore, I’ll be attempting to find more experienced engineers to work with.
Being able to solve technical problems is certainly important, but being able to demonstrate that my understanding of technologies extends beyond what I learned at UW shows off several positive traits to potential employers: self-motivation, discipline, curiosity, drive, and persistence. That is to say nothing of the value-adding proposition I can offer by bringing a broader set of experiences and skills to their company. To that end, I’m working on Amazon Web Services Solutions Architect certification right now, and looking at others such as Certified Ethical Hacker, CompTIA’s Security+ and CySA+. The real barrier to entry on this is, as most everything else, money. Courses and exams are not cheap. Being a broke new grad, I’ll need to be strategic about which certifications I pursue to maximize return.
Tapping my Network
Asking for help sucks. There’s no two ways about it. After so many years of being on the supply side of help, crossing over to demand is deeply uncomfortable. I’m just going to have to get over it.
Learning New Technologies
UW taught me the fundamentals of computer science, security, and some back end technologies, but the breadth of things to learn in this industry is bordering upon limitless and I have exposure to very little of it. A three month primer on machine learning was certainly helpful as a foundation, but it isn’t enough to market myself as competent in that arena. As for cloud computing, I was never able to get into that class at all and as such have zero experience with it. I have an old Humble Bundle of ML/AI materials, and AWS training materials are easily found online. Though I do respond well to the structured environment of a university course, it’s certainly not required for me to learn.
Practice problems, certifications, and reading might help me understand what’s going on within a system, but practical application of that knowledge is very important. Additionally, projects make my resume stand out slightly more, and showing off the code I write in those projects can help demonstrate the type of work of which I’m capable.
It’s scary, uncomfortable, and frustrating to be in this spot, but as Churchill once said: “If you’re going through hell, keep going”. Makes sense to me.