How to Intern at SafetyCulture
By: Bryce Harlum
Tags: Software Engineering, Coder Academy, Agile, Intern

Along with deciding on a career path, I had many more questions and experiences I hoped to get out of the four weeks:

Work on a product driven by customer needs over an assignment rubric

Everything built by the development team was always approached from the perspective of the user, how it could add value or how it could improve their experience. User input and feedback are the biggest drivers of change and this brought greater meaning for me, re-enforcing the importance of delivering quality solutions — more than the promise of higher marks at college or university ever could.

Every task I completed over the four weeks went into production. Being able to log onto the iAuditor app and see something I worked on feels amazing! Knowing that the changes I worked on would be seen by hundreds of thousands of customers around the globe gives me a great sense of achievement.

The tasks I was challenged with were difficult enough to be engaging without causing stress or anxiety.

“I was given feedback and advice on a daily basis”

Experience a large codebase

Every project I have worked on before this was over the course of weeks at most. They were all dwarfed by the volume of packages, frameworks, files and tools that were being used in SafetyCulture’s codebase.

One of the more useful skills I have had to develop was the art of reading and navigating the code. This was not a skill that I thought I would value as much as I do now.

Continue my learning, find places that I could improve and areas I haven’t yet explored

Hooks, Sagas, Action Creators, Typescript and much more… Being someone who is still fresh to the industry my list of topics that I want to explore is ever-growing.

I am constantly tempted to jump down every “rabbit-hole” I can find.

A lesson I have taken from the experience is to try to focus your learnings on what is relevant, it makes things easier if your interest and these topics align.

Improve the quality of my solutions. Understand not only how to implement the best solution, but why it is better

This is not so much a goal for the internship as a general goal, to always be moving forward, making progress professionally and improving my work.

The feedback and advice I was given on a daily basis all helped me to achieve this. Pull requests, stand ups, retros, slack, the cafeteria or just tapping people on the shoulder.

At no point during the internship did anyone turn me away, they either had an answer or a direction for me to proceed. This is the kind of place where everyone has the chance to grow and are invested in each other.

Learn where I fit after the course (am I at a junior level)?

This is one of the few questions I had going in, that I didn’t come away with a clear answer for. I gained valuable understanding of where I need to continue my growth, but I have realised that the definition of a junior developer can change team to team and company to company.

“Don’t be afraid of bothering people”

Learn more on project planning and dev-ops. Working with agile, tickets, stand-ups, retrospectives and planning

As a student, working on my own or in very small teams, project planning often got overlooked to allow for what we thought would be quicker development. This may have been the case initially but we always eventually had to come back and refactor, due to a poorly planned foundation.

I now realise how valuable proper planning, communication and reflection can bring to a project. These practices lead to maintainable projects, in my opinion bringing as much value as a functioning solution.