Team Senators owns one of the most business-critical areas of the Smartly.io app—the one that creates the Facebook and Instagram ads you see in your social media feed. Theirs is the responsible job of keeping the functionality live at all times, as well as making the ad creation experience as hassle-free and intuitive as possible for the app users.
“If our system goes down, our customers can’t publish their ads. And if they don’t get their ads out there, they don’t spend their budget, which in turn means that we don’t make any money,” says Valtteri, the Senators’ team lead. “This means that a lot depends on us doing our job well, and building a resilient system that can handle large volumes of data.”
Clear-Cut Focus and Lots of Responsibility
Senators is a new team with five experienced developers: Sakari, Juha, Pablo, Andre, and Valtteri. They work intimately together, tackling projects one by one as a team. They strive to maintain a crystal clear focus by prioritizing heavily and accepting only a few projects to their quarterly roadmap.
“Senators was born when a larger twelve-person development team was split into two smaller autonomous teams. The new team structure allows us to focus on a more clear-cut, smaller area of the app. Being more focused keeps the team’s workload more manageable and results in higher developer happiness,” Valtteri explains. “There’s still a lot of work, but now it’s easier to see how your work contributes to the team’s goals in the big picture.”
In a small team, all developers need to take on a ton of responsibility, especially as Senators is working on a challenging frontend refactoring process. “Rewrites are always risky and require meticulous planning so that you don’t break anything or mess up what the other teams are working on,” Valtteri says. “But at the same time, the team is hyped up about the opportunity to code a new frontend from scratch. Especially as we can really take time to do it, and pay the needed attention to clean code and building a resilient and sustainable system using new technologies.”
Modern Technologies & Tricky Rewrites
The team works with technologies like React, Redux, TypeScript, PostgreSQL, Redis, and Kubernetes. They specify their APIs with OpenAPI, and Sakari even wrote a library that generates Typescript clients and servers from an OpenAPI spec to make their life easier. “As we’re working on refactoring the old monolith, we also need to know our way around PHP,” Valtteri adds. “But with the rewrite, we’re doing away with the legacy PHP, which is bound to make things more convenient.”
Senators also operates a microservice, a creative service called Goya that handles the ad creation process on the backend. “Moving from a monolithic structure to separate services allows us to narrow our focus, implement code faster, and spend less time coordinating with other development teams,” Valtteri explains. “When areas of ownership and overlap are more pronounced, we’re in a better place to make other teams’ work easier and faster where our work intertwines.”
As their first task, Senators needs to tackle an oncoming migration from one version of Facebook’s API to the next. “It perhaps doesn’t sound like the most exciting thing in the world, but API migrations can produce real brain teasers. This time, for example, Facebook made some major changes in their API, like splitting one API endpoint into three new ones. We need to figure out how we can accommodate those changes in our own app, without mixing things up for our users,” Valtteri explains.
Next, Valtteri and his team turn to the frontend rewrite. “It’s another intriguing challenge. There are many variables at play when you’re making an ad, and we need to simplify this complex process for our users as much as possible. It’s also going to be interesting to plan the UI in a way that it serves both power users and less advanced advertisers."
Learn more about how developers work at Smartly.io at smartly.io/careers/developers.