Engineering and product development are vital functions at Smartly. How do they work and how are they designed? Browse through this page to find out.
Since the foundation of Smartly in 2013, we have gone through a major transformation and have become a global company of 600+ people from a small Finnish startup. As of 2023, we have 200+ Smartlies in engineering and product development to deliver our ambitious multi-channel digital advertising offering. With the rapid growth of our customer base and their ad spend, our organization’s needs have changed too, requiring a certain level of formality. However, at the same time, we also want to keep our agility and flexibility to react to all changes around us.
How do we do this in engineering? We have some fundamental principles in place.
Some fundamental principles for all engineering are ownership, decision making, flexibility, productivity and quality. All are familiar terms and very much related, but what do they mean at Smartly?
As a SaaS product provider, we need to ensure our production machinery is well-functioning at all times. If something unplanned happens, we need to be able to immediately recognize and react to it, and know which team owns that part of the product. That's why all our microservices have a 'home base' team and they all are held accountable for each technical domain.
In a large engineering function, it is essential to have transparency in decision making. At Smartly, decisions are made on many levels by teams and individual experts. We foster flexibility in decision making, and strive to keep a low hierarchy. To enable transparency, we regularly share information with all team members to keep everyone updated.
Flexibility in our engineering teams is based on lean and agile principles. We run timeboxed development with continuous planning in all teams, and each of them have the autonomy to decide and fine-tune their practices. However, some basic practices such as daily standups, weekly planning, reviews and sprint retros, need to be followed.
Productivity is the key to success. We need to be able to work fast and provide added value to our customers. Therefore, our product management and customer teams work closely with our users, and all feedback is looped back to engineering quickly. Productivity means we have the right practices in place and deliver value to our customers.
Quality is the key to any sustainable business, and it gets increasingly important for growth organizations. We utilize code reviews and automated testing to maintain the highest possible quality, and also put effort into integration testing between technical domains. Quality at Smartly is so much about user experience and product design.
A growing organization is never finished. Our ways of working are constantly changing, and we see change as an opportunity to improve. Everything at Smartly is based on this philosophy, hence we are always looking for ways to make our products better, along with our ways of working as well as our organization as a whole.
The Smartly Digital Advertising Platform. Our product is designed for digital advertisers to reach, engage and learn smartly. Combining the power of media automation, creative agility and advertising intelligence across the largest media platforms, our product is being built to solve complex challenges of marketers.
Dive into the world of engineering and product development at Smartly.
This post covers our nearly complete re-write and re-design of our Image Template rendering system.
Our Senior Full Stack Developer Tomi introduces how projects that require cooperation from multiple autonomous engineering teams can be run effectively.
What we learned from using shared types and building a mediator service to harmonize the UI and create a shared frontend between multiple dev teams.
We saw the release of GitHub Actions as an opportunity to rebuild the release process for our TS libraries. Read how we did it and what we learned along the way.
We've been renewing our front end stack lately. Joel, a software engineer at Smartly.io tells how we migrated from Angular to React without a massive rewrite.
We give you Oats (OpenApi-TypeScript): a library we use to facilitate calling and creating HTTP APIs while validating types at compile-time and runtime.