In the middle of March 2020, I quickly moved out of my apartment in Philly to go back home in Chicago and finish the remainder of my senior year of college. One month after graduation I started my first fulltime software engineering job. The following is a reflection of what helped me with the transition from student to fulltime employee (and more specifically remote student to remote employee) in a manner I would’ve told myself at the time.

Starting Out

1. Determine the tools the team regularly uses.

At this point, you probably know what programming language(s), cloud service, etc. you'll be using on the job. But there are more programs, observability tools, and database systems that your team probably uses on a daily basis.
For example, identify the team's preferred IDE. This will make it easier to run your first program since you can ask your team how the app is set up on their side. There are also network tools like FileZilla, WinSCP, and MobaXterm that are helpful when working with apps deployed through SSH. Another tool I used often was Beyond Compare to easily view differences between texts and files.
Take some time to learn the fundamentals of these tools and frameworks, but naturally you'll learn as you continue to work through projects.

2. Request access for systems, databases, tools ASAP.

Once you identify the software and tools you need, make sure you have access to use them. You might need to request admin access for download privileges, go through an internal portal to have the software installed on your machine, or maybe there's a software center application on your computer.
Be prepared to wait from a couple days to a few weeks after you submit a request. Maybe you'll be lucky and won't have a lengthy wait time, but your future self will thank you for being proactive.

3. Walk through projects, business context/flow diagrams, and other documentation.

Waiting for access requests? Use this time to familiarize yourself with the codebase. Clone an app, go through the flow of the code, and learn how to run it on your computer.
Read through project documentation and business flow diagrams. Understanding how the business works will help solidify your understanding of the technical flow. Glance at current tickets or Jira stories to get more relevant context.
Your understanding will get better over time and this is a good start.

4. Write down your experience and processes.

One day the tasks you were unfamiliar with will become second nature to you. As you grow as a developer, the scope of your responsiblities will change and increase.
Write down step-by-step instructions on how you solved frequent problems, how to set up your local environment, and anything else you struggled with initially. This not only benefits you, but it also makes it easier to train new hires with documentation like this to reference.

5. Keep track of what you do everyday

Write about things you're doing, what you need to do, and what you've already accomplished. It can be as simple as creating a table with 3 columns: the date, a list of tasks, and a column for other notes. Take a step back and notice if anything can be improved..or just feel proud of your accomplishments. This makes it easier to reflect and will save you some time during performance review season.

Collaboration

It's easy for tone to get lost in translation through text. If you haven't interacted with someone frequently, it can be challenging to tell the nuance in the way they communicate. Be mindful of the way you communicate and be receptive to the various ways people convey feedback. Remember you all have the same goal to succeed. Here are some things that helped me connect with my team more:

1. Ask questions

Feel free to reach out to your team if you have any questions. Ask your teammates if you can shadow them. Ask questions during meetings. Your team wants you to succeed and they're there to support you.

2. Join code reviews

There are many benefits to joining code reviews early on. They help you gain a better understanding of the functionality of an application and how it interacts with other services. You learn how to talk about your code and ask for feedback. It's a great method of connecting with your team and making sure everyone's understanding is aligned.

3. Assign yourself to a ticket/Jira story

Take responsibility for a task to update a service or to do a research task. It can be intimidating at first, but this was one of the best ways for me to ramp up my understanding. Ask questions and your team shall guide you.

4. Respond to the group chat

If someone drops a question in your team's group chat and you think you know the answer share what you know anyway. There will be times when your team is joking around, make sure to contribute! Having productive discussions about work, learning from disagreements, coming to an agreement, and making jokes boosts team morale and as a result strengthens your sense of belonging in the team.

Embrace Change

The reality is that change is constant no matter how much planning is done. Sometimes you realize there's a better way of doing things. Sometimes the business/client realizes they need something different and requirements need to change.
Keep an open mind with your expectations and adapt. Your career is a marathon, not just a sprint.