<img src="//bat.bing.com/action/0?ti=5977017&amp;Ver=2" height="0" width="0" style="display:none; visibility: hidden;">
Siiri Hakulinen

Why Our CTO Spends 50% of His Time on the Road

By Siiri Hakulinen on February 16, 2018

Smartly.io's Founder and CTO Tuomo Riekki, who was recently included in Forbes 30 under 30 Europe, spends most of his time in the front line of Smartly.io’s business, traveling to meet customers and prototyping new product initiatives to solve their pain points. In this blog post, he explains why being close to customers is both a core company value and his favorite part of the job.

Jukka Heinonen

Highlights from Smartly.io DevTalks — Tackling Complexity in Software and Teams

By Jukka Heinonen on January 24, 2018

We’re hiring software developers! See open positions at smartly.io/developer.

Last November, we hosted the first ever Smartly.io DevTalks and brought together 80 experienced engineers from the Helsinki tech scene. Discussion revolved around complexity in software and engineering teams and how to fight it. Speakers included MPJ from Fun Fun Function, Sami Honkonen from Boss Level Podcast, and our own VP of Engineering Otto Hilska. Big thanks to all visitors and speakers!

Jukka Heinonen

We’re Looking for Ambitious Programmers — Apply to Smartly Squad 2018!

By Jukka Heinonen on December 18, 2017

See our open positions at smartly.io/careers!

Do you code? Got some work experience or hobby projects to show off? Join our Smartly Squad in 2018 to build software for the largest online advertisers globally, add to your technical skill set, and maximize your learning! Application is now open.

Roman Musatkin

How We’re Building a Design Process in a Full Stack Team

By Roman Musatkin on September 29, 2017

We’re hiring Product Designers!

Our full stack engineering teams design the features they build, which means developers deploy changes to our user interface every day. As the headcount of our engineering team increases, and we release more features than ever before, a well-functioning design process becomes a top priority. Here’s how we’re tackling the challenge.

Otto Hilska

How Engineers Work at Smartly.io

By Otto Hilska on September 15, 2017

We're looking for brilliant Software Developers to join our team!

In the past two years, the Smartly.io product development team has grown by 6x, extracted a bunch of microservices from a monolithic code base, scaled infrastructure beyond 400 servers, and contributed to growing monthly revenues by 10x. Meanwhile, we’ve been able to maintain agile and self-organized ways of working in our 50-person engineering team.

Max Huttunen

How to Make a Data Grid Scale

By Max Huttunen on August 3, 2017

At Smartly.io, our users have diverse, sometimes very demanding needs when it comes to tables for displaying and manipulating data. We wanted to cover all of the possible use cases with our new campaign management data grid implementation, where expandable rows, sticky columns and good performance are just some of the most important requirements.

In this blog post, we go through how we found the right tool for the job, and overcame the most critical challenges to build a truly well-performing and scalable data grid.

Lauri Kovanen

Statistical Significance for Humans — Automated Statistical Significance Calculator for A/B Testing

By Lauri Kovanen on July 19, 2017

As online marketing grows more complex, it’s difficult to get all the details right on the first try. With dozens of decisions to make for each ad, it is no surprise that there’s often room for improvement. Fortunately there’s a way to consistently make better decisions: A/B testing. However, running randomized controlled trials typically requires a good understanding of statistics, and most of our customers are not statisticians. We saw a clear need for a more understandable, automated solution especially for statistical significance calculations—so that’s what we set out to build.

Ville Lautanala

Streaming Data with Ruby Enumerators

By Ville Lautanala on July 6, 2017

Streaming is an efficient method of handling large collections of data. Working with streaming data in Ruby using blocks is clunky compared to Node.js Stream API where streams can be easily composed. In this blog post we share how we combined the ideas from Node.js Streams with Ruby enumerables to build composable streams in Ruby. This has helped us scale our feed processing to a whopping pace of over 1 million products processed each minute. 

Markus Ojala

Tutorial: How We Productized Bayesian Revenue Estimation with Stan

By Markus Ojala on June 21, 2017

Online advertisers are moving to optimizing total revenue on ad spend instead of just pumping up the amount of conversions or clicks. Maximizing revenue is tricky as there is huge random variation in the revenue amounts brought in by individual users. If this isn’t taken into account, it's easy to react to the wrong signals and waste money on less successful ad campaigns. Luckily, Bayesian inference allows us to make justified decisions on a granular level by modeling the variation in the observed data.

Joel Mertanen

How to Migrate from Angular to React Without a Massive Rewrite

By Joel Mertanen on February 8, 2017

The user interface of Smartly.io’s SaaS application was started as an Angular-based single page application back in 2013. We chose Angular, because it was an all-in-one solution and it had a seemingly straightforward data flow, which allowed rapid development and experimentation. Lately, we’ve been seeking ways to renew our front end stack without compromising our development speed or customer satisfaction.