Skip to main content

To lock or not to lock

· 7 min read
Justin Beckwith
Director of Engineering @ Discord

Package Lock Files

A few years ago, npm introduced the notion of a package-lock.json. The purpose of the file is to provide a manifest that calls out the exact version of every package in your tree, the last time npm install was run. After running npm install, you're going to see a message like this:

npm notice created a lockfile as package-lock.json. You should commit this file.

Analyzing node.js on GitHub with BigQuery

· 6 min read
Justin Beckwith
Director of Engineering @ Discord

BigQuery + GitHub awesomeness

As someone who works on developer tooling - GitHub is the holy grail of data sets. There's just so much code out there, written by so many people, for so many reasons. I've often wished I could just clone all of the data on GitHub, and then write scripts to process the data for various reasons:

  • What are the top 1k npm modules used with Node.js apps? We want to know this so we can test them with App Engine.

Dependency management and Go

· 12 min read
Justin Beckwith
Director of Engineering @ Discord

I find dependency management and package managers interesting. Each language has its own package manager, and each one has characteristics that are specific to that community. NuGet for .NET has great tooling and Visual Studio support, since that's important to the .NET developer audience. NPM has a super flexible model, and great command line tools.

In a lot of ways, golang is a little quirky. And that's awesome. However - I've really struggled to wrap my head around dependency management in Go.

"Dependency management and golang"

Docker, Revel, and App Engine

· 6 min read
Justin Beckwith
Director of Engineering @ Discord

"Revel running on Google App Engine with Docker"

note: I recently updated this post to make sure all of the commands still work.

I've spent some time recently using the Go programming language for my side web projects. The Go standard libraries are minimal by design - meaning it doesn't come with a prescriptive web framework out of the box. The good news is that there are a ton of options: