No Downtime Database Schema Changes
Maintaining database compatibility while deploying north of 30 times a day often raises a slew of questions during our tech talks. In this post, we will cover backward and forward compatible database schema changes. We will survey specific classes of change and describe how they enable no downtime rollouts. For formalists out there, we are… Read more
Type Safe Bit Fields Using Higher-Kinded Polymorphism
Refering to securities, such as stocks or bonds, is far from standard. We all know Apple’s ticker AAPL; But what about the Oracle of Omaha’s company Berkshire Hathaway? Google says BRKA, Yahoo! BRK-A, Bloomberg BRK/A and Reuters BRKa. Due to these oddities, every serious automated trading system like kaChing’s has at its core a powerful… Read more
Lean Startup TGIF at kaChing
kaChing is hosting a TGIF on August 13th to gather smart people doing hard stuff around wine and cheese. We’ll talk about software architecture, test-driven development, continuous deployment and what not. Few invitations left, contact us if you’re interested!
How to Get a Job at Wealthfront
Getting a job at Wealthfront is not easy, but we would like to help. When approaching Wealthfront, first try to contact through a friend of a friend (LinkedIn is a great way). If you can’t find a connection, contact us then directly via our jobs at Wealthfront mail. Your resume and cover letter in a… Read more
I Can Has Invariant Mapz?
If I had to pick one of the major source of bugs in large refactorings I recently went through, it would probably be the bunch of methods in the java.util.Map interface which are contravariant on the key type. For instance, one can retrieve an element from a map using a supertype of its key type… Read more
We Need More Than One; Why Programming Languages Matter
When we started kaChing’s architecture, one core design principle was set in stone: our systems would be language neutral. We strive to combine the best ideas from all languages and employ a good number of them on a day-to-day basis (Java, Scala, Ruby, Python, bash, Clojure, Erlang and so on). We use simple data formats… Read more