Menu

Kevin Johnstone

Reflective Metatesting. Protecting You from Yourself and Everybody Else.

Infrastructure projects often take user-defined configuration classes as input. I’ve worked on several during my tenure at Wealthfront. You cannot trust the validity of these configurations, even if you wrote them yourself. A pattern I’ve grown to love is writing JUnit tests that use reflection to gather all the input classes to run a suite […]

November 16, 2016

Tao Qian

Enforce REST API Standard with Swagger

At Wealthfront, we have an API server which exposes a REST API that’s consumed by our iOS and Android apps. Recently we decided to migrate our web frontend to use the REST API because we believe it would be beneficial to have all of our frontends sharing a single data source. We identified a few […]

August 31, 2016

Luke Hansen

Connecting to an FTPS Server with SSL Session Reuse in Java 7 and 8

“Good programmers write good code… Great programmers reuse great code.”  Or so I told myself as I snagged an Apache Commons class to connect to a new vendor’s FTPS server.  Several hours of debugging later, however, I realized to my dismay that the omnipotent Apache Commons did not support a major security feature required by most modern FTPS servers.  This post outlines my process […]

June 10, 2016
Sen Yu
Sen Yu

How to Make Your Persistent Queues Run Faster Safely

What is a Persistent Queue? A persistent queue is a list of objects that persist in the database waiting to be polled and processed in some way. Usually it is a table that has columns for data, timestamp of when the object persisted, and timestamp of when the object is polled. As opposed to an […]

May 04, 2016
Josh Toft
Josh Toft

Identifying Non-Heap Class Leaks

At Wealthfront, a significant portion of our backend applications are written in Java. The Java Virtual Machine (JVM) uses Garbage Collection (GC) for memory management, this forces us to pay close attention to its characteristics and behavior. Every JVM service we run accumulates JVM and application-level statistics, spools these metrics into a statsd server, and […]

April 18, 2016
Kevin Peterson
Kevin Peterson

Pattern matching in Java with the Visitor pattern

I once read an essay—I cannot find it now—that talked about how learning a more advanced programming language can improve your coding even in a language that lacks those features because those language features are really ways of thinking, and there’s no reason you cannot think in terms of more powerful abstractions just because you […]

February 11, 2015