How to succeed in your first software engineering job

Wioletta Kurek
AzimoLabs
Published in
6 min readOct 22, 2019

--

So, you’ve done the hard part and won your dream job as a software engineer. What now?

The first day of a new job is hard for anybody. The first day of a new career is even harder. This year I joined the mobile team at Azimo as an Android software engineer intern, which later led to a full time job. In this article I’ll share my experience and some of the things I learned on the journey.

Joining an active project

It’s rare that your first job in software engineering will involve building a product from scratch. It’s much more likely that you will join an existing team working on an active project with a substantial codebase. Don’t worry if you struggle to familiarise yourself with the code to begin with, it takes time.

Thankfully, “technology entry level” is one of Azimo’s KPIs (Key Performance Indicators). In practice this means that onboarding must be simple enough for a new intern to get code into production within just one week. I was really pleased to manage the task, and grateful that the company had thought to make it possible for a newcomer.

For more information about the Azimo internship process, read these blog posts from Mirek Stanek Summer internships at Azimo, Kuba Kwiatek So you want to be a software engineer? — Part 2 and Oleksandr Masliukivskyi What to expect from an iOS internship.

Achieving goals

Personal growth is essential to making progress as a software engineer, but it doesn’t happen without good leadership. Goals agreed with the leader of my team helped me understand what I needed to achieve by the end of my internship:

  • Become the owner of one product feature
  • Finish three technical/maintenance tickets
  • Fix five or more bugs in the application
  • Know how to read the crash analytics tools
  • Understand the application delivery flow
  • Contribute actively to code reviews
  • Contribute actively to grooming and estimation sessions
  • Write this blogpost

These goals helped me understand not only what I needed to produce but the speed that I needed to work at. If I felt that I was moving too slowly, I could check my progress and measure my improvement over time.

Learning from your team

Good teammates have a huge impact on your early career. They choose which tasks you can do, arrange meetings with other departments and, most importantly, assess the quality of your work, helping you to learn and improve. A keen-eyed teammate will help you avoid repeating your mistakes, and show you how to look at your work from a different perspective.

At Azimo the friendly atmosphere helped me to adapt faster and feel part of the team. I never felt like I was working alone and, thanks to the guidance of other engineers, I was soon solving problems that seemed impossible just a few months before. My lesson here was not to be shy about asking for help.

Taking part in meetings

There is more to being a software engineer than writing code. If you haven’t worked in a real company before, you will probably be surprised by how long you spend in meetings. Here is a brief breakdown of the meetings that I attend every week at Azimo:

  1. Standup.
    During the daily standup, the whole team meets for a quick status update. As a new intern, I found these standups invaluable. They gave me greater insight into our product, the challenges the team faces and how individual team members like to work.
  2. Grooming session.
    At grooming we discuss the details of the next sprint. Engineers have to determine whether the product manager’s requirements are sufficient and then assess the complexity/time required for a given task. In the early days I found helpful to watch and learn from more senior engineers, but later it became easier to take the initiative.
  3. Mobile guild.
    During the mobile guild session, we review our work as a team during the prior week, from communication and workflow to the code itself. At the end of the meeting we try to draw conclusions about what to improve or change. These sessions helped me to solve problems every week that could otherwise have lingered for months.
  4. Mobile engineering meeting.
    The goal of this meeting is to improve the architecture of a project. At the end of each meeting we create a list of improvements to implement. These meetings helped me to understand the level of quality that the Azimo engineering teams aim to maintain.
  5. One-to-one.
    This is the most important meeting for me, it’s a chance to have an honest conversation with your manager about how things are going in all aspects of your work. I recommend preparing a full list of things that you want to discuss, and to be honest about what’s going well and what isn’t. A good manager will help you with both.

Skills that will make your start easier

By coding every day, you will pick up skills that simplify your work, especially when a more experienced team member shows you what is slowing you down 😎.

  1. Debugging code:
    You can’t be a software engineer without debugging code. It is an essential skill. Knowing how to use the debugger is also an advantage that will help you find your way in an unfamiliar project. With a debugger, you can check which methods are called, track values of variables and everything that is available in a specific scope, at the specific time of code execution.
  2. Using shortcuts:
    Being able to use an Integrated Development Environment (IDE) is not enough. If you don’t learn shortcuts, you will lose velocity quickly. During my first weeks on the job, I learned a wide variety of shortcuts that massively increased the effectiveness of my work. I can’t imagine going back to my previous habits.
  3. Writing tests:
    The ability to write good tests is a key skill for any engineer as all newly-implemented features must be tested. If you write good tests, you save yourself a lot of manual testing later, and you reduce the risk of regression issues. I can’t emphasise this enough — if you gain experience writing tests before you start a full-time job, you will have a significant advantage.

A few things to remember

Lastly, I want to share a short list of tips that I hope will help you in your first weeks on the job:

  1. Ask for help.
    There will be times when you will get stuck and not know what to do. Don’t fight on alone. It’s better to admit you have difficulties with something and ask for help. At Azimo I learned that there are no stupid questions and that the team is there to support you.
  2. Treat every code review as a lesson.
    Try to learn something from every code review. A fellow engineer spends time on it not only to check if it is good enough, but also to teach you something and share knowledge. Don’t make the same mistakes twice.
  3. Try to understand all requirements before implementing something.
    It is very important to know all the requirements and details about a task before implementing it. It’s a pain to change a concept in the middle of execution because something wasn’t discussed or fully understood. Don’t be afraid to ask “stupid” questions at grooming.
  4. Learn to let go.
    When a task simply won’t budge, and you’ve fought with it bravely for a while, try taking a break and doing something else. The solution usually comes to mind after a little rest.

Towards financial services available to all

We’re working throughout the company to create faster, cheaper, and more available financial services all over the world, and here are some of the techniques that we’re utilizing. There’s still a long way ahead of us, and if you’d like to be part of that journey, check out our careers page.

--

--