“The tech industry desperately needs software engineers,” says Kevin Wu, co-founder and CEO of career accelerator Pathrise. “Companies may struggle to find software engineers to meet the rising demand.” Data curves seem to smile on software engineers. By 2028, software employment is projected to grow 21%. That’s quadruple the national average. Software engineering remains one of the most rewarding and well-rewarded roles in the tech industry–the future seems almost alarmingly bright.
According to Glassdoor, the average salary for software engineers is $92k. The average software engineer salary on AngelList is $91k, which includes startup jobs. While software engineers usually hold a bachelor’s degree or higher, 27% have no degree at all! Google Jobs, Indeed, and Linkedin all host thousands of software engineering job listings from top tech companies like Google, Facebook, Apple, and more. The lesser-known job board feature on Github and Stack Overflow can also be a great place to find software engineering positions. Smaller startups also hire on AngelList and VentureLoop. For aspiring software engineers seeking remote jobs, We Work Remotely hosts virtual work opportunities.
Want to hack the software engineering job search? Get a referral. Referred candidates are almost 15 times more likely to land a software engineering job. Nearly 80% of recruiters reported that referrals were their number one source of hires. One way job seekers get referrals is by asking alumni from their college or bootcamp. Alumni databases often list graduates’ employers, making research even easier. Networking with current employees via LinkedIn can sometimes work, but warm leads like alumni will be more likely to say yes.
Referral or no referral, without a strong resume, candidates won’t get an interview. The best resumes explain experiences in “story” format with quantified results rather than a simple list. For example, “Accomplished X by implementing Y which led to Z” sounds so much more driven than “Implemented Y”. Recruiters spend less than 30 seconds on each resume. Application tracking systems (ATS) spend milliseconds. Resumes that include keywords from the job listing stand a better chance at avoiding the slush pile. Finally, candidates should showcase 2-4 portfolio projects, prioritizing projects completed outside of classes.
Candidates should prepare for two types of interviews: behavioral and technical. To ace behavioral interviews, aspiring software engineers should research the company. Study their product, values, and history. Like the skill section of a resume, candidates who present themselves in line with specific phrases from a company’s values will stand out.
The first step to acing technical interviews is to master a single programming language. Companies care about software, not the language used for the code. Mastering a single language is infinitely more useful than being shaky on many. Successful candidates often choose a straightforward language with pre-built convenient functions, like Python or Java. Complex languages like C may make things more difficult than they need be. While candidates can learn whatever language they want, technical interview question topics will definitely require knowledge of the following: hash tables, linked lists, breadth-first search, depth-first search, quicksort, merge sort, binary search, 2D arrays, dynamic arrays, binary search trees, dynamic programming, and Big-O analysis.
Interviewers want to see how candidates think. Get comfortable debugging and explaining thoughts aloud, so interviews can follow along. Solutions with explanations get more points. Even wrong answers with thoughtful explanations get more points than awkward silence.
The job search doesn’t end with an offer letter. After a pat on the back and a sigh of relief, aspiring software engineers move on to the final phase: negotiation. They compare the proposed salary to salaries at similar companies and then negotiate based on what’s standard. For offer letters from startups or small companies, salaries start lower, so aspiring software engineers should negotiate salary unless the offer explicitly forbids it. If the offer came from a top tech company and already offers a competitive salary, asking for equity changes or signing bonuses will be the best bet.