Reflecting on My First Year as a Software Engineer Out of College
Tags: startup, computerscience, career
Published: 2020-08-18 08:16:05

_Note: This post is mainly targeted towards students who are about to graduate or have already graduated and are preparing to start their new full-time job. Some of the examples used are specific to my experience as a New Grad Software Engineer at a high-growth startup but most of the points translate to any New Grad._

I can’t believe it’s already been a year since I graduated from college and started working full-time as a Software Engineer at Torch. I wanted to explicitly take some time to sit down and reflect on the last year — it’s unbelievable how fast a year goes by! Over the span of 12 months, I’ve grown so much as a developer, a team player and learned a lot of things along the way. Here are some of my key takeaways from Year 1 of work:

## 1. Take time to adapt and form a routine ##

I remember Googling aggressively and reading every possible Quora answer and Reddit post about what post-grad corporate life looks like hoping I would be well prepared by the time I’d start working. I quickly realized that going from a college routine to a corporate environment (aka. 9–5 job) takes a bit of an adjustment. The first couple of weeks were hard. I had moved into a new apartment and was still trying to figure out how to set and maintain my routine, cook food, and navigate work stuff. I remember the first 1–2 weeks very clearly — I’d come home from work by 5:30 pm and fall asleep by 8 pm (sometimes without having dinner) just because I was extremely (mentally) exhausted.

Once I was fully settled into my new apartment, I formed a new routine and took some effort to stick to it which made a huge difference. After some very unrealistic routines and iterating on what worked well/didn’t work well, I finally found something that I could consistently follow. So, take time, try out different ways of planning a schedule, and stick to one that fits you best. **Consistency is key.**

## 2. Learn as much as you can about the company ##

A lot of information will be thrown at you in the first couple of months. Take time to soak it all in. Learn about the organization, teams, processes, and obviously, the codebase. Most, if not all, teams have a Wiki page consisting of information relevant to your role/ your specific team. Hopefully, this will be shared with you as part of your onboarding but if not, reach out to your manager/mentor and ask for this information. If your team doesn’t have a Wiki, volunteer to create one as you onboard and navigate through your first couple of weeks. This information will help you (and future team members) understand:
* how that specific team has been traditionally working
* who the key people/contributors in the team are
* any processes that must be followed while working in the team
* what technologies you need access to so that you are set up for success

## 3. Build relationships early on and help out wherever you can ##

This is something that you have probably heard a number of times but I can’t stress enough on how important it is to start off on the right foot with your team. Your teammates and co-workers will be your biggest resources during your time at the company. Take time to get to know them 1:1 in the first couple of weeks of your job. You do not have to be BFFs with your co-workers (if you are, that’s great!) but considering the amount of time you will be spending with them, it will be beneficial for you to form strong relationships with them. 

If you’re starting off remote, take extra efforts to schedule regular coffee chats or lunches. Find out who they are and what they like outside of work. Ask about their interests and try to find similarities so that you can connect with them on a deeper level. Be genuine about your intentions.

One not-so-secret secret to building genuine and meaningful relationships is to offer help to others. Is there something that you are good at and can help someone? Is there a small task up-for-grabs that you are interested in taking on? Do it. Some people may disagree with me and say that you should only do the work that you’re paid for. Fair enough — you do want to make sure that you are not getting exploited by your employer and doing work for free. However, the way I see it, by doing “extra work” that you like, you’re adding more to your skillset and getting experience for yourself that will come in handy in the future.

## 4. Ask a lot of questions and seek help when you need it ##

Asking for help when needed is something I struggled with a lot (still do but working on getting better). Naturally, as a new grad, you want to prove that you are good and can figure things on your own. I understand since I’ve been there. Sometimes, working at a startup means things move very quickly and if there are deadlines to meet, you don’t always have a lot of time to play around and figure things out on your own. The best way is to just ask your mentor or a teammate — chances are they can help resolve your issue within minutes which would have otherwise taken you a couple of hours (sometimes days) to figure out.

You are expected to ask questions. Corporate lingo is real and every company/team has its own lingo that they use to communicate certain things within the team that may confuse you. (I learned that LGTM on pull requests does not mean “let’s get that money!” 🙃) You will be unfamiliar with a lot of things — maybe this is the first time you’re working with a specific technology, maybe you’ve never looked at a large codebase before, or maybe you don’t know where to get lunch from. I‘ve learned that it’s much better to ask than pretend you know things. As a new employee (and new to corporate life), you have a fresh perspective when looking at a problem or task at hand. Asking clarifying questions might help your team look at things in a different way and question the “why” behind doing them in the first place.

Now you may ask — “Harshita, I understand why I should ask questions but I feel shy and don’t know if I’m asking too many questions or if my questions are silly”. I hear you and let me tell you that it is a very valid concern. I am a fairly observant individual who likes to assess her surroundings before taking a leap into things. So if you’re not sure whether your team is receptive to questions — observe. Your team’s culture can usually be broken down into three types:
* Asking questions is appreciated
* Asking informed questions is appreciated (eg. try it out yourself first and then ask if you’re not able to figure something out)
* Asking questions is frowned upon (time to start looking for a new job)

Once you figure that out, ask questions accordingly. It’s understandable that not everyone finds it comfortable to ask questions during a meeting in front of everyone. If something is pressing and is very unclear, I prefer to ask questions right there to get a better context. If I’m curious about something that isn’t necessarily relevant to the task at hand, I usually take notes during the meeting and reach out to one of my teammates later to get more information. Know how you work and don’t be afraid to ask questions.

## 5. Effective collaboration is hard AF. Over-communication is the secret sauce to success ##

_Spoiler alert: Working in a corporate environment is very different from working on a group project in college._

You will be working with people of different skills, backgrounds, and experiences. Depending on your role and project, you might work with different teams and organizations (marketing, sales, design, product, etc.) so communicating effectively in such situations is even more important especially since each team communicates differently.

Miscommunication can lead to serious issues like not being able to meet a deadline, starting your work from scratch because you weren’t aligned on the results that needed to be achieved. Even if things seem obvious, communicate them explicitly. It is better to bring it up than make assumptions about something. For example, when you are presented with a task, the details may not always be obvious at first glance. What may seem obvious to you may not be so obvious to your teammates so even if it seems repetitive, communicate…communicate…communicate!

## 6. You will make mistakes. It’s okay — learn from them and move on. ##

Over the last twelve months, I’ve made my share of mistakes or identified some things that I could have done better. Sometimes, I’ve noticed them on my own, and sometimes my peers have pointed them out to me like “Hey Harshita, I have some feedback on how XYZ could have been done better”. I usually feel pretty ashamed when I make mistakes and obsessively think about how I could have done better and get too upset about disappointing others. The biggest takeaway from these conversations has been to **not take things personally**. It’s unproductive and unhealthy since there’s nothing you can do about the things in the past. Also, it is important to recognize that **criticism about your work is not criticism about you** — learn to keep them separate and focus on sharpening your tools. This has also reaffirmed that you learn a lot more from your failures than your successes. So convey your intention to grow/improve and consistently ask for feedback from your manager, your mentor, or your peers on your performance and iterate.

## 7. Let your manager/teammates know about your interests ##

In the summer after my sophomore year of college, I got really interested in product management and wanted to break into the product space right after graduating. I was very conflicted between pursuing a SWE role before transitioning into product vs. diving straight into product. During my SWE interview at Torch, I talked about my passion for the product space and expressed my interest in becoming a PM in a couple of years. I even expressed my interests/goals to my teammates in our early 1:1s.

Since then, my manager has consistently mentioned how he values my interest in the product space and tries to find projects/opportunities for me to get involved in. I also remember the time when a teammate invited me to a meeting for a new project (that I was not involved with) just because it was product-focused and he knew that I would enjoy being involved in those discussions. What I’m trying to say is that you are more than your title. Whatever your interests may be, they will act like meta-data and will help differentiate you from “just another Software Engineer”.

## 8. Having a great manager is key ##

This is probably one of the most important things that will directly influence your time at the company but also something that you cannot control. Depending on the type of company you’re interviewing at, you may not get to meet your direct manager before you actually start working at the company. The benefit of interviewing at a small company like Torch was that it gave me an opportunity to chat and get to know my then-manager (now skip-level manager) 1:1 which helped me understand his leadership style, his values and gave me a glimpse into what kind of people I would be working with.

It is very important to know what a [great manager](https://hbr.org/2005/03/what-great-managers-do) is. Having a manager that is empathetic, understands your goals, is able to spot your strengths (sometimes even before you can), and helps you achieve your goals is a rare find and they will really help you succeed in your role. While interviewing at a company, see if you are able to chat with your future manager even if it is just for a couple of minutes to get an idea of what they are like and their vision for the team. (Don’t want to end up with a Michael Scott ya know)

--------------------------------------------------------------
**Resources that I turned to before starting work:**

[The First 90 Days: Proven Strategies for Getting Up to Speed Faster and Smarter](https://www.amazon.com/First-90-Days-Strategies-Expanded/dp/1422188612)
[Principles](https://www.amazon.com/dp/B071CTK28D/ref=sspa_dk_detail_5?psc=1&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUEzNzlSUkJTMUpNTzFVJmVuY3J5cHRlZElkPUEwNDI3MDk2MVZNRE9DWDlYREFYRyZlbmNyeXB0ZWRBZElkPUEwMTcwNTc3MjAwOTRTRVcwR0RaUyZ3aWRnZXROYW1lPXNwX2RldGFpbCZhY3Rpb249Y2xpY2tSZWRpcmVjdCZkb05vdExvZ0NsaWNrPXRydWU=) — Ray Dalio
Facebook groups: [Ladies Storm Hackathons](https://www.facebook.com/groups/LadiesStormHackathons/), [Hackathon Hackers](https://www.facebook.com/groups/hackathonhackers/)
[CS Career Questions](https://www.reddit.com/r/cscareerquestions/)

--------------------------------------------------------------
Hope this article gives you an insight into what to expect into your first year or how to prepare for it. Feel free to comment your thoughts or let me know if you think I missed anything. You can also reach me at harshitagirase97@gmail.com or [DM me on Twitter](https://twitter.com/harshitagirase) if you want to chat about Tech, D&I, Startups, Product Management, Tech for Social Good, AI, and anything else.