How I Doubled my Salary in Five Months and Got an Amazing Job

Six months ago, I was working as a junior JavaScript developer, feeling underpaid and craving more challenging work. Today, I‘m thrilled to be starting an amazing new job after receiving multiple compelling offers and nearly doubling my salary.

It took focus and dedication, but the payoff was well worth it. Here‘s a detailed look at the strategies I used to make it happen.

Audit Your Skills and Make a Plan

The first step in my journey was an honest and thorough skills audit. I listed out all the technologies and concepts I knew and assessed my comfort level with each. Then I looked at job postings for mid-level and senior JavaScript developer roles to see how I stacked up.

Here‘s a sample of what I found in terms of required and preferred skills:

Skill % of Job Postings
JavaScript/ES6 100%
React 85%
Node.js 80%
REST APIs 75%
MongoDB/NoSQL 60%
Testing (Jest, Mocha, etc.) 60%
AWS/Cloud Platforms 50%
TypeScript 40%
GraphQL 30%

Data based on analysis of 100 JavaScript developer job postings across major tech hubs

This research clarified the delta between my current skills and what I‘d need to land the roles I wanted. I was solid with JavaScript fundamentals and had some experience with React, but needed to go deeper on the back-end, databases, and testing.

I made a plan to focus my learning in these key areas:

  1. Advanced JavaScript concepts and design patterns
  2. Node.js and Express for back-end development
  3. MongoDB for database skills
  4. Testing methodologies and libraries
  5. Deploying full-stack apps and familiarity with AWS
  6. Staying up-to-date on emerging tools like GraphQL and TypeScript

Having a focused plan was critical – it prevented me from getting distracted and let me allocate my time efficiently. I set a ambitious but achievable goal to develop proficiency in these areas within 3 months.

Front-load the Learning

My learning strategy had three main prongs:

  1. Rigorous, targeted self-study
  2. Building projects to reinforce concepts
  3. Engaging with the development community

For self-study, I relied heavily on online resources. I invested in comprehensive video courses on Udemy for deep-dives into advanced JS, Node/Express, and MongoDB. I supplemented those with free resources like freeCodeCamp, MDN web docs, and countless Medium tutorials.

I made a schedule to keep myself accountable – 2 hours before work, 1 hour at lunch, and 2-3 hours in the evening, plus 5-6 more on weekends. It was intense but I reminded myself it was temporary and would pay dividends in my career.

The most impactful part of my learning was building real projects. Courses and tutorials are great for exposure, but there‘s no substitute for the deep understanding that comes from building something yourself.

My first major project was a MERN stack application that allowed users to search for and save their favorite movies. It covered full-stack development end-to-end, including:

  • Building REST APIs with Node/Express
  • JWT authentication
  • Integrating with MongoDB for data persistence
  • Creating a responsive front-end with React
  • Deploying to Heroku

Later, I added enhancement like:

  • Implementation of Redux for state management
  • Allowing users to rate movies and see aggregated ratings
  • Generating personalized recommendations based on a user‘s favorites
  • Writing a comprehensive test suite with Jest and Enzyme

Working through the inevitable roadblocks and bugs taught me so much more than any course ever could. I supplemented this with smaller projects to practice specific skills like promises, authentication, and deployment.

Finally, I made it a priority to engage with the developer community. I became active on Twitter, sharing my progress and interacting with experienced devs. I started blogging on Medium about concepts I was learning. And I attended local meetups to learn new topics and make connections.

All-in-all, I estimate I was spending 15-20 hours per week on deliberate learning and practice. It was a significant time investment, but I knew it would pay off.

Boost Your Visibility

As I was building my skills, I was also focused on making myself a more attractive candidate. A strong online presence and portfolio are essential for standing out in a crowded job market.

I started by upgrading my portfolio site. Rather than just listing projects, I included detailed write-ups about my process, challenges I faced, and what I learned. I highlighted the parts I was particularly proud of and included links to live demos and Github repos.

I also became much more active on Github, making sure all my projects were well-documented with thorough READMEs. I contributed to some open source projects, even if it was just fixing small bugs or improving documentation. Demonstrating I could collaborate with others and understand external codebases was valuable.

My increased blogging also played a major role. I wrote tutorials on topics I had recently mastered, explanations of tricky concepts, and opinion pieces on industry trends. Seeing my thought process and communication skills gave employers a fuller picture of me as a candidate.

Some of my posts gained significant traction, with one getting over 10K reads and being featured in major publications. This visibility led to multiple recruiters reaching out to me directly.

Start Applying

About 3 months into my upskilling journey, I felt ready to start seriously applying. I had a strong portfolio, several impressive projects, and a growing online presence.

I was very strategic in my job search. Rather than blindly applying to every JS job, I carefully evaluated each company and role. I looked for organizations whose mission and values resonated with me and positions that would let me use my newly acquired skills.

For each application, I heavily customized my resume and cover letter. I highlighted the projects and experiences most relevant to that specific role and outlined why I was a great fit for their particular needs.

I also leveraged my network heavily. I reached out to past colleagues, friends in the industry, and people I had met at meetups and conferences to let them know I was looking. Several of them referred me for openings at their companies or made introductions to hiring managers.

Over the course of about 6 weeks, I applied to 47 positions. Here‘s how that broke down:

Application Type Number Percentage
Online Application 28 60%
Referral/Networking 12 25%
Recruiter Outreach 7 15%

Of those, I got initial interviews with 12 companies – a 25% hit rate. The breakdown by application type was revealing:

Application Type Number of Interviews Interview Rate
Online Application 4 14%
Referral/Networking 6 50%
Recruiter Outreach 2 29%

Referrals and networking were by far the most effective way to get my foot in the door. The time I had invested in building connections and visibility was paying off.

Master the Interview

With interviews lined up, it was time to prepare. For each company, I did deep research – I read every page of their website, watched videos of their CEO speaking, looked up employees on LinkedIn, and tried their product if I could.

I wanted to understand their business inside and out so I could speak intelligently about why I wanted to work there and how I could help them succeed. I prepared thoughtful questions that demonstrated my research and genuine interest.

On the technical side, I made a list of all the concepts and technologies on my resume and studied them extensively. I practiced explaining my projects, with particular emphasis on the challenges I had overcome and the impact of my work.

I also did a ton of algorithm and data structure practice, working through common interview questions on LeetCode and HackerRank. I made sure I could clearly articulate my thought process while solving problems.

Mock interviews were also invaluable. I did several with friends and mentors, getting feedback on my technical communication and body language. I recorded myself answering behavioral questions to refine my answers.

All this preparation gave me a huge confidence boost heading into the actual interviews. I knew I had done everything I could to showcase my skills and value.

Negotiate with Confidence

After a grueling few weeks of interviews, I had three offers on the table. All of them represented significant pay increases from my current role, but I knew I could still negotiate.

I had done market research on salaries for mid-level JavaScript developers in my area, so I had a good sense of my worth. I also evaluated the full compensation package for each offer, considering factors like equity, bonuses, and benefits.

When it came time to negotiate, I was direct but respectful. I expressed my enthusiasm for the company and role, but noted that I had other competitive offers. I highlighted my unique skills and reiterated the value I could bring to their team.

One company came back with a 10% salary increase and a signing bonus. Another bumped up the equity package. With the third, I was able to negotiate extra vacation days and a work-from-home stipend.

In the end, I accepted the offer that represented a 98% pay increase and had the most exciting work and growth opportunities. I was elated – my hard work had truly paid off.

Lessons Learned

My journey from underpaid junior dev to highly compensated software engineer wasn‘t easy, but it was incredibly rewarding. Here are my biggest takeaways for anyone looking to make a similar leap:

  1. Be strategic in your skill development. Identify the skills most valuable for the roles you want and make a targeted plan to acquire them. Don‘t try to learn everything – focus is key.

  2. Build as much as you can. Courses and tutorials are great for exposure, but the real learning comes from building real projects. Tackle progressively more complex applications and leverage them in your portfolio.

  3. Put yourself out there. Share your work, write about your learning, and engage with the community. Visibility and networking are powerful career accelerants.

  4. Tailor every application. Generic applications get generic results. The more you can customize your resume and cover letter to the specific role and company, the better your chances.

  5. Prepare relentlessly for interviews. Technical interviews are a skill of their own. Practice extensively, do mock interviews, and research the company inside and out.

  6. Know your worth and advocate for it. Do your market research and don‘t be afraid to negotiate. Companies expect it and you‘re leaving money on the table if you don‘t.

It was a challenging five months, but the payoff has been immense – not just in my compensation, but in my skills, confidence, and career trajectory. If you‘re feeling stuck or undervalued in your current role, I encourage you to invest in yourself and make a plan to level up.

With focus, dedication, and a willingness to put yourself out there, you can achieve incredible growth in your career and compensation. The opportunity is there – it‘s up to you to seize it.

Similar Posts