Working remote has traditionally been seen as a nice goal to attain at some point during a developer career. Once you are confident and trusted by your company then hopefully they allow you to work from home, or better yet, you join a fully remote team and live that true digital lifestyle.
To do that as a junior? For your first role? Impossible .... until COVID poured lighter fluid on the digital transformation that businesses have been laggardly working through over the past 25 years. Now everyone is remote, including junior developers, a role that actually really benefits from in person work.
So, how do you succeed in this new world being a remote junior developer? If you think back to my post Expectations on Junior Developers are not what you think you will understand that you're not expected to be a genius cranking out amazing code from the get go. In fact the expectation is often that your coding ability will be pretty low. It will be expected you can code simple solutions to simple isolated problems but after that your main priorities are to:
- That you will listen and learn
- That you will help where you can
- You are keen no matter the technology
Let's form a strategy to make sure you crush these goals and also make the most of your time as a junior.
Communication as a remote junior developer
Your team would rather hear from you on a regular basis than wonder what you're doing and have to come asking. We are taught from a young age though to not interrupt, you need to forget this. In remote work you will always feel like you are interrupting someone, because you likely are! You don't know what they are doing when you message or call them and you'll need to get comfortable with this otherwise you'll sit and stew on a problem for hours longer than you should.
So people know what you're up to you give very short status updates in the team group channel or if you have found something interesting in the last half a day then pop it as well. If you get your first ticket done then mention it in that same channel, also ask for code review at the same time. Basically tell people what you're up to.
This might seem overly communicative but it makes up for the chit chat in the kitchen or overheard conversations when in the office. When you share an office with people it's impossible to not get an idea of what everyone is doing and how they are getting on, that is all stripped away in remote work so replicating that with little messages here and there brings the context back in.
A good junior developer is inquisitive
You're going to be left to your own devices much more than in person working, so go exploring. You should have access to the company wiki (if not, ask for it) from day one. Spending time at the end of each day looking through it and asking a couple of questions will broaden your knowledge very quickly and get you used to reading documentation.
Go spelunking through the database. Run some select queries or browse through some documents by yourself. Data drives all applications and knowing what your company's data looks like, where it lives and how's its structured will enable you to form great questions when the time comes.
If you see something interesting then ask about it in the group chat. Even if you feel stupid asking the question it doesn't matter, it's all about learning and gathering information. Get into the mindset that you would rather look stupid than actually be stupid.
In fact say this to your team, tell them you may ask a lot of questions but it's because you want to learn and be as helpful as possible as soon as possible. So long as you are asking good questions they wont' mind.
Being a junior developer requires openness
Be open about your skill level, what you find challenging, what you find straight forward and what you have worked with before. Pretending you know something when you don't is a quick way to loose the trust of your team and start to feel isolated. In daily stand up talk about what you have accomplished but also what is holding you back, where you struggled and ask for suggestions on where to look to improve.
It is much easier in person for people to pick up the body language and vocal queues that you might not fully understand something and so you can be saved the embarrassment of outright saying you're confused. So you need to be proactive and clear in what you get and don't get.
Journalling your junior developer experience
I'm not a big one for keeping a daily journal about my feelings, however I am a big proponent of keeping a daily work journal about what I did, what problems I had, how I solved them and any interesting things I learned. It doesn't need to be anything fancy, mine is just a new notion page for each day in "YYYY-MM-DD DayName" format and a list of bullet points, screenshots, links and code snippets that I can refer back to.
This is to solidify your learning and give you something to go back to in the future when you remember something you once looked at but aren't quite sure. I also keep a note of the Jira tickets I work on each day to help when searching.
Dealing with barriers as a junior developer
Working remotely adds a barrier that none of us can get round, even sitting on an open Skype call when working all day (which I personally hate) can't make up for being in the same office as the rest of your team. Once you are settled in your career this is just another one of those minor work inconveniences that you navigate and handle, but as a junior this barrier can exacerbate all the fear and anxieties you have.
So be pro-active about reducing the impact of that barrier. Be a bit more interactive on Slack than you might otherwise like, be clear and open about what you are doing, ask questions that come off the back of your own research on the code base and find out what other developers are working on.