Learnings from my First Year as a Software Engineer
Tags: career
Published: 2021-04-26 23:31:59

This was originally a text message for a friend where I shared my experience in my first year as a software engineer. Since that text message grew too long, I turned it into a blog post. If you’re about to enter the tech industry, I hope these points are insightful! Although there are a couple tech-specific points, most of the contents in this post are geared towards soft-skills and developing your attitude, which I think are the most important to hone and are useful in any industry.

### Point #1: Company size makes a difference

I have worked at two companies - a large company and a startup that got acquired by a large company.

In a large corp, there's definitely more structure. Onboarding is so much more organized - you get a mentor to help ramp you up, a list of things to install and learn, etc. I had the privilege of a proper onboarding process on my first job out of school.

In a smaller company, you'll need to have initiative to ramp up properly. There's nobody to spoonfeed you, so you have to be super organized and reach out when you need help. The onboarding experience wasn't organized when I joined the smaller company, but I told my manager on Day 1 that I was overwhelmed and felt like I needed to catch up (new programming language, new processes, etc) so he made an effort to help me ramp up.

In a smaller company, things are usually more fast-paced and there are more learning opportunities. Since working at the smaller company, I’ve worked all across the stack (backend and frontend), and I’m really happy!

### Point #2: Teamwork skills

This is probably the most important skill you can learn in your first year.As a software engineer, you want to be easy to work with. (Skill comes second, attitude comes first IMO). Everyone in the team has their own strengths (you do too; no matter how new you are - you were hired for a reason!), so try to learn from your teammates.

Be dependable, help your teammates when you can, and ask for help when you need it. 

When you're mentoring an intern/new person, have empathy and help them out.

Give kudos to your colleagues when they are doing great (i.e. getting promotions, completed a project).

Also, try to get to know your colleagues over lunch, coffee, or during happy hours. Having good relationships with colleagues will make your job super enjoyable.

### Point #3: Relationship with your manager

This is very important for your career! 

A good manager will want you to thrive and be happy, even letting you move teams if that's what makes you happy. 

If know your career goal or you have an area that interests you (e.g. if let's say you want to work on more server side projects, or you're interested in a different area such as frontend dev), you should tell your manager so they can help you get to where you want to be. 

If there are some areas in which you are struggling, let your manager know! Whether you’re struggling with learning a specific technical topic, not sure on how to navigate your career, or struggling with burnout/mental health issues, your manager will be there to help you.

You'll have 1:1s with your manager regularly to talk about your progress and how happy you are with your career.

### Point #4: Tech career progression

There are two tracks: technical and management. As you can guess, the technical track is coding intensive and you can become an expert in the technical side (coding, software architecture, etc). Management is  more people-focused: helping the team succeed, taking care of your teammates. 

However, a person can be both a manager and an expert in technical matters.

### Point #5: Learn how to write clean code

You can learn this from checking in code (pull request) and getting feedback from the senior engineers. Or you could read technical blogs / watch technical youtube videos in your spare time.

### Point #6: Be confident and humble

I suffered really bad impostor syndrome throughout college and early in my career, but I'm fortunate to have such a supportive team in my current job, so I no longer feel like an impostor anymore. 

I actually talked to my manager about my personal struggle where I tend to compare myself with others (you can read [this](https://wordsofwonder.substack.com/p/on-being-competitive) or [this](https://wordsofwonder.substack.com/p/out-of-route-21-02-09) blog post where I shared more about my journey of social comparison), and my manager gave me a useful piece of advice that I carry to this day:

> There's always someone better than you in anything you do, so define your self worth not on your output, but on the amount of discipline and effort you put in every day.

You'll need to be able to handle feedback from other engineers (especially as a new employee), and not get defensive about your code. If you do have questions or want to debate about something technical-related, feel free to do it though! A healthy team culture should encourage debate!

### Point #7: Be honest and kind

If you mess up or make a mistake, tell your teammates about it! Don't hide or cover up your mistakes or your struggles. Transparency is key in a team - by sharing your mistakes, your teammates can help you and also learn from the mistake so no one repeats it again. It also ensures that everyone (engineers, product managers) has the same level of information - for instance, if someone were to ask 5 people on what caused the production bug last night, those 5 people will say the same thing.

Additionally, if you have an issue with your teammate, address it maturely with them. It is okay to point out mistakes, but do not blame and point fingers at people. A great team will foster a blame-free zone with psychological safety where people are encouraged to ask for help or make mistakes.

Lastly, please don’t go around talking negatively about another colleague behind their back. Gossip is a catalyst for a toxic culture, and it doesn’t solve any problems. If your teammate makes a mistake, it will be more productive if the team rallies around them and helps them solve whatever problem is at hand.

### Last remarks

Work hard, be kind, ask questions, have an open mind, and good luck in your tech journey!

And if you know someone who’s about to start their journey in tech, please share it with them!



Image from [here](https://www.freepik.com/free-vector/business-team-brainstorm-idea-lightbulb-from-jigsaw-working-team-collaboration-enterprise-cooperation-colleagues-mutual-assistance-concept-pinkish-coral-bluevector-isolated-illustration_11667116.htm#query=team&position=2)