Scaling SaaS to Become the 88th Fastest-Growing Private Company
April 29, 2015 | Chris Hardee
MaxCDN is proud to present #MaxScale, our new series that takes an in-depth look at how growing tech companies handle scale at the highest levels of bandwidth, storage, analysis and more. In this installment, we chat with Tune’s CTO Niek Sanders.
Twin brothers Lucas and Lee Brown started a software as a service (SaaS) company in February 2009 that allows marketers to manage and scale publisher relationships. In May 2009, they launched their first product, HasOffers.
In May 2011, the twins decided it was time to move to the cloud and created the first performance marketing platform (Mobile App Tracking) built on Amazon Web Services (AWS). The brothers managed to bootstrap their company until 2013, when after having reached 70 employees, they decided it was time for investors.
In July 2014, TUNE HasOffers rebranded as TUNE and by August 2014 had been named the 88th fastest-growing private company in America.Niek Sanders, Chief Technical Officer at TUNE who joined the company in 2012.
Niek Sanders began working at TUNE on the HasOffers project in 2012 after almost nine years of working in high performance and scientific computing. He began as a senior software engineer and brought an amazing depth of knowledge to the team. He later became lead engineer and then Vice President of Engineering for almost two years before becoming TUNE’s Chief Technical Officer (CTO).
Chris Hardee: I really like your quote from your job description on LinkedIn that states, "mostly that means ensuring our epic technical teams have nothing blocking them from success." Can you give us a good example of an issue that would have slowed their success?
Niek Sanders: I think it's not so much about specific issues; it's more about some core philosophies. For instance, one of my fundamental ideals has always been to keep some bounds of sanity. Allow engineers to choose a technology and how they want to design the systems they are building. I'm not going to dictate we use framework X or framework Y, with some vague bounds of sanity. You don't just go picking a language of the week since we have some 2,000 languages out there.
Rather we empower engineers to pick how they build things and give them the time and the computing resources to do it correctly. At the same time, we are also holding them accountable for what they build. We do on-call rotations for our engineering teams. If they build systems that are not reliable, they're the ones that are woken up at 2 A.M., which strongly, strongly encourages those engineers to build very reliable systems, very quickly. I think that's one of the really core foundations of removing blockers from teams.
Another big part is getting the right people on the right teams. I think we've done a great job of hiring here at TUNE. We really encourage innovation and risk taking which allows engineers to come up to you all the time with, "Hey I have a really cool idea, why don't we try technology X or what if we do this?" As much as possible, within limits of course, we try to encourage these risk-taking exercises. It's like, "Go experiment what it's like to do some of the latest and greatest technology out there and let’s see where it takes us." Some of those go nowhere and then some of them actually become the core of our products.
CH: Can you walk me through the software stack that TUNE’s technologies are built on, and how you chose each major piece?
NS: Sure, at the foundation layer we have Amazon Web Services (AWS). We extensively use their ecosystem including DynamoDB, SQS, S3 and EC2. If you go into the AWS console, there's a good chance we're using about 75 percent of the things you see there.
We actually made this shift to AWS almost four years ago. The biggest reason has always been about agility and the ecosystem it provides. It's not just each of the services individually, it's the way they all plug together.
CH: Can you tell me a little about the tech partners with whom you have developed long-term relationships and what motivates you to continue those relationships?
NS: Sure, I sort of see partnerships being in two categories. One is our industry partners; we work with ad networks and a lot of ad technology vendors and those tend to be very product-oriented partnerships. In terms of technical partnerships, there are few companies with which we partner. We have a close relationship with AWS. We work closely with a lot of their engineers and product managers. It helps that we're about six blocks away from their offices. However, we have very few external tech partnerships. I think part of the reason is that we view the technical knowledge build up as really one of our core business assets. Knowing how to tackle these tough technical challenges, we try to keep a lot of that in-house when possible.
CH: What are three hard-to-spot pitfalls that are critical for a growing SaaS company to avoid?
NS: It's not so much the hard-to-spot ones. To me, I keep seeing the common pitfalls repeatedly. The three common ones are:
1. Premature optimization
Engineers love to build systems that will handle 2 trillion requests per second. They use all of the latest and greatest technology you read about in the blogs and technology websites. But when you're a young growing company, especially in year one and two, you should be just focusing on enabling yourself to integrate rapidly in-product, so essentially it’s the lean style of building startups. The questions are “How do you build and integrate fast within your product?” and “How do you learn from your customers?”
As one of our technology sources from long ago, AWS really fits nicely in this worldview. With AWS, I can spin up SQL clusters in 15 minutes. There's no reading big doc manuals, I can click and have something going and build part of my product. Premature optimization would be the first big pitfall that people hit repeatedly.
2. Lacking basic metrics in your systems
Some examples of basic metrics you might need are:
- What's the average response time of an API request?
- How many API requests am I doing?
- What are the top 10 API requests?
You need to ask similar questions when you are building your system end-to-end. It's not about going nuts and trying to see each and every thing. It's about getting a top-level view of what's going on in your world with questions like, “Where am I bottle-necking?” and “Where am I going to hit the wall next?” Because one of the things is when you're building products and growing a company, you're going to be surprised a lot of time by which bottlenecks you hit. You're not going to be able to predict them all the time. Just having basic metrics will tell you things like, "Oh, I'm running out of memory on this cluster of machines."Entrance to the office in Seattle, WA. TUNE has been recognized as an outstanding performer for its MobileAppTracking by Winter Nights Mobile Gaming Conference and Venture Beat.
3. Chasing the latest shiny thing
Many engineers like following the “super shiny.” You see that a lot, especially in new engineers these days just envying the framework of the week or the day or the hour. I think part of the challenge is to take risks and update with new technologies, but don't become so heart set that everything has to use the absolute latest and greatest flavor. Instead, you need to focus on getting things done.
Using things you know like PHP is a great example. It's a thoroughly unsexy language, but you can get a lot done in PHP and there are a lot of people that know how to use it. You don’t waste time messing around with questions like, "How do I use this new framework?” or “How do I use this new language?”
To get things done, boring technology needs to go hand-in-hand with innovative technology. Build a good base of boring and then use innovation as a spice.
CH: Looking three to five years into the future, what do you think will be the next big change in software as a service?
NS: It's really seeing software history as a whole. It always moves back and forth like a pendulum. I think the two things we're going to see are the standard to move to 100% cloud and that eventually it will swing back to hybrid, private, and public cloud, especially as the private provider technology is improved and gets less friction. It's really about cost control innovation. There're cool things you can do when you control the hardware. I think pulling back from pure AWS is something you're going to see in the coming years.Workspace at the TUNE offices. Originally started by brothers Lucas and Lee Brown as HasOffers, and now known as TUNE, the company recently reached #88 on Inc 5000's annual list.
CH: What do you think is the most complicated technology problem that Tune has solved in the past year?
NS: I think the biggest thing we've really accomplished is to have a realtime big data system. Either one of those two (realtime and big data) is really tough, and when you have both of them together it's really, really nasty.
We've been able to build a system despite hitting limits. We're pushing the limits and expanding boundaries. We've been able to keep up with our request volume growth. We have over a petabyte of data in our data set. When we need to do ad hoc reporting, we’re able to get data and have it available in ad hoc reports on the order of seconds to minutes.
CH: If you had a list of best-kept secrets about scaling and growing a software as a service platform, which would you include and why?
NS: I'll put this in the same category as “three things to lose weight” or “one secret trick will make you gain all this muscle.” To me it's not about secrets. It's really just a lot of common sense, hard work, and execution, over and over and over again. It's about endurance. There is no secret sauce to it.
CH: It says on the TUNE website, "We've built our products to be easy to use from setup to advanced usage. We're constantly tweaking and improving flows to make tasks easier to perform." Would you mind telling us about some of the user experience challenges SaaS providers might face and how to avoid them?
NS: With Mobile Ad Tracking, we were really the first to market this solution for doing mobile user attribution. There are a lot of followers now, however. One of the big things we learned is that you literally have to learn who your customers are as you go. You're going to find customers using your product in ways you absolutely do not expect, who need and want things you don't expect. It's really learning from your customers.
We've also found that's there a huge variety in our customer types. Some are super sophisticated, some need lots of handholding, some want to do very deep analytics, others just want things very simple.
At the end of the day, it's really a learning process. It's a discovery process of who your customers are, what they want in life, and how you can work hand and hand with them.
In terms of building a good user experience, eventually you get to the point where you start building up customer personas. Whether you have an advanced user, a basic user, or a CMO who just needs top-level dashboards they can share, you need a user experience that works for each of them. For all these different user personas you need to answer the question: “Is there language that draws me to where I need to go?”
CH: On your website it says, "Our engineering teams have built two world class platforms using the latest in cloud technology to make sure our systems are always up and running." Would you mind sharing with us three of the most important skills you look for when you select software engineers?
NS: When I interview an engineer, it's usually the same sequence. The first big thing I always ask them is: "Explain to me a system that you've built." I usually just throw out something recent from their resume. "So you said you had a big part in making this system. Explain to me how the system works."
What I'm looking for is communication. Can you communicate what you've done? It's also a great way to filter out people who have been creative in their resume in terms of what contributions they've made. Can they really understand what the system design tradeoffs were? When it breaks, why do they do what they do. What's the problem they're trying to solve and can they actually communicate that?Workers at TUNE. Niek Sanders emphasizes how the group looks for people who take a joy in computing and computer science technology.
The second thing I look for is someone who takes joy in computing and computer science technology. I don't mean in an “I work 24 hours a day and don't have a personal life” sense. I mean really just when you talk, do you have a sense of wonder like you had the first time, as a kid, when you touched a computer?
Whenever you first had your computer experience, you had a sense of wonder and joy. Do you still have that to an extent in your day-to-day life? It goes back to the idea of passion. If you can get people talking about things they're passionate about, you can pull them into technology. I think it gets you through a lot of the hard times.
Some developers have only worked with their specific part of a project (APIs, frontend, etc.) and that is all they know. There are many things going on in the computing landscape and you're never going to be an expert, even at a tiny fraction of them. But at least you know what's out there and how they fit together and interact.
CH: As the CTO of TUNE, can you tell us how you stay abreast of technology changes that are relevant to your business?
NS: Hacker News is one. I'm a distributed systems guy by passion, so High Scalability is a website I spend a lot of time on too. There are some great links, especially on their Friday posts. We actually learn a lot from talking to customers. Many of our customers have built in-house systems. They also have a lot of experience with scale because we work with some of the biggest people in the industry. We listen to how our customers have tackled some of the similar problems we face which is helpful because you get the “in the trenches” view.
The third one is just my personal professional network. I know a lot of "nerds." I'm a nerd. We just talk over beer. We talk over everything. We're very opinionated and we're not shy about sharing those opinions.
CH: One last question. Would you mind sharing with us three upcoming technologies you find exciting?
CH: One last question. Would you mind sharing with us three upcoming technologies you find exciting?
1. Spark and Spark Streaming
NS: Number one is Spark and Spark Streaming. The reason I find it so cool is if you read the original Spark and Spark Streaming research papers, regardless of how those things ever get implemented, the fundamental abstraction those things represent for doing distributed computing or working reliably over big data sets is very powerful. Spark and Spark Streaming is by far my number one for excitement.Niek Sanders at the TUNE offices. As CTO he emphasizes the importance of the customer experience and adapting to new technology.
2. RUST from Mozilla
Number two for me is the language called Rust from Mozilla. It really goes back to my own personal C++ roots. The reason I find that language so fascinating is that it's the first real contender where I can say, "Wow, I can finally get rid of C++!" I was a C++ developer for 9+ years. It's an incredibly powerful and expressive language where you can do really expressive things without paying runtime penalties.
The RUST language has a lot of the really great things of C++ compiled together with a lot of the great things from other languages. It's coming together in a really nice looking package. I can write really high performance code and it's also safe and correct. It’s hard to get all three of those at once.
3. Kafka by LinkedIn
The third one is actually not so much upcoming. To an extent, it's already here. Kafka is a distributed publishing subsystem made by LinkedIn that has been open sourced as an Apache project. I think the really big coming moment for Kafka is going to be in their 0.9 release, where they're updating their consumer APIs.
Right now, due to collaborate consumption from Kafka, you need a lot of smarts in your client code, which means people are stuck using the Java client. In version 0.9, they are going to help move a lot of those smarts to the broker, which means it becomes easier for people in other languages to use some of the coolest features of Kafka. It's a cool technology already, it's just hard to use it if you're not using the JVM system. The next release is really going to push big.
Photography by Holli Margell. All images released under Creative Commons license. Please attribute photos to "Photographer: Holli Margell / Source: MaxCDN" and link to this post.