How to Intern at SafetyCulture

Bryce Harlum
SafetyCulture Engineering
6 min readNov 14, 2019

Recently I moved away from being a Quality Assurance Technician in food production to start a web development bootcamp at Coder Academy Sydney. Upon completion of the course everyone is encouraged to intern with a software company.

I got the opportunity to join the team at SafetyCulture for four weeks which enabled me to get valuable experience and insight into how a modern software engineering team builds and delivers product in a fast-paced environment.

Before starting my internship, I was unsure what value I would actually take away from the experience. I had worries that I would be put in a corner and left on a small, meaningless project by myself, with feedback or advice when someone managed to find some time. I decided to take the the plunge anyway and make the most of whatever experience I was offered, going in with a goal to use the experience to decide where I would direct my career. Focussing on backend, frontend or a more general full-stack role in web development. I expected enough autonomy in my experience to enable me to make that decision.

“I had worries that I would be put in a corner”

Fortunately, reflecting on all the support and resources I was provided, I realise that any worries I had were unwarranted. The team were great, they made sure I was included in their meetings, stand-ups, retrospectives, and planning from day one. My desk was close to my mentor and I was encouraged to tap him on the shoulder and ask any questions, whenever I needed.

The work I was assigned was meaningful and helped to continue my learning. I found The feedback was valuable and concise, improving the code I produced and helping me find areas to continue my studies sparking my interest in learning Go, gRPC and also explore and improve React further.

“I was included… from day one”

I got to explore everything I wanted. I had regular sessions with other teams to build an understanding of what they did and how they interacted with users and internally.

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.

Aside from the technical learnings, there were a number of additional, more nuanced learnings related to working in a Product Development environment, that I just couldn’t have known going in. I’d offer the following advice for future interns:

  • Be patient, work through tasks methodically, and approach everything with a plan. Discuss that plan with your mentor upfront.
  • Put your hand up. Opportunities are everywhere: bugs in the code base, helping someone with a task, pairing up on something new.
  • Don’t get lost in the code. Push to understand the whole team, not just engineering. Organise sessions with the designers, talk with customers, assist with a support ticket. Find anything to help you gather insights into the customer and bring a better experience for everyone.
  • Understand that the first solution does not need to be perfect and that tasks can always be revisited. Making progress is often more important than achieving perfection.
  • Create a list of the tools you use for development and how to set them up. This will make the initial on-boarding a breeze, getting you in the team and onto the project that much quicker.
  • Confirm the acceptance criteria before you start work. Explain your understanding of the requirements back to the team, ensuring that your understanding and the acceptance criteria align.
  • Look into a companies values before beginning a relationship with it. This will help you decide if your values match, giving you a glimpse into the culture they want to foster and how you can help it grow.
  • Don’t be afraid of bothering people. This is the most valuable lesson I have taken away from my experience. Just as you have dedicated your time to this company it has made a commitment to you, take advantage of it.
  • Enjoy yourself.

Since writing this article, I have been asked to stay on permanently and am very excited to continue to grow with the team. I have loved the experience so far and look forward to everything to come.

I hope that this was helpful and that you will think about applying to join SafetyCulture. If you have any questions, please feel free to reach out to me at bryce.harlum@safetyculture.com.

--

--

Bryce Harlum
SafetyCulture Engineering

Recently, I quit work. Now I’m a s̶t̶u̶d̶e̶n̶t̶ …Dev.