In January 2018, I started as a Software Developer Co-op at Hootsuite. In January 2020, I became an Intermediate Software Developer. This is my journey.

Before I get started, here’s a little bit about me:

  • I’m a Software Developer at Hootsuite on the Engage team.
  • I went to Simon Fraser University and majored in Computer Science.
  • I did two co-op terms that were eight months long. One was with Hootsuite.
  • I joined Hootsuite as a Junior Developer in October 2018, right after graduation.
  • I became an Intermediate Software Developer in 2020.
Repping Hootsuite at the Pride Parade
Repping Hootsuite at the Pride Parade
Repping Hootsuite at Vancouver Pride Parade

Overview

I started as a Co-op Software Developer on the Developer Products team. …


Image for post
Image for post

Hootsuite has been moving towards becoming a truly global company and one of the features of that is building asynchronous work environments. Working remotely has many benefits, but unless a team is optimized to work remotely, there needs to be some structure in place to accommodate a remote teammate.

“We like to give people the freedom to work where they want, safe in the knowledge that they have the drive and expertise to perform excellently, whether they at their desk or in their kitchen. …


If you’ve ever worked with an old legacy codebase, then you probably understand the value of refactoring. Code refactoring is the process of restructuring existing code without changing its external behaviour. The goal is to improve code readability, and more importantly, reduce complexity. Both of these allow developers to add and repair code more easily, improving throughput and productivity.

Background:

The Hootsuite App Directory was built using MongoDB and deeply coupled with Hootsuite’s legacy codebase (aka “The Monolith”). To decouple from the monolith, the team created the App Directory Service (ADS), a Scala microservice using a MySQL database. MySQL was chosen over Mongo due to it’s strongly typed fields and relational structure. Mongo’s type restriction features are much simpler and we have encountered errors caused by inappropriately saved data (read more about MySQL vs Mongo). Moreover, the MySQL database could also support Organization Apps (Apps that can be launched to a specific organization and only accessed by members of that organization). The goal of the migration was to reduce the dependency on Hootsuite’s legacy codebase by migrating to a microservice owned by the team, and also consolidate apps and organization apps. It is also part of a long term project to consolidate several representations of the same integration concepts into one cohesive solution. The migration of the App Directory data allows us to combine existing “social networks” into a single schema, significantly reducing the complexity of Hootsuite’s architecture. …

About

Farzin Ahmed

Software Developer @ Hootsuite

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store