Hey guys, I thought I’d post a preview to a blog post I’m writing. It’s still WIP, but I had campers in mind while I was writing it. Let me know what you think!
So I have nearly ~4 years of experience in the tech industry, and I feel like I have the experience to share some insights about finding a developer job. There are a lot of budding developers here, so I’m happy to share some of the lessons I’ve learned.
A few weeks ago I received two offers. Both opportunities provided great compensation, had wonderful teams, and would really push my career. The problem? My job search took 3 months, 100-150 applications, and dozens of interviews to find a job … all without a job.
However, I’ve learned a ton and I’m a better developer (and candidate) for it. So I thought I’d write about it.
First off, some industry-specific basic knowledge
- Companies take on a risk with any new hire. When someone is hired, they must be trained. The less experience the person has, the more time they will need to be leveled up before they can be effective. So companies take a risk hiring a junior developer because their return on investment may be smaller than getting a senior developer who might be able to be effective immediately. However, companies know that the right person can be an investment to can grow a junior into an amazing developer.
- Many companies are getting +50-100 applications/week!
- Many companies don’t have the resources to mentor junior developers.
- You need to prove your worth because of high demand for these roles.
- The role you apply for can determine your success.
1. Build a network (of friends)
This is my first point because it’s so important. I didn’t have to look for a developer job for 3 years because I had a network to refer me. I even completely failed my first technical interview but was passed through it because my referral was so strong.
Finding your first developer job (and future jobs) will be phenomenally easier if you have a network.
Being known in a professional sense immediately starts to validate you as a worthy investment as a new hire.
- Get involved with Meetups.
- Get involved with online communities where developers hang out (like freeCodeCamp ).
- Start reaching out to developers at companies you admire.
2. Be a great candidate
Understand what you need to be a successful candidate and how to prepare for interviews. This is an entire blog post (or series) itself, but here’s a high-level of basic skill requirements and job preparation resources.
Junior frontend developers might need this working knowledge:
- A clear willingness and excitement to learn and solve challenges
- CSS, especially to build layouts
- Build simple DOM interactions.
- Solve basic programming problems.
- A library like ReactJS, jQuery, Lodash/Underscore.
- Experience building small projects.
At higher levels, deeper knowledge and specialization becomes more necessary. Intermediate developers might need this working knowledge:
- All of the above, with deeper experience and an ability to tie it all together.
- Version Control
- Prototypal inheritance, IIFEs,
this, promises, ES6, etc.
- NPM and understanding with using modules.
- Prototypal inheritance, IIFEs,
- Solve intermediate algorithms and technical problems.
- Knowledge of good practices and design patterns.
- Read and learn from documentation.
- Debugging using developer tools.
- Communicate about technical problems and implementations.
I’m not quite a senior-level so I would love help understanding what a senior-level developer would need to know. However, my guess would be that a senior developer would need to know:
- All of the above, with deep expertise and ability to intelligently tie them together with good code practices.
- Excellent technical communication skills.
- Willingness and excitement to mentor younger developers.
- Arthur Camara’s “An opinionated guide to writing developer resumes in 2017”
- Frontend Developer Interview Questions (Answers)
- Technical Interview Handbook: Algorithmic and behavioral questions and tips
- Technical Interview Resource Guide
3. Apply to the right companies (& optimize for learning)
A huge challenge for new developers is to establish a feedback loop to get exposed to new concepts, focus on what’s important, and know where they can improve. This feedback loop is critical for learning anything quickly. However, it’s really difficult to have this feedback loop without some sort of mentorship. Therefore, I think you should optimize your learning by applying to companies where you can receive mentorship and where there is an opportunity to further your career.
If I were to start again, I would reconsider joining a small startup as my first developer job. Even though the role had better compensation that the average junior developer, it hindered my long-term growth because it didn’t provide the mentorship when I needed it most.
Your entire career and education build upon themselves, so choosing the right company can be the key differentiator in learning, experience, networking, compensation, and growth opportunity. So my advice to new developers is to prioritize companies that can provide mentorship and career growth.
As mentioned above, many small companies can’t afford to mentor an inexperienced, albeit talented developer so you might want to look at mid to large company (50-1000 employees).
Some last tips…
- If you can, start looking for a job while you already have one. It’s validation of your worth to companies, and it provides much more leverage in negotiating your salary.
- When you land the job, keep an eye on the industry and continue to experiment and learn outside of work. Continue to be a great candidate while you’re working for a company.
- Ask both the important and dumb questions. I often preface with “this is probably a dumb question, but …” as it’s a great way to get over the fear of asking.
- Work hard, strive to be a great person, and be easy to work with.
- Have the mindset of a high-contributor and add more value than you take.
- The learning never ends. Constantly be refining your skills and learn where you weakest skills are.
And remember that you only need one “YES” to get a fantastic job.