Background:
I started as a back-end dev apprentice a year ago. I moved up to junior six months later. My primary job is to build REST and SOAP APIs. I report directly to my boss who is the head of all three dev teams. For a while, it was just my boss and myself writing the back-end code, until a few months ago when he hired two more back-end apprentices.
Issue 1: Feeling Isolated
This is an in-office position where I spend nearly the entire work week alone. It's not unusual for two weeks to go by without me seeing my boss. Before I became a programmer, I thought I would love that. It turns out, I'm really struggling with it. I find the lack of human interaction actually leaves me feeling isolated in a negative sense. It's gotten to the point where I'm questioning if programming was the correct career transition.
Issue 2: Lack of Guidance
I feel like there's a severe lack of guidance on our team. For instance, when I interviewed for the position, we discussed that code reviews were mandatory. In the past year, I had one or two in-person code reviews, and one or two via email. All the rest of my projects have been pushed to remote, without any code review. Granted, we have separate "development" and "production" branches, and many of those projects are not yet in production. So it's possible we will review the code eventually. But given how busy my boss' schedule is, I find it unlikely.
The company's codebase lacks organization. For example, most of our APIs have controllers with sometimes several thousand lines of code. Although my experience is minimal I've managed to self-teach myself a little bit about the repository design pattern and the service-layer approach. I recently convinced my boss that we should strive for better separation of concerns. He agreed, and we're now starting to move some of our database logic into a separate database access layer (DAL). Also, I've taken it upon myself to find YouTube videos for our back-end team to watch for group training. We'll be watching those videos next week and having a group discussion on how to better implement our APIs.
Why is this an issue? It isn't, per se. I feel as if I'm pushing the back-end team in the right direction. It's a good feeling. I want our codebase to be better than it is, and I want our team to be in the 21st century as far as coding practices are concerned.
I think the issue here is the small bit of stress I'm feeling toward taking on a role that isn't necessarily something I'm qualified for. I think at a bigger company, the design patterns and training videos would come from someone above me, whereas I'm a junior who has mostly self-taught everything I know. My boss isn't the traditional "senior" developer. He's a former server admin who over the years learned enough about programming and SQL to build out a back-end for the company. Now, we have hundreds of APIs and a team of over 10 devs that he's managing.
I've also become a mentor to one of the apprentices on our team. At lunch, he asks me questions about SQL, git, databases, HTTP requests, and so on. I'm glad that I can help him out. Again, it feels good to have a positive impact. But at the same time, I'm mostly teaching him things that I've taught myself using the web. What if what I've taught myself is incorrect?
Lastly, and relating back to the feeling "isolated," I organized a group code review for myself and the two other apprentices recently when my boss was out of town. A large part of why I organized this relates back to my struggle with being alone throughout the majority of my workweek. This isn't something that I thought would be such a struggle, but that entire week was spent by myself at my computer until I went so stir-crazy that I decided to organize a code review with the other two back-end devs. I think it had a positive impact. I looked at our git history and saw one of the devs had committed some of the changes we discussed.
Look for opportunities to connect with the broader tech community through meetups or online forums ( which you're doing here) but find more ways to connect Consider finding a mentor outside your company