Tagged in automation :
XcodeGen and the quest to modularize the Wealthfront iOS app
Every iOS application starts as a monolith. Xcode’s default project structure places all source files, resources, and build configuration into a single module (or target, for all the iOS devs reading this). For small apps, this works fine. For a 10+ year old financial application with roughly 2,000 Swift and a handful of Objective-C files,… Read more
Automating Exhaustive Branch Coverage for Sealed Types in Kotlin
We take code correctness and code quality seriously at Wealthfront. One of the most effective ways we ensure that our code is correct is through rigorous unit testing and strong typing. In Kotlin, sealed classes and sealed interfaces offer a powerful tool to model restricted class hierarchies. They provide strong guarantees about the types in… Read more
Shipping Containers: How We Built an Easy to Use Jenkins Pipeline for ECR
The DevOps team at Wealthfront has been in the process of migrating services to run inside containers. As part of this process we need a way to build containers using our CI/CD tool, Jenkins. While we could write a Jenkinsfile for each container image we wanted to build, we identified this was a good opportunity… Read more
Speed up your Android Tests Part 2: End to End Test Filtering
End to end (E2E) tests play a crucial role in ensuring software quality and when implemented effectively, can eliminate the need for manual testing (see our engineering principles). However E2E tests are notoriously slow since they often involve navigating through multiple screens, making API calls, and running on real devices. In our previous blog post,… Read more
In a Snap! Turbo-charging Our Database Backups
Backing up data is a lot like insurance—we set it up, forget about it, and then panic when we need it most. A weak backup and restore strategy can turn a stressful situation into a disaster. In recent years, we started noticing some weak points in our own backup strategy and knew it was time… Read more
From Overnight to Over Lunch: Moving Terabytes of Data At 10 Gigabits per Second
How do you quickly move over 160TB of data between AWS and physical data centers? Is it a good idea to store database backups in the cloud? Today we’re going to explore how the Wealthfront DevOps team was able to reduce a multi-day database restore process to a handful of hours using open source tooling…. Read more