My Journey As An SSENSE Software Engineering Intern

Jason Gerard
SSENSE-TECH
Published in
7 min readAug 27, 2021

SSENSE is proud to contribute to the development of tomorrow’s leaders by encouraging students to pursue their passion. Our internship program enrols dozens of individuals every year, and current openings can be found here.

Hi there, I’m Jason and I’m a third year Software Engineering student at Concordia University in Montreal, Quebec. I have been working at SSENSE for over a year split between three different teams: Checkout services, iOS Mobile App, and Machine Learning Recommendations.

My current team and I doing some after work brainstorming

The aim of this article is to give other software engineering students an idea of what they might expect should they choose to apply to an internship at SSENSE. Along the way, I’ll share my personal experiences at SSENSE and try to give some insight into what I’ve learned from working across three teams.

STRIKING A BALANCE BETWEEN SCHOOL AND WORK

As it turns out, I’ve only ever worked at SSENSE as a fully remote team member, and despite living in Montreal, I have not had to go into the office to work to complete my duties. It’s also worth mentioning here that I have spent roughly half my time working at SSENSE while also studying full-time. A bit of a rarity outside of SSENSE, my first manager encouraged me to take the opportunity and do both. At first I was slightly hesitant because I wanted to make sure I had enough time for school, but my manager made sure my work would be scalable and that the team could be flexible and support my schedule as well. I feel very lucky that every team I’ve been on at SSENSE has been more than happy to accommodate my student schedule, especially during times like exam periods.

Working part time as a SWE while going to school full-time is something that most people thought I was crazy for doing. I think it’s a great choice that allows you to continue learning applications while doing more theoretical course work. While part-time, I had to make a couple changes to my mindset such as purposefully taking smaller tasks that could be finished in a short period of time. The other change I had to make was strategically choosing which meetings to attend so that I would have time to actually get my assigned work done. Overall, if you are someone who is able to manage time between school and work, the learning opportunities for a part time internship are excellent.

INTERNAL MOBILITY AS AN INTERN

As an SSENSE intern, I’ve had a lot of opportunities to not just switch between teams, but between entire technology stacks: Full-Stack, frontend iOS, and R&D using ML. Each of these teams has their own core focuses, tech stack, and processes. Almost all these opportunities, including any promotions, are performanced-based, so if you put in the work and excel at your job, there are always plenty of projects which open up. Many of my internship peers at other companies get assigned to what I like to call ‘bug duty’ type work, and never feel like they have an impact beyond maintaining the code base. While that function also exists at SSENSE, it can either be a stepping stone to learn your way around the system or a permanent home for those who enjoy squashing bugs. My internship offered a lot of choices, and for those of us looking to push ourselves, the seniors, PMs, and managers were always there to help. In my case, my path included designing and leading my own features, working on across team initiatives with inner sourcing, and helping architect new services.

THE PACE OF CHANGE

As a student, the concept of technical debt seems easy to understand; however, my time in the field has led me to truly appreciate the work that goes into planning for and working around it. Compounded by things like old standards, lack of innovation, and poor processes, technical debt can weigh down even the best teams. My experience at SSENSE has seen constant improvements to both infrastructure and lower level initiatives like adding code quality checks in our CI/CD pipelines. Each team continuously proposes new tech standards, updates existing, or removes standards altogether to keep up with the fast-paced change of the organization. Processes are also always being evaluated in order to try to optimize the balance between safety, security, and speed. An example of this is the process in which we approve production deployments during peak periods and high traffic launches. During my time working on the end of season markdowns, we had specific risks associated with each specific deployment. Then, for the next season’s markdown period, the team worked to revamp our risk assessment with a chart that defined different criteria for each risk level, and designated a member of each team to be responsible for deciding the risk as a fallback. Suffice to say that tech standards are constantly evolving as the engineering department gathers more data on what works and what doesn’t, and even though I worked on 2 separate markdown periods — they couldn’t have been more different.

THE TEAMS AND PROJECTS I WAS ABLE TO CONTRIBUTE TO

On the checkout team we handled the full-stack checkout experience with an emphasis on high reliability, fault tolerance, and scaling. Examples of challenges we encountered included how to scale checkouts 100x / minute or how to differentiate a duplicate order from a real second order. The main goal of this team was to improve conversion while keeping highly coveted customer features available. This was a very interesting challenge that included a lot of monitoring, feature flags, and AB tests. Since we were handling the full flow, we owned multiple microservices along with certain parts of the frontend of the website. All of our backend code for these services are written in TypeScript — the frontend work is done using the Vue.js JavaScript framework, and we use a mixture of SQL and NoSQL databases. Some of the most interesting features from this team were decoupling microservices from an old legacy system, redesigning the checkout page, adding shipping and tax estimations, and creating an in-house saved payments solution. Although it was stressful everytime I merged my code, it was very cool to be able to work on one of the core systems within the company.

On the iOS mobile team we were trying to grow an early product. The mobile app is fairly recent and within the last year it has nearly reached feature parity with the website. We also had certain SLAs such as increasing the app revenue share. So one of our main goals was to create mobile-first features that would differentiate the app from the website. One of the main features we developed is personalization on the homepage of the app which makes heavy use of the recommendation systems and the different machine learning models SSENSE has built. The app is written in Swift and has a serverless BFF written in TypeScript, and uses GraphQL to communicate between the two. I wasn’t on this team for the longest time but I enjoyed being able to work on a newer product. While I had done quite a bit of front-end programming in the past, this was my first chance to work on an iOS mobile app. There is something special about running code from your computer straight to your physical device that is still much more rewarding than refreshing your web browser.

On the recommendation team (my current team) we are working to build and deploy recommendation machine learning models into production and to build out a core MLOps infrastructure for other data science and engineering teams to use. The work we do on this team is quite different from the other two I’ve worked on. With this team, I had the opportunity to work on challenges such as computation optimization for a batch prediction function on an ML model, along with investigating different tooling for our MLOps architecture. Since this is test and learn oriented work our processes differ quite a lot compared to more feature-driven or product teams. My work involves a lot of research, investigation, and prototyping in order to test out potential solutions. As an example, recently we conducted a hackathon to test out different tooling for our MLOps pipeline. My favorite features I’ve worked on were implementing a complementary product machine learning model, testing new machine learning infrastructure, and helping build an end to end MLOps pipeline. At this point I realize I’m drawn to doing complex backend work on large scale systems. This team allows me to focus on those interesting backend problems while also being in the domain of machine learning. This comes at the expense of splitting the team’s resources, but there’s always something different to work on which stops me from getting bored.

WHAT I’VE LEARNED AT SSENSE

There are so many more topics to cover about what it’s like to work at SSENSE and what it’s like to be an intern here. I think the factors that distinguish SSENSE from other SWE opportunities include themes like autonomy, room to lead at any level, a lack of red tape, working across various teams and departments, not to mention working with tech from AWS, K8s, machine learning, distributed systems, and event driven architecture are what stood out and continue to stand out for me today.

If I were to sum up what I’ve learned working throughout my internships at SSENSE, it would be that when I joined I had very little real world experience on large systems, I thought statically typed languages were a waste of time, and that 2,000 lines of javascript was an enterprise level application. Now after being exposed to different technology on different teams at SSENSE I’m planning on doing my Master’s in distributed systems or ML, although I still haven’t decided. You might guess my coursework would have more of an impact on what I’d like to pursue for my master’s degree, but in reality SSENSE is what gave me a taste of how cool large scale distributed systems are, and I’ve developed a new interest in machine learning through my work here. Each team I work with brought new technology and processes that change how I view and what interests me in tech, and that is one of the most lasting things I could have gained through my work here.

Editorial reviews by Deanna Chow, Liela Touré, and Paolo Pazzia.Want to work with us? Click here to see all open positions at SSENSE!

--

--