Insightful articles and examples to help you become a better software developer
-
Turning the database inside-out with Apache Samza
-
Designing an email-only Slack interface
-
Education of a Programmer
-
The Yoda of Silicon Valley
-
Keep Ruby Weird 2018 - Closing Keynote by Avdi Grimm
-
Maybe Not - Rich Hickey
-
Stack Overflow: How We Do Monitoring - 2018 Edition
-
Distributed Systems and the End of the API
-
Design for security
-
Post-mortems to the rescue
-
Lone Star RubyConf 2009 - Something Interesting by Dave Thomas
-
Indirection Is Not Abstraction
-
Against software development
-
Lean Testing or Why Unit Tests are Worse than You Think
-
Open Source Language Design in Rust and Node.js by Ashley Williams
-
Sam Aaron - Communicative Programming
-
Systems at Scale 2018 – Rebuilding the Inbox: The Corporate and Cultural Adventures of Modernizing Yahoo Mail
-
Documenting Architecture Decisions
-
The Power of Living Systems
-
Mike Bostock - Design is a Search Problem
-
Only One Deliverable Matters
-
Writing system software: code comments.
-
Apathy of the Commons
-
Hammock Driven Development - Rich Hickey
-
Building a team: Agile!
-
Good, Cheap, and Fast - PC3
-
We shouldn't let people get used to the idea that software fails
-
Unconditional Code - Michael Feathers
-
Cutting through to what matters
-
On Engineers and Influence
-
The power of embedded developers
-
Exploding Software-Engineering Myths
-
Observability: the hard parts
-
How I use Wireshark
-
UTC is Enough for Everyone, Right?
-
André Staltz - Open source without maintainers
-
Ted Nelson -- Computers for Cynics
-
Fun with SQL: Recursive CTEs in Postgres
-
Agile is Dead • Pragmatic Dave Thomas
-
Past , Present and Future of JSON API
-
What keeps Apache Kafka from eating the world?
-
Hints for writing Unix tools
-
END-TO-END ARGUMENTS IN SYSTEM DESIGN
-
Two Perspectives on the End-to-End Principle
-
The Law of Leaky Abstractions
-
Joe Armstrong - The Forgotten Ideas in Computer Science
-
Baron Schwartz - Business Observability Matters Too
-
Prometheus - A Whirlwind Tour by Cindy Sridharan
-
The How and Why of Fitting Things Together - Joe Armstrong
-
From Kafka to ZeroMQ for real-time log aggregation
-
Type Systems - The Good, Bad and Ugly by Paul Snively and Amanda Laucher
-
Nathan Sorenson - Domain Specific Type Systems
-
Look for the duct tape
-
What makes a good REPL?
-
Effective Engineer - Notes
-
Antics, drift, and chaos by Lorin Hochstein
-
Calculating a Moving Average on Streaming Data
-
Organizational Skills Beat Algorithmic Wizardry
-
Let’s talk about usernames
-
What I learnt from building 3 high traffic web applications on an embedded key value store.
-
Introduction to Contract Programming
-
Postgres Hidden Gems
-
ZeroMQ RFC 42/C4 - Collective Code Construction Contract
-
Pieter Hintjens - How Conway's Law is eating your job?
-
How is a Class like a Microservice?
-
The best software engineering paper you haven't read
-
Pieter Hintjens - ZMQ, tech, ideas, community, writing and life
-
Data Driven Products Now!
-
Choose Boring Technology
-
What the Four Color Theorem can Teach Us About Writing Software
-
Pieter Hintjens - Our decentralized future
-
Greg Young - Developers are strange creatures
-
Greg Young - Stop Over-Engenering
-
Ideology
-
Toward a Functional Programming Analogy for Microservices
-
Growing Your Tech Stack: When to Say No
-
Idée Fixe - David Nolen
-
Joe Armstrong interviews Alan Kay
-
The Language of the System - Rich Hickey
-
How do groups work on Linux?
-
Clojure, Made Simple - Rich Hickey
-
Safety-Critical Systems - Professor Martyn Thomas
-
How Can Software Be So Hard? - Professor Martyn Thomas
-
Just Say No to More End-to-End Tests
-
Software Is About Storytelling
-
Smart Endpoints, Dumb Pipes
-
You Cannot Have Exactly-Once Delivery
-
Martin Fowler - Event Sourcing
-
Using logs to build a solid data infrastructure
-
Materialized View Strategies Using PostgreSQL
-
Ashley Williams - A brief history and mishistory of modularity
-
How do you cut a monolith in half?
-
Publishing with Apache Kafka at The New York Times
-
Best practices for staging environments
-
Clojure vs. The Static Typing World
-
Designing for Reliability
-
Scaling Unsplash with a small team
-
Metrics: not the observability droids you're looking for
-
Monitoring in the time of Cloud Native
-
Everyone is not Ops
-
My Philosophy on Alerting
-
An Introduction to Raft by Diego Ongaro, creator of Raft
-
Effective Programs - 10 Years of Clojure - Rich Hickey
-
"Managing Containers at Scale with CoreOS and Kubernetes" by Kelsey Hightower
-
Growing up with Dogma
-
HTTPS on Stack Overflow
-
Apache Kafka, Samza, and the Unix Philosophy of Distributed Data
-
The Million Dollar Engineering Problem
-
make tutorial
-
Why Microservices Work For Us
-
Rebuilding Our Infrastructure with Docker, ECS, and Terraform
-
Where Is Our “Package Manager for the Cloud?”
-
Dark corners of Unicode
-
Testing in production
-
Greg Young - The art of destroying software
-
The limitations of deep learning
-
Simple but Handy Postgres Features
-
OK Log
-
Starbucks should really make their APIs public.
-
Tyler McMullen - Load Balancing is Impossible
-
Is it unethical for me to not tell my employer I’ve automated my job?
-
Hyperproductive development
-
What can developers learn from being on call?
-
The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets
-
Looking inside machine learning black boxes
-
Ten Rules for Open Source Success
-
Network protocols - For everyone who knows a programming language
-
Every Server Is A Kind Of Honeypot
-
Docs, Docs, Docs!
-
Elixir Should Take Over the World by Jessica Kerr
-
Lessons From A Lifetime Of Being A Programmer
-
Joe Armstrong interviews Alan Kay
-
In Pursuit of Production Minimalism
-
Linux utils that you might not know
-
Surviving In Open-Source
-
Reducing test cases for JavaScript tooling
-
Good comments explain WHY, not WHAT, and 3 more rules on writing good comments
-
Redis in My Postgres
-
Understand Go pointers in less than 800 words or your money back
-
Search the git log from the command line
-
A Note About Git Commit Messages
-
Readability Matters More Than Correctness
-
No feigning surprise
-
The Silver Bullet Syndrome by Hadi Hariri
-
Latency Numbers Every Programmer Should Know
-
Promoting reliability in web software companies
-
Git in six hundred words
-
Three Attitudes that Lead to Maintainable Code
-
Why Use Make
-
File crash consistency and filesystems are hard
-
How many floating-point numbers are in the interval [0,1]?
-
A Programmer’s Introduction to Unicode
-
Design Better Data Tables
-
/usr/bin/time: not the command you think you know
-
The mythical 10x programmer
-
Normalization of deviance in software: how broken practices become standard
-
Is PostgreSQL good enough?
-
Automatically test your database backups
-
A case for microservices
-
A few drawings about Linux
-
The amazing power of word vectors
-
What Does an Idle CPU Do?
-
Practical advice for analysis of large, complex data sets by a Google data scientist
-
15 Fundamental Laws of Software Development
-
How to trick a neural network into thinking a panda is a vulture
-
The MIT License, Line by Line
-
Diving into concurrency: trying out mutexes and atomics
-
The Twelve-Factor App
-
Machine Learning for Emoji Trends
-
Analyzing the Graph of Thrones
-
Applying the Linus Torvalds “Good Taste” Coding Requirement
-
Logging v. instrumentation
-
Segmenting and refining images with SharpMask
-
Unix philosophy
-
Hints for writing Unix tools
-
How To Become A Hacker
-
Writing Less Damn Code
-
It's The Future
-
Web Design in 4 minutes
-
Taking The Robots To Design School
-
Joe Armstrong - Erlang and other stuff
-
Should you be scared of Unix signals?
-
Recovering files using /proc
-
Debug your programs like they're closed source!
-
Data-hacking for The Best Pokémon of All Time
-
What Makes Software Good?
-
Teaching Robots to Feel: Emoji & Deep Learning
-
Finding Similar Sounding Names
-
The Truth About Deep Learning
-
Visualizing city similarity
-
Statistics for Hackers
-
How to Fold a Julia Fractal
-
Reverse Engineering A Mysterious UDP Stream in My Hotel
-
Have Software Developers Given Up?
-
I/O matters.
-
How I got better at debugging
-
All I Need To Know To Be A Better Programmer I Learned In Kindergarten
-
Programming Is a Dead End Job
-
How the Sunk Cost Fallacy Makes You Act Stupid
-
My Biggest Regret As A Programmer
-
I stayed in a hotel with Android lightswitches and it was just as bad as you'd imagine
-
Man Combines Random People’s Photos Using Neural Networks And The Results Are Amazing
-
Everything is broken
-
The worst part about programming
-
Things I’ve Stopped Saying
-
You can't parse HTML with RegEx
-
Why you should understand a little about TCP
-
Effluents influence affluence : Butterick’s Practical Typography
-
Why You Should Choose Your Own HTTPS.
-
Docker Containers on the Desktop
-
Everything Is Broken
-
The Humble Programmer
-
Instagram's Million Dollar Bug
-
The web accessibility basics
-
The Website Obesity Crisis
-
Haunted by Data
-
The Making Of 'In Pieces'
-
Unidirectional User Interface Architectures
-
'Inside the Wolfram Language' by Stephen Wolfram
-
'The Mess We're In' by Joe Armstrong
-
Alan Kay - Power of Simplicity
-
Five Things Old Programmers Should Remember
-
A tr Primer
-
Graphical thinking - optimisation through functional programming
-
The best icon is a text label
-
Bash One-Liners Explained - Redirections
-
The Value of Values - Rich Hickey
-
What is your most productive shortcut with Vim?
-
The Story Behind How Pocket Hit 20M Users with 20 People
-
Fighting spam with Haskell
-
Web Design : The First 100 Years
-
Dropdowns Should be the UI of Last Resort
-
Pure UI
-
Building SVG Icons with React
-
You’re Missing the Point of React
-
You Might Need Flux
-
Not Just Code Monkeys - Martin Fowler
-
Rob Pike's 5 Rules of Programming
-
9 Anti-Patterns Every Programmer Should Be Aware Of
-
Running A Software Business On 5 Hours A Week
-
People Who Like This Also Like ...
-
FizzBuzz In Too Much Detail — Tom Dalling
-
The sad state of sysadmin in the age of containers
-
The Beauty of Code
-
Process substitution
-
Reverse Engineering Regular Expressions
-
What I’ve learned so far about software development
-
Project managers, ducks, and dogs marking territory
-
What I Wish I Knew When Starting Out as a Software Developer
-
On Being A Senior Engineer
-
Is it really 'Complex'? Or did we just make it 'Complicated'?
-
Move fast & break nothing
-
Learning SVG
-
Pipes and Filters
-
How I got a medal from the Army for writing code
-
Math For Programmers