I bet your all have had a teammate in the past you could not stand. Each with his/her own reasons, maybe you didn’t like their professional capabilities, the way their breath smelled in the morning or the inappropriate jokes they made during serious meetings. On the other hand I bet you’ve had people in your teams who you’ve felt like they’re such a positive addition to the team, that you can’t remember being without them. I’ll try to list some things here that I think can make someone a better teammate.
Being a good listener is the first thing I’d think of when I think of a good teammate. No one likes stubborn people who are always so sure of their ways. You might be the most experienced developer by a lot on the team. It does not mean you know everything. You can’t know everything.
In some scenarios you are obligated to listen to someone else’ opinion, whether it’s your team lead, upper management or the product department, but those are not the times your listening skills are being judged. You are judged in front of your peers, employees, or anyone else who’s in the same position as you or beneath you.
This definition applies both for senior, seasoned and experienced engineers you work with, or juniors in the beginning of your career. Being a junior, it sure feels nice when a senior listens to what you have to say, and even more when they accept your opinion.
I know it’s fun to laugh at the newby who suggests a complete refactor on the first day at the job. He obviously does not know the struggles you’ve been through trying to get the code up and running. He did not wake up at night while being on-call, and he never nearly broke a chair after an elusive bug you couldn’t solve.
All those experiences you’ve had ultimately led you to create the product you have today. That is nothing to ridicule, belittle or insult. However, somethings are easier to see with a fresh pair of eyes, things you’ve overlooked, got used to or simply never prioritized. New people, new insights, so even if they speak balderdash, it should be worth hearing, at the very least.
No one can be good at everything at once, certainly not when they are inexperienced. But you should always aspire to be the best you can. If you don’t, your teammates might feel like you’re dragging them down, slowing the team or generally being of little help.
If you feel like you’re in that position (not to be confused with impostor syndrome, which is a separate issue altogether), you have plenty of courses of action. The best advice I can give, by far, would be to simply ask for help. Find someone you trust, and think they represent a good role model for you, and ask them how they got to this position. What have they done along the way to be what they are, and what can you do as well.
There are plenty of things you can do, regardless of what your mentor will advise you. You can educate yourself (either via reading articles, or taking courses in sites like Udemy or coursera), practice at home (personal projects are a great place to start, contributing to open source projects is another)
If you feel like you’re on the opposite side, being the senior engineer and have an inexperienced engineer drag you down, it should be your goal to lift them up. They might not even be aware that they are not living up to their full potential, and it is your job to show them what they can achieve. Offer pair programming sessions, advices or technological resources to help your teammate improve over time. Just don’t do it in a condescending way, as you don’t want to intimidate or offend anyone. Plus, no one likes a show off.
It’s OK if you’re not the sharpest tool in the shed. There will usually be that one person who’s forever in the company, knows every bit of code in the system and can identify problems before you even get a chance to look at the logs. It’s OK. Most companies will guide you and mentor you, so you can always be better than yesterday. I’d even go as far to say that if you are in a position where you don’t feel progress, get up and leave. We’re blessed to work in a very desirable field, and job opening are quite easy to find.
My main point is that you shouldn’t be scared or worried about your status. Becoming a senior engineer takes time and practice, so don’t rush things and just focus on your personal growth.
Being in the middle is actually quite a good place to be. You can learn from those you feel are more experienced, and you can teach people who are new in the company and new to coding in general. I firmly believe that teaching is the best way to learn something - it compels to have a really strong understanding of a subject so you don’t confuse or misinform others.
You first day often seems the most important one, a day that will mark the rest of your time in the company. On this day people will see you for the first time, talk to you and judge you. This day can be very nerve wracking. You don’t want to misspeak, so people won’t think you are a fool, or that you are not professional. You also don’t want to spill coffee on your shirt and look like the office dork.
I say - that’s wrong. If, on average, an engineer stays in his position for about 3 years (give or take), that means that you will have about 365*3-1=1094 days to make amends for the first impression. Don’t fret, it’s OK to make mistakes, those mishaps will become something to joke about with your peers later on, when they get to know the real you.
Of course, and I hope this goes without saying, a bad second impression (and third, fourth and so on) can completely ruin a good first impression, so watch out for that too. As I’ve said, no one likes a co-worker with a stinky breath, or one that makes rude comments.
Those were my thoughts on what would make a good teammate. I think a good teammate must have good listening skills and willingness, and you must know that everyone can and will teach you something. A good teammate also doesn’t have to be the best ninja out there, and doesn’t have to make the best first impression, but you will have to make up for a lousy one.
Thank you for reading, I hope you liked it!