Starting a new software engineering role can be an overwhelming experience. The first months are a dizzying mix of meetings, development, and people. There are many ways to become successful. Here are my top tips.
My philosophy starts with people. As a software engineer, good technical fundamentals support the day to day work. Software, at its core, is fundamentally about people working as a team. Focus on getting to know your teammates well.
Reach out to people and get to know them. For those that work and partner with your team, reach out, and introduce yourself and what you do. Having this small interaction starts working relationships well.
Find a partner that can pair with you. There are teammates out there that will want to see you be successful. Pair up with them and learn together.
Communication helps build partnerships. Not all communication needs to be purposeful. Be open to team lunches. Share with the team about your interests outside of work. Socializing will help forge powerful working relationships over time.
Show recognition. For every contribution from others, a quick thank you can go a long way. Even more importantly, as you start working on initiatives together, and achieve results, recognize their accomplishments.
As you build up relationships with people, get to know the work well.
Ask questions. Whether it is about the work in flight, the product, or processes, ask questions so that you can build context. No question is off the table; in fact, it may reveal opportunities in which you may lead.
Jump in and contribute. As you settle into your role, offer to take on a challenge by being proactive. Shadowing will help build context, build a relationship, and also move the team in the right direction. No matter how small, file your first pull request.
Redraw things and learn by tracing. The systems and software you're working on are intricate. Learn by drawing out the system and collaborating with others to improve acuity. Having this holistic view of the system, you are adding value that goes a long way.
Meet with your manager and discuss expectations. As you learn about the people, work to understand expectations with your manager. Establish rapport by asking questions. Being on the same page is incredibly essential.
Don't know a particular technology? Learn by watching. As you start in the codebase, you will encounter technology that you may not have experience in. Build awareness by actively learning that technology through sites like LinkedIn learning or Pluralsight. A short 30-minute course will accelerate your understanding and drive.
Spend time learning the product. Dogfooding your product is an excellent technique to understand the value you will eventually add. Having the product domain understanding will give you an extraordinary chance to contribute effectively. As a stretch, offer to demo product work at the next showcase.
Now that you are understanding people, and adding value by contributing, organizing what you discover can help.
Seek ways to onboard effectively. The people you work with have insight into how to onboard well at the company. Ask them. This knowledge may already be organized! A runbook or an essential checklist can give you a headstart.
Bring the outside in. There are books out there that have excellent onboarding advice. The most important book I know of is The First 90 Days. There are also excellent podcasts and blog posts.
Start a document of all-important links. There will be many disparate systems and tools. Keep a running list of all those URLs in a convenient location. Organizing bookmarks by their domain can also help.
Build a glossary of acronyms. Each company has its own set of abbreviations and acronyms. As you discover them through conversation, ask what they mean, and write it down. Start a glossary, and share it with the next new employee.
Structured knowledge with a wiki. As you discover the product, it is a good idea to write out what you are learning. A personal wiki or a small library of markdown files can document your progress. The documents will reveal gaps to formulate new questions to ask. The bonus is that you can openly share with others over time.
As you are onboarding well, now is an excellent opportunity to build. Take ownership of the work you will be contributing to the team.
Understand the why behind the work. As you get into taking on your first challenge for the team, it is good to ask why your work is essential. Understand the mission and shape the context so it will drive your impact.
Start small, and build up. Take on work that is achievable to build up understanding. Small accomplishments build your confidence.
Bring in previous learnings. As you learn from the codebase, and respect team efforts, show your way of thinking by solving the first initiative collaboratively. It's an excellent opportunity to mentor and learn even more from others.
Solve a gnarly problem. The team has many important initiatives ahead of them. Find a problem that can help the organization, the product, or the environment. By taking on a gnarly issue, and solving it, will build the trust and respect of the team.
Get in there and don't be afraid! All the tips above require courage to take on. Each of these alone applied can be highly impactful. Be respectful and be bold! It's a journey and will take time. You will do great! 🎉 🙌