Steps to landing a dev job
If you’re an early career software developer looking for a new role, you might find yourself in a highly competitive job market. It can be challenging to stand out in a sea of applicants, but there are a few things you can do to improve your chances of landing your dream job. This is not an exhaustive list, and I’ll link resources at the end of this post.
Why should you listen to me?
- I’ve been a software developer for 11+ years, & the first ~3 were internships while I was in school
- I am a Staff level individual contributor & I’ve mentored and continue to mentor early career developers
- I’ve been on both sides of the interview table
Firstly, don’t underestimate the value of internships and intermediate experiences along the way. It’s out of the ordinary (but not impossible) to land at your dream company right away, so don’t turn your nose up at other opportunities, especially when you need to build up real world experience and demonstrate real world impact. If you’re still a student or recent graduate, look for opportunities to gain practical experience by working as an intern. Companies might hire interns on a temporary basis to fill in for full-time roles that they have posted, and if there isn’t an internship role explicitly posted I don’t think there’s harm in asking about this. This is a great way to get your foot in the door and build your professional network.
Next, have a strong GitHub or public coding profile. This means maintaining [relatively] well-organized project(s) with clear commit messages and best practices; at least well enough so that you can share them or draw from them quickly when presenting or telling a story about projects you’ve worked on. Consider writing useful tests that prove the behavior you’re trying to create. This will demonstrate your understanding of the problem you’re solving, ability to break it down into steps, and commitment to (at least attempting to) writing quality code. Get involved in open source by being positive, supporting others, and contributing useful code or documentation (another underrated avenue for growth) to projects that you use.
Finally, make sure you have a solid understanding of computer science fundamentals. In good interviews you’ll be asked mid to high difficulty level questions; while there might be pressure to finish, they’re really testing your ability to communicate: to model/picture a problem, think about it critically, break it down into steps, and then [lastly, perhaps least importantly] turn that into a coded solution. To practice your coding skills, try [harder] exercises on adventofcode or use a platform like CodeSignal, with its wide range of tutorials on data structures and algorithms. There is no substitute for practice, and you cannot rush time spent working on the craft.
This post is adapted from advice I gave to someone out of my network who politely DM’d me on LinkedIn in 2020 and asked some good specific questions; they leveraged this advice and (I’m sure) the wisdom of others to begin a successful career. Let me know what you think in the comments below; this isn’t a complete guide, as mentioned, but it’s 3 really solid pillars to build on / start with.