PagerDuty Blog


Custom Notification Sounds for Android Oreo and Beyond

The software engineering world is moving quickly; libraries and frameworks are always changing. This is especially true on Android where Google only recently solidified its…


In Engineering


Elixir at PagerDuty

When PagerDuty was founded, development speed was of the essence—so it should be no surprise when we reveal that Rails was the initial sole bit…


In Engineering


A public release of our pd-feature Chef cookbook

PagerDuty uses Chef for some of its configuration management needs. While most Chef cookbooks wedevelop internally are not useful outside of PagerDuty’s infrastructureand workflow, sometimes…


In Engineering


Can Continuous Integration and Continuous Deployment be Done by the Same Product?

Continuous Integration as a service (Travis CI, CircleCI, and plenty of others) has been commonplace for a while. These services are widely used to validate…


In Engineering


Live Updating in Mobile Applications

Background For many modern-day apps, the user interface either automatically shows the most up-to-date content to its users, or presents an indicator that new content…


In Engineering


Improving PagerDuty’s Automated iOS Builds

Background I started at PagerDuty during a time of revitalization of the iOS app. Apps tend to need a lot of care, given that Apple…


In Engineering


One Small ChatOps Win

Imagine yourself in a geographical distributed, multi team organization structure. Ok, that isn’t very difficult to imagine since we have that at PagerDuty. When you…


In Engineering


Distributed Task Scheduling, Part 3: Handling Data Center Outages

In an earlier post, we discussed how PagerDuty has built a distributed task scheduler using Akka, Kafka, and Cassandra. This open-source Scala library schedules and…


In Engineering


Automating Db2Kafka’s Failover

Db2Kafka is an open source service developed at PagerDuty. It is a message pump to take records written to a MySQL table and publish them…


In Engineering


Distributed Task Scheduling, Part 2: Handling Dynamic Load

In an earlier post, we discussed how PagerDuty has built a distributed task scheduler using Akka, Kafka, and Cassandra. This open-source Scala library schedules and…


In Engineering


Building a DateTime Picker in Ember.js (Part 1)

I recently attended EmberConf 2017 and there was an interesting talk on Higher Order Components by Miguel Camba (I highly recommend watching if you haven’t already)….


In Engineering


Distributed Task Scheduling with Akka, Kafka, Cassandra

In this post, we’ll explore the problem of scheduling and executing arbitrary tasks in a distributed infrastructure. Specifically, we’ll talk about how PagerDuty built an…


In Engineering


Welcome to the PagerDuty Engineering blog!

Hello! We do a lot of engineering work to ensure PagerDuty is a reliable platform, since we’re used by a lot of the Internet. And…


In Engineering