Earn Rewards: Sign up now and earn a special reward after your first deposit. See offer details



Save, invest, retire

GET — On the App Store


Engineering at Betterment

We're engineering Betterment to become a top-notch fintech company. High quality code. Beautiful, practical design. A product that people love. Nerd out with us on all things tech.

Featured Articles

Introducing “Delayed”: Resilient Background Jobs on Rails

How Betterment uses a multi-threaded, SQL-driven ActiveJob backend to process millions of background jobs per day.

Focusing on What Matters: Using SLOs to Pursue User Happiness

Proper reliability is the greatest operational requirement for any service. If the service doesn’t work as intended, no user (or engineer) will be happy. This is where SLOs come in.

Finding and Preventing Rails Authorization Bugs

This article walks through finding and fixing common Rails authorization bugs.

Recent Articles

Using Targeted Universalism To Build Inclusive Features

The best products are inclusive at every stage of the design and engineering process. Here's how we turned a request for more inclusion into a feature all Betterment customers can benefit from.

Guidelines for Testing Rails Applications

Discusses the different responsibilities of model, request, and system specs, and other high level guidelines for writing specs using RSpec & Capybara.

WebValve – The Magic You Need for HTTP Integration

Struggling with HTTP integrations locally? Use WebValve to define HTTP service fakes and toggle between real and fake services in non-production environments.

CI/CD: Standardizing the Interface

Meet our CI/CD platform, Coach and learn how wee increased consistent adoption of Continuous Integration (CI) across our engineering organization. And why that's important.

CI/CD: Shortening the Feedback Loop

As we improve and scale our CD platform, shortening the feedback loop with notifications was a small, effective, and important piece.

Shh… It’s a Secret: Managing Secrets at Betterment

Opinionated secrets management that helps us sleep at night.

How We Develop Design Components in Rails

Learn how we use Rails components to keep our code D.R.Y. (Don’t Repeat Yourself) and to implement UX design changes effectively and uniformly..

Engineering the Launch of a New Brand for Betterment

In 2017, Betterment set out to launch a new brand to better define the voice and feel of our product. After…

A Journey to Truly Safe HTML Rendering

We leverage Rubocop’s OutputSafety check to ensure we’re being diligent about safe HTML rendering, so when we found vulnerabilities, we fixed them.

Building Better Software Faster with Shared Principles

Betterment’s playbook for extending the golden hour of startup innovation at scale.