RSSAmplifier

Blog

inconshreveable

Alan Shreve's blog

inconshreveable.comRSS feed ↗20 posts

Latest posts

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.

Look Ma, No Ports!

Demo and talk about accepting connections without listening on a port, with open-source examples.

Becoming the Metaprogrammer: Real World Code Generation

Code generation for API clients, error handling, tests, gRPC interceptors, and ngrok examples.

grpc: From Tutorial to Production

Productionizing gRPC in Go: monitoring, balancing, errors, timeouts, and lessons from ngrok's infrastructure.

Idealized Commit Logs: Code Simplification via Program Slicing

Generating idealized commit logs using type analysis, code coverage, AST transformations, and program slicing.

Launching Equinox and the importance of software packaging

Why software packaging matters and why we built Equinox to solve it.

Your live coding demo is boring

Why writing code live on stage is a bad idea, and what to do instead.

Conceptualizing Software Systems

dotGo 2015 talk on building tools that help developers understand unfamiliar complex codebases.

The Neomonolith

A hybrid architecture that combines the best of monoliths and microservices for startups.

The making of ngrok

The origin story of ngrok: what is it, why I built it, how it works and lessons about product design and customer support.

Remotely Updating Go programs

A meetup talk on making Go applications update themselves from the Internet using go-update and equinox.io.

Sweat the small stuff

How attention to UX details in ngrok eliminated a common Windows support issue.

Principles of designing Go APIs with channels

A set of principles for using channels in public Go APIs, with examples from the standard library.

Automate away your problems: combatting illegal abuses of ngrok

How I automated the process of dealing with illegal content hosted on ngrok.

Living outside the cloud

GopherCon 2014 talk on the challenges of building and deploying software that runs on every OS and architecture.

gonative: Cross compiling Golang programs with native libraries

A tool for cross-compiling Go programs while preserving native standard library functionality.

Decentralizing the Web (again)

A talk on how ngrok and similar tools can help rebalance the internet by lowering barriers for users behind NATs and firewalls.

Code at 30,000 feet

Why airplanes are actually the perfect environment for productive programming.

ngrok tunnels: better, faster, stronger

Major improvements to ngrok including multiple tunnels, faster connections, and HTTPS for everyone.

Building Ratequeue

A talk on building a fast, distributed, fault-tolerant task queue at Twilio using Redis Lua scripts.