Kafka Consumer Assignments

I recently had the opportunity to work on a project upgrading one of Signal’s Redis-based message broker pipelines to Apache Kafka. At Signal, we use Kafka extensively to scale our real-time data platform. Kafka buffers writes to our Cassandra database, enqueues batched data, and provides real-time event streams. We continue to find new ways to …

Developer Spotlight: Dancer and Engineer Annie Wang

At Signal, we believe you can’t have a great people-based marketing platform without an awesome people-based engineering team. So today, we’re going to introduce you to Annie Wang, who’s one of our Brooklyn-based engineers. In addition to being a senior software engineer, she’s also a contemporary modern dancer and choreographer. Awesome people like Annie are …

It’s Better Than Bad, It’s GOOD!

Let’s talk about logs. Everybody logs, but what do we do with them? Do they sit on on your machines, dutifully being compressed and rotated, hoping that someone will eventually look at them? Are they greedy, taking all the disk space they can grab until someone remembers to clean them? I’d like to discuss some …

Uniting User Experience through the Signal Design Guild

As a thriving tech company, we’ve had our share of growing pains as we scale our organization. Among those is the challenge of maintaining consistent design patterns across our applications and brand materials. To combat that problem, we recently took a page from Spotify’s techniques for Scaling Agile and formed our first guild at Signal. …

Exception Handling in Node.js

A few months ago I began working on one of our backend Node.js applications. The application in question was not as stable as we needed it to be, and as I began to talk with former colleagues at another company I found that this is a common experience with Node.js apps. I was not alone. …

How I Learned to Stop Worrying and Love Other Languages

System.out.println(“bonjour tout le monde”) No wait, that was terrible. Let me say that again. print “hola mundo” I apologize, I should have said, printf(“hello world”) Most of us have learned how to create this toy program in many languages. But have you ever considered which one is the best? Expressing the ubiquitous “hello world” example …

Signal Chooses Apache Cassandra for its Distributed Data Store

At Signal we’ve been running Apache Cassandra in production since late 2011. However, before settling on Cassandra, we evaluated it alongside other NoSQL contenders. The main benefit that led us to choose Cassandra is the automatic replication both intra- and inter-region. This allows us to focus on building out our dataset and platform instead of …

Signal’s Wavelength

Before diving deeper into any one area of the Signal tech stack in later articles, I wanted to give an overview of how our technology is built, laid-out, deployed, and managed. I love working in our environment because I feel it strikes a great balance between flexibility and standardization, which allows us to do many …

Welcome to Signal’s /dev/log!

At Signal, our mission is to create the infrastructure for the next 20 years of digital marketing. We started in 2010 as “BrightTag”, with the goal to define and enable a more efficient and transparent means to share data among partners using direct APIs … moving beyond third-party cookies and browser cruft for data collection …