You got that first job as an early career software engineer after a long job hunt. You are ready to learn a lot and advance in your career.
Most times you’re fine, but sometimes you worry that you don’t contribute much value to your team. That you ask stupid questions all the time. Or that you don’t have the domain-specific knowledge required to estimate tickets accurately or to handle bugs quickly.
Do you think that you slow your team down?
Even though you’ve had a career in something else and you were very proficient at it, you are not feeling like a team player at your new job.
Here’s another way to look at this: if you’re always learning and helping your team, you are contributing positively.
The truth is I’ve met lots of “senior” devs who didn’t contribute positively to the team. Their effect was quite negative, to be honest. They are still in the industry getting a senior salary and not having a single doubt about their skills.
What you lack is mainly self-confidence. Well, here’s some good news: self-confidence is also a skill and as such, can be learned.
By the end of this post, you’ll learn four tips for developing more confidence in your skills, feel the impact of your work, and be respected by your teammates.
1. Test the assumptions your team has
It’s not only because you have fresh eyes on the code. It’s also because you’ll be stressing out the current implementation. Reading things for the first time will surface a lot of unclear business domain logic.
Get pen and paper and take notes of your detective work. Go through the app and make a note of what you are not sure about.
What is new to you? What is surprising? What seems odd?
How are the tests written? Do they even have a test suite? Why not?
Ask questions. First, to yourself. Make sure to go through them in your head and explain the problem to yourself. Often, this will answer your questions and improve your problem-solving skills.
If that doesn’t work, ask a teammate. It’s always good to explain what you’ve tried, what you are trying to achieve, and where you are stuck.
If you’re afraid to ask, know that people who ask good questions are better teammates than people who only give
answers their criticism.
Then, propose changes. If you feel that the team would be open to tiny changes without a discussion, go ahead. Otherwise, say what your proposed alternative is and implement them in the following days.
2. Improve documentation and communication processes
You might have heard that improving documentation and processes are “soft skills”. I have only heard this from people that don’t care about communication or teamwork. I wouldn’t trust their advice.
A few ideas are:
- Create some PR templates for your team
- GitHub actions to automate some repetitive tasks, like running the test suite on CI.
- Dashboard that automates something your team is doing manually because no one has time to do them
- Improve the onboarding experience
What can you apply from your past experiences in your new job? Do you see an opportunity to take advantage of your experience? 💭
There are tons of ways you can use your coding skills to help your team 🌠.
3. Automate a tedious/repetitive routine
If you’re working in a team, you’re probably interacting with QA’s, Product Managers, etc. Do you see any opportunities for helping them?
Maybe a script that helps them review things more accurately, or an automated test so they don’t have to remember testing everything manually?
A business is always looking for ways to cut down expenses or time :)
Oh, don’t forget to log all your initiatives and improvements for next time the self-doubt kicks in and you want to show them you’re not an impostor. Plus, it will be useful when you’re negotiating your next promotion 😉.
Note that you’re not expected to fix or automate everything. The way to look at this is to ask yourself: is there a framework for making better decisions that you have used in the past?
4. Continue investing in self-education
Most companies are willing to support you paying for Education. I mean, why wouldn’t they?
Do you have an idea of how to improve a module or a class but you’re afraid to do so because the code is obscure and you are afraid to break things? Or do you have an idea of how to do something better but you don’t know how to get started by yourself?
Find the person in the team who likes to see you growing and spend more time with them. If there isn’t such a person in your company, find them somewhere else.
You’ll learn a lot on the job but depending on the company or team, you might learn only bad practices. Don’t be stuck for years doing what you are doing. Instead, invest in advancing your skills.
Always have an escape plan. There’s no better plan than investing in yourself.
Alternatively, you can do self-paced training at work every day. Block a 30min event on your calendar to be your first task in the day. You can use this time to improve your coding, testing, or debugging skills.
I hope that by now, you’ve realized that your worthiness is not directly related to how much code you write. And you know it’s not always about the code. And that technical skills can be learned because you just did that.
If they hired you, it’s because they want you to be part of the team. You may be the one setting too high expectations for yourself.
If you found these tips helpful, share this post with your friends!
You got this. I’m rooting for you.
Did you like this article? Then you're gonna love these other ones: