Dragons in the Algorithm
Adventures in Programming
by Michael Chermside

Author: mcherm

Culture of Reuse - Part 2: Capital One and Innovation

Part 2 of a 4-part essay

For the past several years I have worked at Capital One, which is one of the larger financial institutions in the US. As an organization, it lies somewhere between being a bank and being a tech company. And Capital One is really good at technological innovation.

Capital One; Many Languages

Unlike some corporate workplaces, developers at Capital One are given a fair amount of freedom to experiment with new technologies. As an example, I have seen code written in Javascript, Java, Python, Go, Scala, PL/SQL, PHP, Perl, R, Mumps, and I'm sure there are lots that I haven't seen. We enthusiastically support the use of (and sometimes contribution to) open source projects. Developers who lead the charge in creating a new system or framework tend to get rewarded -- promoted even.

One result of this commitment is that Capital One is a great place to work for people who are dedicated to coding and innovating in software. Another result is that Capital One tends to be quick to discover new tools or new ways of working and also is very good at moving to a new technology when it becomes available. As an illustration, we were (so far as I know) the first bank to publicly experiment with running systems "in the cloud" instead of in our own data centers. We rapidly figured out how to do that while still securing data well and monitoring and controlling the systems. We were able to show that it allowed develop faster and to deploy auto-scaling systems in a way that had never been possible before. And then, in the space of about 2 years, we moved more-or-less EVERYTHING in the entire company into the cloud. If you've never worked in a large, regulated industry you may not realize just how big an accomplishment that is, but believe me: in most similar companies it would take 10-15 years with significant executive support, and might NEVER happen without.

But that culture of innovation has its downsides. Innovation is something we do well and something we value. So everyone wants to innovate. The last time I counted, we had 5 different systems for uploading files to a website. We have at least 3 entire frameworks for web application development that were built in-house, and several open source and proprietary frameworks that are also used. We have at LEAST 12 different systems where we store customer data -- probably many more than that. Yes, largely *because* we value innovation so highly, Capital One is not especially good at reuse.

[Back to part 1] Part 2 coming soon...

Posted Tue 29 May 2018 by mcherm in Software Development

Confluence Fix

Just a note for myself for the NEXT time this happens.

If Confluence starts returning an error saying "400 Bad Request - Request Header Or Cookie Too Large" then the cause is that something has gotten borked with the cookie that the browser has for Confluence. The fix is to delete …

Read more

Posted Mon 09 April 2018 by mcherm in Programming

Image Search by License

Image Search by License

Question: So I want to make a logo for my friend's company. Am I allowed to use cliparts from google to add or make the logo? Or do I have to make everything from scratch?

My Answer: There are a few different laws you might have …

Read more

Posted Tue 13 February 2018 by mcherm in Law

Depending on Someone Else's Code

Depending on Someone Else's Code

We had an interesting problem arise the other day, a problem about code dependency. Our problem was in no way unique, so it seemed worthwhile to write out the problem and our proposed solution.

The problem

The core of the problem is that we need …

Read more

Posted Sun 28 January 2018 by mcherm in Programming