Protobufs backward and forward
Protobufs are designed to support forward and backward compatibility, but that doesn’t mean you can’t get it wrong. One issue we ran into recently involved adding a new value to an enum. The protobuf code “worked” in the sense that it did not blow up, but our code that used the data failed. Since at… Read more
Born Small… Now Huge… Winning… Bring it..!
Made a wallpaper in honor of my new favorite tweeter… Charlie Sheen. Hope you guys like it. Winning!
Encrypting using gpg from Java
Recently, we worked with a third-party that had trouble reading files encrypted using the Bouncy Castle’s OpenPGP implementation. We ended up deciding to rely directly on the GNU Privacy Guard’s OpenPGP implementation. As I didn’t find any working example on the web, I figured that the following piece of code might end up being useful… Read more
Continuous Deployment for Data, Not Just Services
Last week, I made a mistake which caused some pages of our website to be unavailable for several minutes. I was developing a new feature that allows our customers to see how the money managers of our platform have been sticking to their investing strategy in the past, which we consider a key ingredient in… Read more
Bulletproof Rails Asset Caching
We’ve been using Rails at Wealthfront for nearly two years and we love it, but there’s no denying that, out of the box, Rails asset caching is broken. Below we’ll identify the problems, define requirements for a successful strategy, and then describe how we meet those requirements at Wealthfront. Background For the uninitiated, the term… Read more
Write Internal Tools: Business in the Front, Party in the Back
If you find yourself fortunate to work for a company that values your time as a commodity too precious for repetitive and boring tasks (see #6 of wealthfront’s values), then your team will hopefully dedicate significant time not only on the great features you offer your customers, but also on developing the tools that help… Read more