Backend Systems make up the core of the Betterment platform. On a busy day, we need to securely move millions of dollars through the Betterment system. At the same time, every transaction must flow through a complicated series of risk checks to ensure strict regulatory compliance. Every ounce of efficiency and intelligence we pour into this system translates into more value for our customers.
About the right team member:
As a Staff Software Engineer on the team, you’ll help define the technical direction of the team as well as aligning that with the greater architectural vision of the organization. You’ll contribute materially by coding and through guidance, to multiple initiatives at once. You’ll promote adoption of significant technologies, products, or process innovations that provide real benefits, while managing the operational risk and cost of these new changes.
At Betterment you will get to:
- Build things people love. Our goal is to delight our customers whenever possible. Sleek design, simple user experience, and access to smart decisions help us to achieve it
- Take your ideas to the next level right away. We experiment, iterate, learn, and repeat
- Collaborate, with purpose. You’ll work in small groups with other talented thinkers and figure out how to make Betterment’s revolutionary software even better.
- Gain trust through openness. We believe in taking the guesswork out of investing. That means a consistent experience for our customers — you’ll build the tools to make it possible
- Craft efficiency. Our software helps customers save time and money. We maintain it through clean code, pragmatic programming, and lean engineering
- Work with people who care. Half of our team is made up of engineers but we believe everyone at Betterment is an engineer with their own tools. We’re a group of talented engineers who pride ourselves on what we do.
- We’re smart, creative, high-energy, and lots of fun.
You will answer questions like:
- How should we leverage queueing, caching, and other distributed systems architectures to increase the scalability and resiliency of our systems?
- We are running a financial services system in the cloud. What software patterns and testing approaches can we employ to guarantee that we never, ever fail in an unexpected or undefined way?
- How can we improve our orchestration of background jobs to increase the transparency and flexibility of our core systems?
- How do we design a system that is optimized to be of high quality and provide flexibility while minimizing risk and effort?
- What engineering principles should we be adopting as an engineering organization?
You will be effective if you have:
- A deep expertise in at least one object oriented language, such as Java, Scala, C#, C++; we write our systems in Java
- Enjoy designing and building high performance systems that scale effortlessly with increased volume.
- Are intimately familiar with queuing, threading, caching, sharding, and all other means of coaxing distributed, fault-tolerant systems to behave
- A proven track record of solving technical challenges by designing and building highly utilized abstractions and APIs
- A passion for software engineering as a craft, and for creating what doesn’t yet exist
- Take pleasure in mentoring other smart, passionate developers
- Know how to make the tradeoffs required to ship without compromising quality
- Appreciate agility and pragmatism in software development
Technologies you will use:
Betterment is the largest independent online financial advisor with more than $13 billion in assets under management. The service is designed to help increase customers’ long-term returns and lower taxes for retirement planning, building wealth, and other financial goals. Betterment takes advanced investment strategies and uses technology to deliver them to more than 330,000 customers across its three business lines: direct-to-consumer, Betterment for Advisors, and Betterment for Business. Learn more.