One of the readers of Developer Microskills (my weekly newsletter of practical, actionable tips on becoming a better dev and dev advocate) wrote in with a really good topic for this week that I bet a lot of folks can relate to. Here's an abridged and anonymized version of the email:
I'm so glad you wrote in because I think this is a struggle a lot of folks have. Despite what you might see on Twitter, the vast majority of developers out there are working a day job where all of their code is proprietary and private. None of their code is up on GitHub and they haven't had the time, energy, or desire to blog, speak, or work on open source because they're too busy working a full time job and managing the rest of their life. There's nothing wrong with that. At the same time, it does help you stand out by having some sort of online presence outside of your day job.
So the first thing I want to say is: you're definitely not alone in this dilemma.
The second thing I want to say is: WOW, those are some real red flags! I cannot imagine telling an employee there is no path forward for them and to be content where they are. That blows my mind. They may as well have offered to help you prep your resumé. Yikes.
I can also absolutely understand why that would cause a lot of imposter syndrome in you. Right now, you're in a bubble that only consists of your own thoughts and feelings and what you're being told by your manager and co-workers. We need to pop that bubble so you can start getting some feedback from the community and other potential employers.
Here are the steps I would take if I were in your shoes.
Second, if you haven't already, I would update your resumé and make a document of any notable experiences you've had or projects you've worked on, using those interview questions as your guide. Don't stress about not being able to show code right now. Since this is a common scenario, most interviews will include a technical screen and a coding project to evaluate you.
Third – and this is the most important part but will also take the most time – get the community involved in your growth through some combination of writing, speaking, or open source work. I would pick whichever you feel most interested in or have the most time for. Writing to me is the best bang for the buck because you are the only person that affects your output (you don't have to rely on conferences selecting you or finding a good open source project).
Take your list of interview questions and start creating blog posts around them. Start with ones you know the answer to in areas that you want to demonstrate expertise. Maybe you've done so much ActiveJob work you can do it in your sleep. Make a post around the interview question, "What is ActiveJob?" Don't worry about making them super long or extensive yet. You can always add to them over time. Have some code examples and walk through solving problems step-by-step. Bonus points if you can cross-post on platforms like Hashnode or Dev.to to get some extra community involvement.
This strategy will do a bunch of things for you all at once:
- You'll start to build your online presence and authority.
- Blogs based on interview questions are amazing for SEO, because they are usually the exact phrase people Google (e.g. "difference between SQL and NoSQL").
- You can share these posts with the community, ask for feedback, and grow your skills. This gets you out of your bubble.
- You can also research the interview questions you're not familiar with by asking for help with something specific.
Notice how you can do all of this without ever signaling that you're looking for another job. You're trying to build your online presence and expertise to bolster your case that you're a senior engineer, and it just so happens that a great way to do that is by sharing knowledge on topics commonly asked in interviews.
You can also turn any of these articles into talks. With the deluge of virtual events, there are tons of meetups and conferences out there that are dying for speakers.
Fourth, I would start applying for jobs and trying to get interviews. As you're getting your online presence established, I would initially apply for some jobs that you may not necessarily actually take just so you can start testing the waters and seeing what the response is. Of course, don't waste a bunch of your time or others' for no reason, but sometimes even a phone screen or an initial tech screen can be really enlightening to help you gauge where you're at versus where the market expects you to be. As you get more blog posts, talks, and community involvement under your belt, the interviews will get easier and you'll have a larger body of work to point to that demonstrates your expertise.
I realize that this will all take a lot of time and energy. I also fully realize that this is hard and scary. Just do your best. The good news is that the process is finite; it has an end date, even if you don't know what it is yet. Ideally, your new job will also encourage you to spend a little time continuing whatever content or community work you've started building, even if it's not much, if that's something you want to do. So, this time of intense extra work should just be a stepping stone to a better quality of life and career path for you.
I hope that's helpful. Here are a handful of articles I've written that might help you in your journey:
- The Painfully Shy Developer's Guide to Networking for a Better Job (Without Being Creepy)
- Speaker Stuff No One Tells You About: Applying to Conferences
- Re-Purposing Day Job Work to Make Career Moves
- Advice for New Tech Speakers
- How to Get Started with Technical Writing
Keep me posted on how it goes. You can totally do this!