A 10-Year Retrospective on Building an Infrastructure Start-up in Go
A retrospective on building ngrok and an infrastructure startup in Go over a decade.
Alan Shreve's blog
A retrospective on building ngrok and an infrastructure startup in Go over a decade.
Demo and talk about accepting connections without listening on a port, with open-source examples.
Code generation for API clients, error handling, tests, gRPC interceptors, and ngrok examples.
Productionizing gRPC in Go: monitoring, balancing, errors, timeouts, and lessons from ngrok's infrastructure.
Generating idealized commit logs using type analysis, code coverage, AST transformations, and program slicing.
Why software packaging matters and why we built Equinox to solve it.
Why writing code live on stage is a bad idea, and what to do instead.
dotGo 2015 talk on building tools that help developers understand unfamiliar complex codebases.
A hybrid architecture that combines the best of monoliths and microservices for startups.
The origin story of ngrok: what is it, why I built it, how it works and lessons about product design and customer support.
A meetup talk on making Go applications update themselves from the Internet using go-update and equinox.io.
How attention to UX details in ngrok eliminated a common Windows support issue.
A set of principles for using channels in public Go APIs, with examples from the standard library.
How I automated the process of dealing with illegal content hosted on ngrok.
GopherCon 2014 talk on the challenges of building and deploying software that runs on every OS and architecture.
A tool for cross-compiling Go programs while preserving native standard library functionality.
A talk on how ngrok and similar tools can help rebalance the internet by lowering barriers for users behind NATs and firewalls.
Why airplanes are actually the perfect environment for productive programming.
Major improvements to ngrok including multiple tunnels, faster connections, and HTTPS for everyone.
A talk on building a fast, distributed, fault-tolerant task queue at Twilio using Redis Lua scripts.