All blogs / Software / engineering practice
Engineering Blog
Software / engineering practiceDevOps / SRE / infrastructureTesting / QAMobile / iOS / AndroidDatabasesEngineering blogs
- Posts
- 324 from 11 Oct 2009 to 5 Oct 2026
- Posting
- monthly (12 in the last year)
- Kind
- company blog
- Feed
- https://eng.wealthfront.com/feed/
2026 9
- Unsupervised Topic Discovery with Text Embeddings
- Optimizing Redshift Write Patterns: Tackling Tombstones and Ghost Rows
- Experiments with AI Code Review
- 7 Words, 7 Journeys: The Wealthfront New College Grad Experience
- Tuning Android build nodes for maximum throughput
- Putting the Tech in Fintech: How We Use FIX to Execute Trades at Scale
- How we standardized MariaDB in our Integration Server
- XcodeGen and the quest to modularize the Wealthfront iOS app
- New Leaders, New Perspectives: Why We Joined Wealthfront Engineering
2025 14
- The Hidden Cost of Convenience: Rethinking Old ORM Patterns for Scale
- Automating Exhaustive Branch Coverage for Sealed Types in Kotlin
- ValidUntil: Ensuring compile-time data integrity in our investing system
- Shipping Containers: How We Built an Easy to Use Jenkins Pipeline for ECR
- Going Edge-to-Edge: How Android SDK 35 Modernizes the Wealthfront App
- How I Wrote Code That Allocates Cash Account Interest Daily as a Wealthfront Intern
- Speed up your Android Tests Part 2: End to End Test Filtering
- How We Standardized Our Lambda Deployments
- Unlocking Your Potential: Join the New College Graduate Class at Wealthfront and Set Your Career on a Thriving Path!
- In a Snap! Turbo-charging Our Database Backups
- H2 Framework: How We Test Our Automated Investing Infrastructure
- Our Journey to Building a Scalable SQL Testing Library for Athena
- How 40 Lines of Code Sped Up iOS End to End Tests by over 50%
- From Overnight to Over Lunch: Moving Terabytes of Data At 10 Gigabits per Second
2024 7
- How we updated our Performance Review process to help engineers grow
- Speed Up Your Android Tests: Gradle Plugin for Unit Test Filtering
- Revamping Data Fetching Patterns on the Web Platform
- Team Crafting using a Team Depth Chart
- Senior Engineer Archetypes
- Principles of Engineering Culture at Wealthfront
- Navigating the Monorepo Tooling Landscape:Wealthfront’s Journey
2023 6
- Unifying Wealthfront’s Transfer Flows: An iOS Engineering Journey
- The Wealthfront Engineering Intern Program: not all internships are built the same…
- Streamlining Asynchronous Programming on Android
- Creating Android Lint Checks: A Survival Guide
- Optimizing Multi-table SQL Queries
- Creating Wealthfront Android Design System Resources Package
2022 8
- Implementing Event Tracking Infra with CDK
- Event Tracking System at Wealthfront
- Migrating the Wealthfront web app to TypeScript
- Designing a harness for readable, thorough Android tests
- Evolving Wealthfront’s Web tech stack
- How Bandit Testing Improves A/B Tests at Wealthfront
- Building Wealthfront’s multi-platform design system
- Retrying e2e test suites with Jest
2021 10
- Automating Data Quality Checks on External Data
- One-click Developer Login
- Migrating from Capybara to Puppeteer
- Refactoring Production Code
- Targeting Android SDK 30
- The Engineering Interview at Wealthfront
- Our Journey to a Generic Linking Platform
- Rolling Back an Airflow Upgrade
- Halving iOS Test Time with Partitioning in Jenkins Pipelines
- Upgrading to React 17: How to Fix the Issues and Breaking Changes
2020 7
- Espresso-friendly Bottom Sheet interactions
- Streamline development with Custom DevTools
- Building a truly accessible clickable div
- Visual Regression Testing on Android
- Android App Modularization at Wealthfront (Part 3)
- Android App Modularization at Wealthfront (Part 2)
- Android App Modularization at Wealthfront (Part 1)
2019 2
2018 6
2017 11
- Graceful Degradation in Spark Streaming Applications
- Testing D3 Transitions
- D3: You’re amazing just the way you are
- Reflecting on my summer internship at Wealthfront
- Building a Distributed Work Queue with MySQL and RabbitMQ
- A Wealthfront ACATS Odyssey
- Hey do you have the time?
- Tradeoffs in AB Testing Frameworks
- Scaling Beyond MySQL
- Introducing Our New Operating System
- Integrating D3 into React
2016 16
- A specific trick and a general habit for achieving fast computations
- Reflective Metatesting. Protecting You from Yourself and Everybody Else.
- Handling unhandledrejections in Node and the Browser
- Checkstyle at Wealthfront
- The Perils of Accidental Global Includes in Ruby
- How we use Mocha and jsdom with CoderPad for Frontend interviews
- Enforce REST API Standard with Swagger
- Consistent Test Setup Across Multiple Packages
- Intelligent Metrics Monitoring
- Tips for Unit Testing D3
- Integrating Apache Spark into your existing Hadoop system – Part I
- Connecting to an FTPS Server with SSL Session Reuse in Java 7 and 8
- How to Make Your Persistent Queues Run Faster Safely
- Identifying Non-Heap Class Leaks
- Building Mobile A/B Testing Infrastructure
- Build System Integration Testing with Chef
2015 13
- 3 Ways to Integrate Third-Party Metrics into Your Data Platform
- How We Avoid A/B Testing Errors with Shrinkage
- Testing JavaScript Modules
- Advice for the Transition from College to Industry
- Why We Use Bayesian Inference
- Unit Testing for Sass with Sassaby
- Testing with Optical Character Recognition (OCR)
- Performant CSS Animations: Netflix Case Study
- An Introduction to CommonJS
- Performant CSS Animations
- Similarities of Disruptive Companies
- Pattern matching in Java with the Visitor pattern
- WF-CRAN: R Package Management at Wealthfront
2014 26
- Security Notice on POODLE / CVE-2014-3513 / CVE-2014-3567
- Touch ID for Wealthfront App
- Security Notice on Shellshock / CVE-2014-6271 / CVE-2014-7169
- Small Files, Big Problem
- The Unanticipated Intern Experience
- iOS UI Testing
- Building and Testing a Custom UIDatePicker
- Summer Spent Learning and Experimenting
- Learning from Leaders
- Lessons Learned when Scaling our Data Analytics Platform
- Statistics Is Eating the World
- The Case for Object-Oriented JavaScript
- Writing JavaScript Tests for Asynchronous Events with Deferreds
- My Internship with Wealthfront
- Joining Wealthfront as a DevOps New Grad
- Security Notice on CCS / CVE-2014-0224
- My First Weeks at Wealthfront
- Marketside chats #5: Market making
- Automating JavaScript Code Quality Checks
- Security Notice on Heartbleed / CVE-2014-0160
- Tracking Down a Crash in iOS
- Unit testing -drawRect:
- Nuke the NPE in Java
- iOS Development at Wealthfront
- Marketside Chats #4: Costs of replicating an S&P 500 portfolio
- Career Planning for New Grad and Young Engineers
2013 29
- Marketside chats #3: More options for non-dummies
- Configuration… Hardcode it!
- How To Find a Great Engineering Culture
- DevOps at Wealthfront
- Worlds Collide
- Two Hour Change Leads to Three More Years.
- Wealthfront hosts October’s Femgineer Forum
- Engineering Display Hack Day
- Testing Cascading applications
- Marketside chats #2: Options for non-dummies
- Pushing a Feature On My First Day
- Mocking Java enums with jMock is both trivial and impossible
- Building your street cred — A career forum for women in tech hosted by Wealthfront
- Joining Wealthfront as a new college graduate
- Marketside chats #1: market vs limit orders
- Functional CSS (FCSS)
- ActiveJsonEntity and ActiveRecord’s shared DNA
- ActiveJsonEntity: Bridging the gap between Rails and Java
- Move cash faster
- The first week at Wealthfront
- I can haz lambda on Java 7?
- Reactive Charts with D3 and Reactive.js
- A “Reactive” 3D Game Engine in Excel?
- Reactive.js: Functional Reactive Programming in Javascript
- Not too late to sign up for Odersky’s Scala Coursera class
- Continuous Deployment: API Compatibility Verification
- Tame long tab titles with dynamically CSS-only scrolling
- Webkit’s -webkit-font-smoothing can make you fat
- My First Day
2012 19
- Quick-n-dirty: Font Awesome icon search utility
- Using Underscore.js’s debounce() to filter double-clicks
- jQuery.Deferred is the most important client-side tool you have
- On the humanity of mathematical models
- Hurricane Sandy puts YAGNI to the test
- Developing a Portfolio Backtester in R
- Building the Startup Compensation Visualization
- Explore Your Multivariate Data with Crossfilter
- Do They Really, Really Like You?
- Belt and Suspenders: Safety and Trust in a Distributed System
- Get thee to a nullery: self-aware nulls for testing
- Rating The April Fools’ Day Shenanigans
- Scrolling the Z-axis with CSS 3D Transforms
- Interesting Reads
- Taco Friday
- Boots-n-Cats: Every Techno Song Ever In Clojure
- Interesting Reads
- Visualize Facebook’s IPO prospectus
- Moneyball: Using Modern Portfolio Theory To Win Your Fantasy Sports League
2011 36
- Converting dynamic SVG to PNG with node.js, d3 and Imagemagick
- Our CEO Andy Rachleff talks about VC, entrepreneurship and Wealthfront at Dec 8th 7pm in SF Stanford Alum Club
- Beyond Java’s Access Control: the Visibility Test
- Interesting Reads
- Deploying With a Phone Call: Speech Recognition in a Java backend
- Siri for Continuous Deployment
- Happy Birthday, Wealthfront!
- Type safe JQuery with ST-JS
- Tools for Debugging Distributed Systems
- Beyond Agile: Continuous Deployment Panel
- Watch my dev2ops video about Wealthfront’s engineering
- When all else fails, check the documentation
- Slides for my DevOps Talk at Box.net
- Dealing with Missing Data on the Frontend
- Ode to Textual Identifiers
- Lean Startup Stage At SXSW
- Taking corrective action with git’s commit hooks
- See us at Cloud Connect 2011 – Workshop on Continuous Delivery
- What’s your stock portfolio return?
- Protobufs backward and forward
- Born Small… Now Huge… Winning… Bring it..!
- Encrypting using gpg from Java
- Continuous Deployment for Data, Not Just Services
- Bulletproof Rails Asset Caching
- Write Internal Tools: Business in the Front, Party in the Back
- Video Recording & Slides: Psychology of Testing by Misko Hevery
- Why Culture is Key
- Wealthfront Lean Startup talks: Why Fighter Pilots Run Startups by Steve Blank
- Test-driving your Javascript for fun and profit
- Quantifying Investing Skill: The Information Ratio
- The Amazing FunctionMap!
- Ruby Modules
- Don’t block our alleyway! But if you do…
- The Psychology of Testing by Miško Hevery (Jan. 18, Palo Alto)
- Cluster portfolios using return correlation
- Business up front, party in the back
2010 86
- Lean Startup for Geeks at Wealthfront: Miško Hevery on the Psychology of Testing
- Fun puzzle from Cryptography Research
- Using Cumulative Sums to Analyze Financial Data
- Factory > Fixtures
- Expressive Java & Fluent Interfaces
- Using Monadic Rainbow Tables for Eventually Consistent Higher-Order Types
- IRC bots for Laziness, Impatience, and Continuous Deployment
- Trust, but Remind
- When Canvas doesn’t cut it: Raphael.js
- Circular dependencies between entities
- Arrhythmia.js, a new take on rhythm validation
- dev2ops Video Q&A: Continuous Deployment requires great testing
- Continuous Deployment talk at Yahoo! Large Scale Production Engineering (LPSE)
- GUI Testing, Without The Gooey Parts
- Monitoring Long Running MySQL Queries with Nagios
- Less IO for your Unit Tests with a Java SecurityManager
- Computation: “There is no try”
- If you ever write a varags method…
- Evolve or die: Start-ups and “Dealing with Darwin”
- A Fix-It Day with Cyclomatic Complexity
- Stop wasting people’s time!
- Migrating a Hibernate Bag to a Hibernate List
- Experience of serializing financial domain objects in database
- Relaxing visibilities using Javassist
- Live Broadcast for Lean Startup for Geeks at Wealthfront with Eric Ries
- Wealthfront track at the Silicon Valley Code Camp
- jQuery the Right Way
- Agile, test-driven development in… MATLAB?
- Lean Startup for Geeks at kaChing with Eric Ries
- Practical Scala/Java interoperability by small examples
- When Garbage Collection is Failure
- Keeping the trunk stable
- DevOps Cafe on Continuous Deployment and Operations Dashboards at kaChing
- Models, they make everything look good
- Type inference puzzler
- Creating TypeLiterals in Scala
- Had a great Lean Startup TGIF at kaChing
- August Coolness
- No Downtime Database Schema Changes
- Type Safe Bit Fields Using Higher-Kinded Polymorphism
- Lean Startup TGIF at kaChing
- How to Get a Job at Wealthfront
- I Can Has Invariant Mapz?
- We Need More Than One; Why Programming Languages Matter
- Prezi on Continuous Deployment at kaChing
- Elsewhere: Next Generation Java Programming Style
- Oakland eBIG hosting kaChing to talk about Continuous Deployment
- SiliconValley CodeCamp 2010
- Murder Your Darlings
- Mimicking Abstract Classes with Objective-C
- Happy 30,000 Commits, kaChing
- Iterate Like a Whirling Dervish
- Scala on Eclipse without the plugin
- Guice tricks for better testability, part one
- Lean Startup Circle: Iterate Like a Whirling Dervish
- Financial instrument reference data validation
- Applied Lean Startup Ideas: Continuous Deployment at kaChing; Video!
- Just-in-time Providers for Guice
- Autonomy, Mastery and Purpose
- jQuery.data(): underappreciated
- Applied Lean Startup Ideas: Continuous Deployment at kaChing; Slides!
- Hosting Stanford’s Palo Alto Bike Tour
- Extreme Testing at kaChing
- SAM SIG: Applied Lean Startup Ideas: Continuous Deployment at kaChing
- MySQL and CSV to Python Objects (Made Easy)
- Opera takes the cake
- Instantiators, a Data Driven IoC
- A Better Option for Java
- Entities and Values
- Deployment Infrastructure for Continuous Deployment
- Use a Before Method in Your Tests
- Findbugs, Hudson and Pizza Driven Development (PDD)
- iPad stand FTW
- Testing with Hibernate
- Sometimes you need a little help from your friends
- Konami kaChing
- Z-Index and Local Stacking Contexts
- Ids and Ambiguous Method Parameters
- Parallelizing JUnit test runs
- select product(value) from mytable
- Voldemort in the Wild
- Amusing log message
- Complement TDD with MDA
- Actually Implementing Group Management Using ZooKeeper
- Flexible Log Monitoring with Scribe, Esper, and Nagios
- Subversion Backup
2009 19
- Attaching a Java debugger to the Scala REPL
- Baking availability SLA into the code
- emptyList(), emptySet(), emptyMap()
- Roasted Butternut Squash Soup
- Parsing Java annotations
- The Crunchie award
- Closure Compiler: Type Checking JavaScript, an overview
- Magic with shell
- Closure Compiler: Checking Types
- iPhone Authentication with Facebook Connect
- Wanted: Software Engineer
- MySQL Unicode Escape Sequences
- Easy to get burned by Hibernate
- New kaChing is live! time to invest like a Genius
- TGIF at A.G. Ferrari Foods
- Unifying Type Parameters in Java
- Speeding up with Voldemort and Protobuf
- Looking for a passionate Systems Engineer !
- First post