I was scrolling my Facebook feed on a lazy Saturday when... boom! I saw that one of my acquaintances had quit his job at one of the Silicon Valley darlings. This company prided itself on creating a revolution in their niche, and raised hundreds of millions of dollars and employed hundreds of people all over the world.
What went wrong?
I eventually found out that my friends was fed up, the company wouldn't allow him to contribute to open source. Wow. Even in Silicon Valley.
It made me think about how lucky we are at Capital One when it comes to open source. When you think of a financial institution or a bank, transparency and open source software might not be the first thing that you think of, especially with recent scandals. And for many years, the financial sector has used mostly closed source, proprietary software. This was the case for a variety of reasons, including lack of trust in open source software, the need for SLA support, regulations, and to protect intellectual property.
Yet, over the past decade, more and more companies—including those in the financial sector—have learned that open source software is often more reliable and secure than closed source.
Open source projects
Not long after Capital One formalized guidelines for using open source software, our engineers started contributing patches to some of the open source solutions they use.
Then at OSCON 2015, Capital One released its first open source project, Hygieia. Hygieia is a DevOps dashboard with a configurable real-time web interface. It's designed to help DevOps engineers gather various stats from different sources and is especially useful in complex environments. The project already has hundreds stars and forks on GitHub.
After Hygieia, at AWS Summit 2016, Capital One announced an open source policy rules engine for AWS management called Cloud Custodian. It helps manage a large number of cloud instances.
Since Cloud Custodian, Capital One has launched three open source API reference applications in DevExchange: SwiftID, Rewards, and Credit Offers. SwiftID replaces costly and time-consuming security questions—like What school did you go to? What car did you own?—with easy-to-integrate two-factor authentication. The other two API services, Rewards and Credit Offers, provide information about rewards (miles, points, cash) and credit card offers. At Behind the Scenes at DevExchange, Capital One engineers explained why the bank decided to go all-in with a public API.
This year, Capital One announced we are working on these five open source projects:
- Hydrograph: A developer-friendly visual tool (UI) to help to develop, deploy, and manage ETL jobs in the Big Data ecosystem.
- Card imaging project: An open, distributed, cloud and microservices-based document management application that delivers complete insight into real-time customer data.
- Payments processing platform: An open, distributed computing transactions management platform providing guaranteed delivery and processing of inbound payments.
- SWHttpTrafficRecorder: A tool that allows developers to record HTTP traffic for easier testing and debugging.
- Ops-pipeline: A tool that provides templates for automating the production and consumption of images and containers.
I'm a Node.js expert and enthusiastic champion. Here's a presentation I gave at Node Interactive 2015:
- implementing APIs and microservices (mostly orchestration ones) to talk with our main APIs;
- building front-end assets, testing, and automating deployment;
- API mocking, especially for front-end development (we are an Angular shop);
- creating internal business intelligence tools such as dashboards, monitoring services, and analytics;
- and building prototypes.
Node-based inner or open source projects built by Capital One associates include:
- OneUI: An internal UI library for Angular that gives Capital One apps a consistent look and feel (think Twitter Bootstrap only as Angular directives, not just CSS and jQuery).
- generator-angular-enterprise: A tool that teaches Angular best practices while scaffolding code, tests, and documentation.
- mongoui: An admin interface for MongoDB.
- Nessie: A hackathon-oriented service for Capital One API.
The future of open source at Capital One
Our goal is to think of Capital One as a technology company focused on banking. We want to encourage the use of open source software and bring ingenuity to banking. For us, the benefits of open source are obvious: lower costs, strong community support, better quality, and more reliability.
Currently, we are open sourcing our own projects, and making contributions to the libraries we use and love. Our Open Source Office (OSO) has 13 projects in the pipeline.
We also have experienced open source leadership. Former president and founder of the Apache Software Foundation Jim Jagielski is in our Technology Fellows program, and Jared Smith joined as our new Open Source Community Manager this year. Jared has a long history of involvement with many open source projects, including serving as head of the Fedora Project, and his role includes interfacing with external open source communities and helping shepherd internal projects through the open sourcing process.
Our process for submitting patches and pull requests is fairly straightforward because we want to encourage more contributions to open source as we go forward. The company lets developers contribute to open source using company time and equipment, with the OSO providing the necessary education and review process. Our associates have contributed to many open source projects, including:
- Apache Spark
- Apache Hadoop
- Apache Hadoop YARN
Our contributions to open source aren't limited to just code. Two of our Apache Spark core contributors, Brennon York and Ilya Ganelin, wrote a book titled Spark: Big Data Cluster Computing in Production. And, I'm working on my new book called React Quickly. Other tech authors at the company include Steve Lott and Jacqueline Kazil.
How is your organization contributing to open source projects? Send us your story proposal.