Seeking Superior Subscriber Segmentation System Scalability

As engineers, our goal for Bronto’s segmentation feature is to provide our clients with a powerful, flexible, user-friendly tool that allows them to drill down into their contact data to find new marketing opportunities. Over the years, as Bronto has grown, we have progressed through several iterations of our segmentation engine in a never-ending quest for better performance.

Old Segment Builder

Bronto’s Segment Builder UI, 2008-2013

Continue reading

Working in a Culture of Trust

You’ve probably heard that building a healthy, thriving DevOps culture requires trust.  At first glance, the statement seems self-evident. Trust should be a part of any healthy team, DevOps or not. Surely we all trust each other enough to get the job done. Besides, it’s too difficult to get any real metrics on trust to be too concerned about it.

Trust is vital. Trust is perhaps the most critical component of a DevOps culture.   Continue reading

Exploring JS Charting: Part 1

Choosing the right charting library for your front-end stack is relatively small potatoes compared to evaluating MV* frameworks. (Have you looked at TodoMVC lately?) But that doesn’t mean you should grab the first thing that looks cool and skip over questions that should apply to any third-party integration. Before diving in, it’s good to ask yourself:

  1. Does it come with enough features to solve or at least get us close to solving our long-term needs?
  2. Are the examples easy to follow and rework our own purposes?
  3. Does the API have a similar feel to other libraries currently in use, and therefore could it leverage the team’s existing skills?
  4. What about customization? How easy is it to extend components and override styles without breaking compatibility on future upgrades?

Continue reading

DevOps: Year One

I had the pleasure of addressing the Triangle DevOps meetup group on the subject of DevOps: Year One. The target audience was anyone who has bought into the idea of DevOps transformation for their business, but wanted practical advice for how to get started.

With only an hour to speak, and so many great questions to answer, we barely got to scratch the surface. But we did get to talk about some specific practices that have helped the Systems Engineering team at Bronto to work much more effectively.

Continue reading

Segments: Front-end Architecture With Backbone.js

One of Bronto’s most powerful features is our segmentation tool, which allows our customers to create highly granular subsets of contacts within their account. We recently updated this tool to add a number of new front-end features, all built on top of Backbone.js.

Getting Started

First, we looked at how to structure our underlying code. We knew we had the following elements to work with: Continue reading

Four Rules of Building RPMs

At Bronto, we’re heavily invested in open source technologies. We have dozens of MySQL shards, we run Hadoop and HBase, and we’ve built out a production infrastructure on CentOS.

One of the benefits of open source is that the world keeps improving the software you base your business on. You do need to regularly get those improvements and upgrades into production, though. As a result, we tend to roll our own RPMs somewhat often. Here are a few high-level rules we use to (mostly) achieve the zen nirvana of a stable environment of latest version software. Continue reading

In Search of a Smarter HBase Client

At Bronto we rely on Apache HBase to power several core features including our real-time Segmentation and Workflow Automation products. These features rely on timely access to consistent views of data that are changing at a high velocity.

HBase offers a blend of scalability, performance, and consistency guarantees that are a good fit for solving these problems at scale. However, like many of the current generation NoSQL stores, HBase is still complicated to use for both development and operations teams.

Continue reading

Apache Drill with Keys Botzum

Bronto is a proud sponsor and supporter of the Triangle Hadoop Users Group (TriHUG). Now over 400 members, TriHUG regularly hosts speakers from across the country, with topics related to the Hadoop ecosystem and large scale distributed systems in general. Talks are held at Bronto HQ in Durham, NC

Our July TriHUG meetup featured Keys Botzum from MapR Technologies talking shop about Apache Drill. Based on the Google Dremel paper, Drill is an incubating Apache project, led by contributors from MapR, Microsoft, Hortonworks and Oracle, with TriHUG’s own Grant Ingersoll as a mentor. Continue reading

Reliable Queueing in Redis (Part 1)

This post is the first in a series highlighting Bronto’s use of Redis for reliable queueing. We’re working now to open-source this work, so please check back soon!

Bronto & Redis

Here in Bronto Engineering, we sure do love us some Redis. And why not? It is fast, flexible, and has a rock solid track record in our production environment. It isn’t surprising that when we were looking for a better implementation for our distributed work queues, we decided to take a look at what Redis could provide. Continue reading

iPhone and iPad Automated Testing With Paul Merrill

Bronto hosted the July 2014 TriTAUG meetup, which focused on the constantly evolving field of automated user-interface testing. Paul Merrill from Beaufort Fairmont was on hand to give us a rundown of using Instruments and Frank, two tools designed to help lighten the load on iOS devices.

If you have never done any form of iOS development or testing, you can be up and running in no time by harnessing Xcode and a demo application from Apple.  You can find Xcode in the App Store and the Recipes application here. Continue reading