How to Get a New Job When All Your Work is Private

First Published: August 13, 2021

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 a Ruby and JavaScript web applications developer who has been working in this industry for a bit over 8 years and with my current company for a little more than 5 years. I’ve been working hard, teaching myself, proving myself over and over, but despite my hard work, I feel like my growth has stalled. Climbing the ladder here is really hard. I asked my manager what would it take to become a senior engineer and the response was that no amount of hard work would make it happen, that they were not expecting people to try to level-up to become senior and that they just wanted me to be content where I was. So, I’m beginning to think that the only way to go is move to a different company. This is incredibly scary, to be honest. What if nobody hires me? What if the reality is that I don’t get assigned to important projects because I don’t have what it takes? Is there something wrong about me or my skills that they see but I don’t? How can I figure out what I’m lacking and what to do about it? To make matters worse, I have realized that if I was to apply for a job right now I have nothing to show a potential employer in terms of samples of my work or anything similar. I want to start building some sort of online presence for myself and a bit lost where to start.

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.

First, I would start researching interview questions for lead/senior engineering roles. Aside from the potential whiteboard/computer science questions (that may or may not come up, it depends on the company), most senior interviews ought to cover topics around making architecture and technology decisions, scaling systems, collaborating with other stakeholders, and mentoring and training junior developers. They would also cover deep topics in Ruby and JavaScript. So, step 1: start gathering up potential questions and thinking through your answers.

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:

Keep me posted on how it goes. You can totally do this!

Project list gathering dust? 👀

Drop me a line below so I can send you the Tiny Experiments framework and worksheet. It's a simple process to help you finish what you start. You'll also join over 2100 other devs and dev advocates on the Developer Microskills newsletter. In each issue of Developer Microskills, I share a practical, actionable way to grow in your career or be more effective in your work. No motivational speeches, no hand-waving, and no spam, but also no infuriating sense of self-importance that plagues so much career and productivity advice out there.

Sam Julien © 2015 - Present