“DoubleDutch? Oh, you’re the company that makes apps!”
We make apps. In some ways, it’s as simple as that—which is probably why the above quote is a very common response when I tell people I work for DoubleDutch. However, the technical challenges we face on a day-to-day basis are much deeper than that. The marketplace is littered with poor quality event apps—apps that end up being nothing more than a lightly branded digital agenda. Almost every single feature we add to our platform is focused on increasing attendee engagement at the event through our app. That engagement translates directly into increased load and complexity in our backend stack. In other words, the more successful we are at creating an engaging app, the harder our daily technical challenges become.
Imagine you’re attending the keynote session at a large event. The speaker asks a question to the crowd and uses a live polling feature in the app to engage directly with the audience. The more elegantly the opportunity to engage is presented to the user, the more likely it is that the user will respond. How do we make it irresistible for you and the 35,000 other attendees to respond to this poll immediately? If we succeed, you and your 35,000 peers will all be hitting our backend stack repeatedly within a very short span of time. How will we handle this load? What if there are over 100 events happening simultaneously, all utilizing this or one of fifty other highly engaging features?
In the engineering department at DoubleDutch, we love tackling both sides of this challenge: crafting the perfect user experience and ensuring the backend is capable of scaling to meet the demand. These are the kinds of problems you only get to attack once you have a full-stack platform in production at a very large scale, and they’re the types of diverse, real-world problems that make us feel passionate about coming into work every single day.
We are still a relatively small team—currently around 40 strong, including product managers, designers and QA—which means that if you work in the engineering department here, your work will have a very direct and immediate impact on our platform. It also means that not all parts of our platform are based on technology developed in-house. We believe strongly in keeping our focus on the parts of the platform that are central to our business. For everything else we leverage the excellent work being done in the open-source software world ( postgresql, rabbitmq, docker, go, node, kafka) and, when possible, try to be active participants – both through contributions to external projects and by releasing useful parts of our own stack under an open-source license.
Our Engineering Blog Mission
Through this blog, we intend to share our experiences and the often unique technical solutions we devise as our platform and problem set evolve. Some of the challenges we tackle may be specific to our niche in event apps, but others will be relevant to anyone trying to scale a client-server-based mobile app platform. How do you stay nimble as your code base grows without sacrificing quality? How do you make the transition from an initial monolithic backend to a SOA-based architecture? How do you publish and maintain thousands of individually branded apps in the app stores? How do you seamlessly refactor and transition core parts of your platform while continuing to serve millions of active users? How do you handle the challenges of scaling an engineering team?
We will also write about the open-source projects we’re releasing, describing how we use them to solve problems here at DoubleDutch and how you can leverage our software in your own organization.
To put it simply, this will be a journal of our experiences as we continue to evolve our platform. A place to share our progress and breakthroughs.