I've been a junior developer at a large Bay Area company for slightly more than 2 years. I've implemented basic features and I've fixed lots of bugs. I've read most of the standard "required reading" textbooks such as Code Complete, Pragmatic Programmer, Clean Code, Refactoring, etc. I'm trying to learn more about the domain I work in (security).<p>But that's about it. I don't feel like I've become a significantly better developer between years 1 to 2. Year 0-1 was filled with a tremendous amount of learning, 1-2 seemed like a plateau with minimal growth. I don't see a bright future for myself at this company because I'm polishing my resume and didn't add many new skills. My team essentially maintains a legacy system. Bugs are never-ending, but I don't want to do this for the rest of my career.<p>I'm actively looking for another job, but I seem to be "too junior" for mid-level positions, but too experienced for "new grad/junior" positions. I don't know what to do next.
I've been a developer for 4.5 years and have found myself in a similar position a few times. Here's the approach that has worked for me:<p>- Pick a few types of positions to pursue based on your interests and the job opportunities that appeal to you (but not necessarily based on your current skillset / experience)<p>- Based on those positions, invest time outside of work to learn the new tech stacks and skills needed by creating a nontrivial project you're interested in<p>- Through completing the project, you'll learn the skills needed for your chosen positions and will be able to use them on your resumé and as talking points in your interviews<p>The first two times I employed this approach, I was able to apply to and land better positions at the company I was already with. The third and most recent time, I decided to switch to a different industry in which I'm more interested, and I landed a position with an awesome startup I found through AngelList.