npm Blog (Archive)

The npm blog has been discontinued.

Updates from the npm team are now published on the GitHub Blog and the GitHub Changelog.

npm Convos: Capital One

Q. Hi! Can you state your name, what you do, and/or what your company does?

A. My name is Joe Hanley, and I am a full-stack software engineer at Capital One. We’re a bank, a credit card company, and a financial services provider, but we like to think of ourselves as a data and technology company at heart. I work in our San Francisco office on an internal tool that we use to track our interactions with other companies.

How’s your day going?

My day is going great so far! I just got into the office an hour ago and started working on a bug we discovered yesterday. I’m pretty excited to finish that up and get the fix into production, since afterwards I’ll get to work on some super cool pilot work for Amazon Neptune.

Tell me the story of npm at your company. What specific problem did you have that npm solved?

npm is in use all over Capital One! A quick search of our private Github shows over 9000 package.json files at the root level of a repo. My current team uses npm as our package manager for every component our project — our Angular front end, our orchestration layer, our Node.js backend, our NativeScript mobile app, and all of our Lambda microservices. We love npm for a few reasons. 

First, using package-lock lets us ensure that all of our team members  are working off the same version of each package, so we don’t run into unexpected compatibility issues. 

Second, since we use npm on all of our projects, it is super easy for new team members to get each of components running locally. Once they’ve gotten one component set up and working, the rest are simple to run. Third (and maybe most importantly), npm works well with our enterprise environment. It works with our corporate proxy and we can easily switch it between our private registry and the public one as needed.

To people who are unsure what they could use npm for — how would you explain the use case?

npm is great for any JavaScript based project where you want to use external packages in your code. We use it for all sorts of front end web projects, Node.js APIs, and cross-compiling mobile apps. It also great if you want to let other developers use your code in their own projects.

How’s the day to day experience of using npm?

My day to day experience with npm is very positive. I very rarely have issues with it, even when switching versions using nvm. One part of the experience that I really like is how easy it is to find new packages. Often, I’ll start Googling for a solution to a problem that’s facing me, and the first result will be a npm registry page for a package that does exactly what I need!

Would you recommend that another org or company use npm and why?

Absolutely. npm does exactly what you need a package manager to, and it does it without much friction. Additionally, it is widely known among web developers, so many new hires will already be super comfortable with it. Finally, it is flexible enough to accommodate most security requirements — as a bank, Capital One has super stringent security needs, and we are able to fit npm into our ecosystem easily.

Any cool npm stuff your company has done publicly that you’d like to promote?

Capital One has started open sourcing a bunch of the tools that we’ve developed while running a modern, technology focused banking and credit card company, and a ton of them are built using npm. Check them out here.