Engineering Blog – Wealthfront: Recent Episodes

None

View Details

Performance reviews are often a nebulous topic. All companies do them and they can be incredibly important to growth and success, both personally and professionally. Yet they are often a bit of a black box. At Wealthfront, we believe that one of the core goals of the performance review process is to help engineers grow... Read more

View Details

Writing tests is a fundamental part of writing good software. They help us to catch bugs, be confident in our changes and serve as documentation. At Wealthfront, our Android team relies heavily on our automated test suite to maintain productivity and code quality — until we hit a snag. With our codebase maturing and our... Read more

View Details

Client-side data fetching is an essential part of the web app at Wealthfront. Traditionally, we fetched data from the Wealthfront API globally: we’d load all the data necessary for the entire page and store it in global state for components on the page to pull from. Crucially, the bulk of this data fetching logic was... Read more

View Details

A highly effective team is more than the sum of its parts because the interplay between team members’ strengths and weaknesses can be crafted into a cohesive unit. This blog post describes a management tool we use at Wealthfront to help craft an effective engineering team. The Challenge Crafting an effective engineering team is a... Read more

View Details

Wealthfront believes in providing engineers opportunities to have impact so they can grow at a pace that matches their experience. However we have observed several instances where high-performing engineers would step up into senior roles and take on new responsibilities, but then unfortunately become unhappy or unsuccessful. When transitioning into senior engineering roles an individual’s... Read more

View Details

Wealthfront is a technology company. We believe software is the key to building products that help our clients build wealth, and our relationship with technology directly determines how good we are at building this software. When engineers onboard at Wealthfront, we give them this document, our Principles of Engineering Culture. These principles describe Wealthfront’s relationship... Read more

View Details

In this blog post, we will delve into the topic of Monorepo adoption at Wealthfront. We will start by discussing the technical challenges posed by the previous tech stack and how switching to a new tech stack enabled us to modernize our web application. We will then take a closer look at the benefits of... Read more

View Details

Introduction For over a year, the Cash team at Wealthfront has been working towards a consistent transfer experience across the Wealthfront ecosystem. Before beginning this project we had a number of separate transfer flows that each had their distinct user experience. Each transfer flow was built with its own set of UI components, models, and... Read more

View Details

Universities excel at preparing students for their coming careers through foundational teaching. To complement this, Wealthfront seeks students who are motivated to gain professional experience before graduation by working as a software engineer within our 12 week summer internship program. Why intern at Wealthfront? As described in a recent blog post about the new college... Read more

View Details

Background Asynchronous programming plays a vital role in mobile development, ensuring that applications remain responsive to user input even while fetching data from databases or networks. At Wealthfront, we heavily rely on asynchronous programming for making network calls to the Wealthfront API server on Android. Initially, RxJava was the go-to choice for this purpose, serving... Read more

View Details

At Wealthfront, we’ve observed that the cost of resolving an issue becomes exponentially higher the later it is discovered. For example, a defect discovered at design time is far easier to resolve than one which has already reached our clients. And between those extremes, we can discover issues at code authoring, compilation, or automated test... Read more

View Details

As you approach the final year of your university program, you have a pivotal decision coming that will shape your career trajectory. Your first job after graduation can be the stepping stone to a fulfilling and successful journey ahead. And when it comes to propelling your career, Wealthfront is among the best places to learn,... Read more

View Details

Wealthfront’s trading system evaluates hundreds of thousands of client accounts daily for tax-loss harvesting and rebalancing opportunities, requiring high throughput to process all accounts within market hours and low latency to minimize price movement while making investment decisions. In a system with heavy database usage that has low-latency SLA’s such as ours, database queries must... Read more

View Details

Current system As part of building a multi-platform design system, the Design System team at Wealthfront revised our color system to support generating application themes from a given set of brand colors. After defining an algorithm for this, we codified it into a theme generator  script which generates output for all platforms: XML for Android, JSON... Read more

View Details

Engineers at Wealthfront emphasize iterative development and maintainability of code to build robust applications. The underpinnings of any application is its infrastructure. To build robust and scalable apps, it is a requirement to apply the same engineering principles of iteration and maintainability to create quality, underlying infrastructure. In the case of our event-tracking system, which... Read more

View Details

Wealthfront is a leading robo-advisor in the fintech domain offering investment related services to its clients. To enable rapid experimentation capability in our product, Wealthfront has overhauled the current event tracking system and moved it from on-prem to AWS cloud. Wealthfront uses event data generated by user actions on web, iOS and Android to provide... Read more

View Details

Over two years ago, the Wealthfront web team began adopting TypeScript to take advantage of the type safety and related functionality it enables. This is a common migration in the past few years across the industry since the web community mostly settled on TypeScript as the language of choice. Since then, the codebase has naturally... Read more

View Details

At Wealthfront, we are committed to automation – both in the products we build, and in how we ensure quality. In this post we’ll explore how our automated test harness enables Android developers to quickly build tests for almost any scenario. Part 1: Writing “fluent” Espresso test code Since they are designed to operate in... Read more

View Details

Over the past year, we’ve adopted more frameworks and libraries to deliver a better user experience. Our core web application is driven by a tried-and-true Ruby on Rails server that serves React apps. This serves us well, but we wanted to build richer and more performant experiences for prospective clients interested in our products. Specifically,... Read more

View Details

What is bandit testing? You’ve probably heard of A/B testing, but you may not be familiar with its alternative — bandit testing. As a reminder, an A/B test consists of one or more variants and a “control”. The control should replicate the existing experience, if applicable. Each variant will result in a different experience for... Read more

View Details

Over the past two years at Wealthfront we’ve been building a design system from the ground up across all our frontend platforms: Android, iOS, and web. If you’re a Wealthfront client you may have noticed sweeping, iterative visual changes across our apps as we introduced new components and migrated features to adopt these components. At... Read more

View Details

At Wealthfront, we pride ourselves on reliable test coverage across our codebases. However, like many engineering teams, we haven’t been able to completely eliminate flakiness from our end to end (e2e) test suites. While migrating to puppeteer certainly helped, it didn’t eliminate the problem entirely. We’ll get into what causes these flakes below, but suffice... Read more

View Details

Written by Emily Shiue and Melissa Chen The code was simple: query the third party API, if the “ModifiedAt” date returned was more recent than ours, send a notification to our clients. We had all the unit tests, integration tests, and monitoring in place. It had been running smoothly in production for months. So how... Read more

View Details

On the Wealthfront iOS team, developer productivity is a top priority. Our infrastructure engineers develop new components and APIs to enable our product engineers to ship features faster, while our product engineers are empowered to identify and eliminate toil independently. Recently, we targeted one source of toil in the development workflow by automating login within... Read more

View Details

A little over 9 months ago, Wealthfront converted 100% of our end-to-end tests from Selenium (via Capybara) to Puppeteer. The process involved converting hundreds of tests that provide coverage for just about all of Wealthfront’s product offerings on the website. This blog post will cover why we migrated away from Selenium, the process we used... Read more

View Details

If you work in the software field, chances are you’ve looked at someone’s code and said to yourself, “what the hell were they thinking?!” If you’ve worked in the software field long enough, you’ve probably said the same thing about your own code: Software production and tooling has come a long way in the past... Read more

View Details

When Google announced that Play Store apps must target SDK 30 by August, our team started investigating what it would take to meet this requirement. Now, with our migration to SDK 30 complete, we’d like to detail the changes our team made. This is not meant to be an exhaustive migration guide – but hopefully... Read more

View Details

Our mission at Wealthfront is to build a financial system that favors people, not institutions. Core to achieving this mission is our engineering-driven culture: Data-driven decisions: We use metrics and models to drive our decisions at Wealthfront. We regularly review metrics, SLAs, and SLOs to provide insight for product development and infrastructure investments. When data... Read more

View Details

At the end of 2016, external account linking played a relatively small role in the Wealthfront ecosystem. Our integration with linking vendors was for the purpose of Instant Account Verification (IAV), which enabled faster funding during the account creation process. However, when we began designing and implementing Path we realized that aggregating more data from... Read more

View Details

At Wealthfront, we have many important processes coordinated with Airflow. This includes hourly and daily ETL jobs for ingestion, Spark pipelines for computing derived information, and other batch processes like moving money to our partner banks. With an open-source project that’s actively evolving like Airflow, we’d like to be able to upgrade versions to take... Read more

View Details

At Wealthfront, testing is core to the culture of our engineering organization and business. In fact, on the iOS team, testing is woven into our development process. We host and manage our own continuous integration (CI) pipeline on Jenkins which runs our unit and UI test suites. As most iOS developers know, UI tests take... Read more

View Details

React 17 mostly focused on under the hood changes that will make it easier for consumers to gradually upgrade in the future. There were no new features and the breaking changes, in theory, affected few consumer components. While upgrading at Wealthfront was certainly more straightforward than past versions, we still had a few issues to... Read more