🌲 Pauls.Garden

🚧 This site is a work in progress!I still need to add a search bar so use Ctrl/⌘ F for now

Junior devs should work on professionalism

2024-11-23career

dark side light side

TLDR: I think it's possible to limit how much your software development job stresses you out is possible by learning skills that fall under "being professional".

Disclaimers:

Hashing out my thoughts on this topic has been incredibly helpful for me. I'd love to make this into a proper blog post but I'd like to get a bit more experience before I do that.

Oversharing personal issues at work is a bad idea

In my first few years as a software developer I was occassionally guilty of getting stressed out by work, and then treating my 1-to-1s with my manager as a sort of informal therapy session. And I wasn't unqiue either, this is a very common theme. On /r/cscareerquestions. It's a very easy pattern to fall into when you don't have the skills to deal with work stress, but it's a bad idea.

Not bringing too much of your emotions to work is an important boundary to maintain. A lot of the time it's downstream of not letting your mental health get effected by work in the first place, but if your job is stressing you out or making you anxious, bringing those unprocessed feelings back into work creates a viscious cycle.

There is productive ways to complain about work stress to your manager, but making it too personal and every week is unproductive.

You and your manager have different incentives and goals in terms of your employments, which means oversharing can undermine your career growth. If you're constantly venting about deadlines then your manager can't trust you to handle the pressure. You won't get more responsibility because you seem like you won't be able to cope. You'll never get a reputation as someone who can be relied on when the going gets tough.

Unless your manager is in a position to fix the issue (sometimes stressful situations are just part of the job and can't be fixed immediately) then venting just strains your professional relationship.

The alternative

A better approach to constant complaining is to develop various skills that make up the quality that we call professionalism. This is how you maintain good work/life boundaries and address the issues causing work to be stressful in the first place.

Table stakes for managing work stress/anxiety/boundaries

Before you can really address stress and anxiety using professionalism you need to tick these 4 boxes:

1. Develop a strong worth ethic This is the most important step - if you don't trust yourself to work hard then you will always, deep down, blame yourself when things go wrong. If you consistently work hard then you won't let yourself get pushed around.

2. Get some wins under your belt Fix some bugs, help ship a small feature, use your understand of a system to save the day. The feeling of being valuable at work gives you the confidence to enforce boundaries.

3. Be serious about moving on if job's not right Some environments are just bad for you. If you won't actually look for a new job when things get out of control then you have no leverage.

4. If you are struggling consider talking to a therapist They can be tremendously helpful.

Vital professionalism skills to manage stress

Developing these have made busy weeks and months at work much easier for me:

1. Communicate early and often to stakeholders For bigger riskier tickets give your manager a few brief updates as you go along. If you think you might get blocked by someone else (e.g. deployment timing issue), let them know ahead of time so you can coordinate. If you are trying to build/debug something and you're not getting anywhere, reach out to someone as soon as you run out of ideas and start flailing uselessly. Err on the side of oversharing, even if that means posting updates to entire Slack channels.

2. Have a network of people at work who can help you

3. Giving estimates

4. Handling deadline pressure Deadlines are often set arbitrarily by people with little technical context, like PMs or management. The work will take as long as it takes, and it’s not your responsibility to fulfill unrealistic promises others made on your behalf. Trust in your good work ethic—you already try your best every day. Deadlines can and often should be adjusted as work progresses. They’re not set in stone. Occasionally, pushing to meet a deadline can be valuable, such as ensuring increased capacity before a high-demand event like Black Friday. Know when it’s worth making the extra effort.

5. Be mindful about work life boundaries

6. Learn to say no If you are very busy and someone who isn't your manager tries to put more work on your just tell them to ask your manager, and then ask your manager what to prioritise.

7. Cover your technical weakpoints If a technical issue that you don't fully understand keeps happening you'll get more stressed and frustrated each time you fail to fix the issue.

A situation of conflicting git histories on protected branches arose at work. My lack of really deep understanding around how GitHub implements "rebase and merge" made this more stressful for me than it needed to be. I have since learned as much as possible about GitHub merge strategies and workflows so resolving this issue is easier if it arrises again.

Common issues like this - git, CORS, debugging, async code, auth

8. Take your annual leave wisely Honestly try to take some annual leave as soon as possible if work gets stressful.

Always leave a day or two unbooked in the last few months of the year, and then take them around Christmas/let them rollover. Just to keep them for an emergency.

Using bank holidays and weekends to stretch out the number of days off work you have a time absolutely makes your time off more relaxing.

9. Master the art of raising concerns Instead of explaining how impractical and stressful a deadline is to your boss in an emotional way, raise your concerns. The magic phrase is "I have concerns about (things you have concerns about)". For example. "I have concerns about meeting the deadline because we haven't accounted for the authentication integration with Google.".

10. Only work on the most important task(s) each day

Final thoughts

If you don't have the skills to navigate the stressful parts of software development it can be crushing. Encourage younger coworkers and juniors to value their mental health first and teach them some of these professionalism skills.