acquisition
How to navigate and/or survive your acquihire.
⭐ How the Digg team was acquihired.
acre
Freebase Hackday and Image Game
actors
Recurring Events and Message Passing
A Couple of Clojure Agent Examples
adult
Teaching Adult English Classes
agents
Recurring Events and Message Passing
A Couple of Clojure Agent Examples
analytics
Writing, Analytics and Analysis
How to Filter Bots From Analytics
angel-investing
Thesis on value accumulation in AI.
Dipping toes in angel investing.
Why not start an indie tech book publisher?
Thesis on engineering onboarding products.
My skepticism towards current developer meta-productivity tools.
anti-pattern
When shouldn't you roll out business reviews?
A Django Anti-Pattern, Rolling Your Own REST
apache
Measuring Single and Multi Server Performance
Overview of Single vs. Multi Server Architecture
The Django and Ubuntu Intrepid Almanac
Dreamier Dream Server with Nginx
api
Make Slack app respond to reacji.
Adding App Home to Slack app in Python.
Creating a Slack App in Python on GCP.
apis
Some delightful developer experiences in 2019.
architecture
⭐ How to create software quality.
Create technical leverage: workflow improvements & product capabilities
⭐ Managing technical quality in a codebase.
How to practice backend engineering.
Hotspotting developer productivity.
Notes on Building Evolutionary Architectures.
Distributed systems vocabulary.
⭐ Reclaim unreasonable software.
Notes on The Timeless Way of Building
Notes on A Philosophy of Software Design.
You can't reason about big balls of mud.
From lambda to kappa and dataflow paradigms.
Providing pierceable abstractions.
Options for orchestrating periodic tasks.
Infrastructure between cost center and ego trip
Serverless: Gatekeeping and Profit Margins
Developing service oriented architectures.
Building a Software Deployment Pipeline
Digg v4's Architecture and Development Processes
⭐ Introduction to architecting systems for scale.
Overview of Single vs. Multi Server Architecture
aym-cms
HSS and YUI Compressor in AYM CMS
R.I.P. Your Resume Site to Awesome
Making Static Dynamic Again; AYM CMS
beepbeep
Generating RSS feeds via BeepBeep
Pitance: Template and Snippet Infrastructure
Changing Mimetypes for Text Responses in BeepBeep
BeepBeep, CouchDB and a Trivial Blog
Using Ajax with the BeepBeep Microframework
binder
Binder for hosting Jupyter notebooks.
blog
RSS feed changing! Migrating blog in next few days.
Wherein I Rewrite My Blog a Fifth Time
Irrational Exuberance's Fourth Coming
Writing, Analytics and Analysis
Irrational Exuberance's Third Rebirth
Smaller Header, JobSyndicate, Printable Articles
Don't Repeat Yourself for Bloggers: Dynamic Blog Context in LifeFlow
Installing a Development Deployment of LifeFlow, a Django Blog Solution
Moving Writings to Separate Flow
blueprint
BluePrint CSS makes LifeFlow look better, and easier to customize
book
More (self-)publishing thoughts.
Digital release of Engineering Executive's Primer.
Notes on How Big Things Get Done
Notes on Enterprise Architecture as Strategy
Notes on Technology Strategy Patterns
Notes on The Software Engineer's Guidebook
Notes on The Value Flywheel Effect
Drafted Eng Executive's Primer!
The Engineering Executive's Primer.
Starting to write Infrastructure Engineering.
Why not start an indie tech book publisher?
Should you write a technical or management book?
Self-publishing Staff Engineer.
Early Edition of "Staff Engineer" coming Jan 31st.
Notes on Building Evolutionary Architectures.
Notes on data modeling from Handbook of Relational Database Design.
Notes on Escaping the Build Trap
Notes on Soul of a New Machine, Messy Middle, Crazy at Work, Company of One.
Notes on Structure and Interpretation of Computer Programs.
Notes on The Timeless Way of Building
Notes on The Pyramid Principle.
Notes on A Philosophy of Software Design.
Notes from "Good Strategy, Bad Strategy."
boss
Reranking Results in django-springsteen
django-springsteen and Distributed Search
Visualizing Keyterms with BOSS and Processing
Extending Mahou; Gotchas and Snippets
Writing Mahou; a Cappuccino Image Search
BossArray for list-like Yahoo search results
Stripping Reddit From HackerNews With BOSS Mashup
Polishing Up Our Django & BOSS Search Service
Search Recipes for Yahoo's BOSS in Python
Yahoo's Build your Own Search Service in Django
braindump
build
burnout
business
Stripe's model of product-led, developer-centric growth.
calm
A bit late, but I did leave Calm.
cappuccino
Yes, You Do Care About Cappuccino
Extending Mahou; Gotchas and Snippets
Extending Classes in Cappuccino
Writing Mahou; a Cappuccino Image Search
career
Notes on The Software Engineer's Guidebook
A bit late, but I did leave Calm.
Getting a job as an engineering executive.
Make an effective executive LinkedIn profile.
STAR method for interview questions.
The impact of less scalable work.
⭐ How to be a tech influencer.
Tech Lead Management roles are a trap.
Interesting work happens at the edges.
Mailbag: Advice for someone five years into their tech career?
Finding the right company to reach Staff Engineer.
Does the Staff title even matter?
Mailbag: Evolving your engineer career beyond the career level.
You only learn when you reflect.
Path to engineering manager of managers.
Growing with your company's complexity.
Roles over rocket ships, and why hypergrowth is a weak predictor of personal growth.
cassandra
SuperFamily Relationships with Lazyboy
clojure
Recurring Events and Message Passing
A Couple of Clojure Agent Examples
cloud
Running systems library as Cloud Function.
The physics of Cloud expansion.
cocoa
Notes on Cocos2d iPhone Development
Epic PyObjC, Part 5: Resources and Farewell
Epic PyObjc, Part 4: Drag & Drop, Multiple Nibs
Epic PyObjC, Part 3: Browsing, Caching, Indicating
Epic PyObjC, Part 2: Adding a Library & Bindings
⭐ An Epic Introduction to PyObjC and Cocoa
Writing to Application Support in PyObjC
Deleting From NSOutlineView With the Delete Key
Cocoa Drag and Drop text into the Dock Icon
Opening Files With Associated App in Cocoa
Assigning One To Many Relationships in CoreData
cocos2d
Introducing a Tutorial and touchDefense
Creating Slideshows with Cocos2d iPhone
Touch Detection in Cocos2d iPhone
Notes on Cocos2d iPhone Development
common-lisp
The Subtle Joys of Generic Methods
community
Opinionated Programming Languages, The Huddled Masses, and Elitism
compliance
A brief rant on converging compliance regimes.
computer-science
Comments on "Why Engineers Should Consider Formal Methods"
Paper Review of "Hints On Computer System Design"
Paper Review of "A Transaction Model"
Genetic Programming: A Novel Failure
⭐ Genetic algorithms: cool name & damn simple.
concurrency
Recurring Events and Message Passing
A Couple of Clojure Agent Examples
conferences
Example Call For Proposals submissions.
contentful
contract
coredata
Assigning One To Many Relationships in CoreData
couchdb
How Pitance Versions Documents in CouchDB
BeepBeep, CouchDB and a Trivial Blog
Setting up CouchDB-Lucene on OS X
A Command Line Tool for Loading CouchDB Documents
Full-Text Search in CouchDB Using... CouchDB
An Introduction to Using CouchDB with Django
culture
Do you work at a tech company?
data
Async processing with sync semantics?
Analyzing cross-service requests with Apache Beam.
data-localization
Can governments design great APIs? Let's hope so.
data-science
Things I learned hiring a data science leader.
deployment
Simple Continuous Deployment on GKE with gke_ci
Building a Software Deployment Pipeline
design
A Filter to Display Neighbors in a List
Transcending Search-as-You-Type Stickiness
How to Write a Wrapper Library
devtools
Accelerate's definition of developer productivity.
Refactoring Ruby programmatically.
digg
⭐ How the Digg team was acquihired.
Digg v4 @ Internet History Podcast
⭐ Digg's v4 launch: an optimism born of necessity.
Why Pagination Was Hard at Digg
Digg v4's Architecture and Development Processes
Using Flot.js with the Digg Streaming API
digg-streaming-api
Using Flot.js with the Digg Streaming API
distributed-systems
Refactoring & Testing Our Dynamo Clone
Durable Writes & Consistent Reads
Hands On Review of the Dynamo Paper
django
Retiring and Releasing Codernote.com
What Do Django People Search About?
Making Django Apps Run On and Off GAE
Findjango: A Django Search Vertical
Solango and Tomcat 6 on Ubuntu Intrepid
Deploying django-springsteen on Google App Engine
Reranking Results in django-springsteen
django-springsteen and Distributed Search
The Django and Ubuntu Intrepid Almanac
A Filter to Display Neighbors in a List
Django-Portfolio: Organize and Display Projects
A Different Approach to local_settings.py
Slides from django-nyc on 11/18/2008
Bad Ideas and Regular Expressions in Templates
Development to Deployment in Django
Customize site style by user with django-userskins
User Registration Apps for Django
Taming AuditTrail Proliferation
Choosing Between AuditTrail and Django-Rcsfield
Restricting User Signups in Django
Suffer Less By Using Django Dev Server as a Proxy
As-You-Type Slug Uniqueness Validation
Custom Django Views for Happier Ajax
Intro to Unintrusive JavaScript with Django
Making Static Dynamic Again; AYM CMS
Intricate Static Websites With Django Templates
Migrating the 'This Week in Django' Concept
Dynamic Ad Targeting With django-monetize
An Introduction to Using CouchDB with Django
A Syntax Coloring Template Filter for Django
Replacing Django's ORM with SQLAlchemy
Replacing Django's Template Language With Jinja2
An Introduction to Django's Loose Coupling
Polishing Up Our Django & BOSS Search Service
Yahoo's Build your Own Search Service in Django
JSON, Object Oriented Views, and Starting a Real App
Ambush Code Review Learns Code Diffs
Overview of Using Django on the Google App Engine
A Sunday Project: Ambush Code Review
A Django Anti-Pattern, Rolling Your Own REST
Working on LifeFlow's Public Face
Release of LifeFlow Version 0.90
Using Optional Parameters in Django Urls
Technical Aspects of the Life Flow Editor
Installing a Development Deployment of LifeFlow, a Django Blog Solution
Implementing Threaded Comments in LifeFlow
Two-Faced Django Part 7: PyFacebook and FBJS Ajax
Two-Faced Django: Live install
Two-Faced-Django Part 6: PyFacebook
Two-Faced Django Part 5: JQuery Ajax
Two-Faced Django Part 4: The Webapp
Two-Faced Django Part 3: Newforms
Two-Faced Django Part 2: Models and Django Testing
Two-Faced Django Part 1: Building a project that exists simultaniously on Facebook and the web
Using JQuery with Django for Autocomplete Fields
Using PyFacebook without the Facebook middleware
Dreamier Dream Server with Nginx
Adding Social Bookmarking To a Django App
Syntax Highlighting with MarkDown, and a pinch of Automagick for Django
Extracting Models From Django Datadump
Creating my Dream Server for Django
How to Migrate Data Across Model Changes
Writing Custom Contexts for Django
A Django Middleware for Google Analytics (repost)
Reflections on Django (repost)
django_monetize
Dynamic Ad Targeting With django-monetize
draft-week
Things I learned hiring a data science leader.
Dipping toes in angel investing.
dreamhost
Two-Faced Django: Live install
education
Teaching Elementary Classes as an ALT
On Hegemony and an Anti-Capitalist Bias in European Textbooks
On Education, Self-Responsibility and Manure
Teaching Adult English Classes
eeprimer
Digital release of Engineering Executive's Primer.
Thoughts on writing and publishing Primer.
Drafted Eng Executive's Primer!
The Engineering Executive's Primer.
elegant-puzzle
Using QR Codes in printed books.
An Elegant Puzzle by the numbers, five months later.
An Elegant Puzzle @ Software Engineering Daily
What I learned writing a book.
Elegant Puzzle press, reviews and podcasts.
An Elegant Puzzle is released today!
An Elegant Puzzle is available for pre-order.
An Elegant Puzzle coming in late May.
An Elegant Puzzle: Systems of Eng Management.
elementary
Teaching Elementary Classes as an ALT
elesma
eng-strategy-book
Navigating Private Equity ownership.
Using systems modeling to refine strategy.
⭐ Eng org seniority-mix model.
Modeling impact of LLMs on Developer Experience.
Strategy testing: avoid the waterfall strategy trap with iterative refinement.
Should we decompose our monolith?
When to write strategy, and how much?
Making engineering strategies more readable
english
Lesson Plan: My Winter Vacation
Teaching Adult English Classes
entrepreneurship
Reading "The Nudist on the Late Shift" in 2008
environment
Looking for Recycling's Lost Sex Appeal
erlang
Debugging Crashes With Small Scripts
Formatting Multipart Formdata in Erlang
Refactoring & Testing Our Dynamo Clone
Replicating receive-after in an Erlang gen_server
Durable Writes & Consistent Reads
Hands On Review of the Dynamo Paper
Recurring Events and Message Passing
A Failed Stack-based Markdown Interpreter
Erlang Brush for SyntaxHighlighter
Load Balancing Across Erlang Process Groups
Distinguishing Strings from Lists in Erlang
BeepBeep, CouchDB and a Trivial Blog
Using Ajax with the BeepBeep Microframework
Cull Lingering Erlang Heart Processes
essay
Money or Meaning: Spending Our Wealth of Time
excel
Creating Multi-Worksheet Excel Docs with xlwt
executive
Video of Developing Eng Leadership Styles.
Developing domain expertise: get your hands dirty.
Load-bearing / Career-minded / Act Two rationales
Those five spare hours each week.
Solving the Engineering Strategy crisis.
Performance & Compensation (for Eng Execs).
The Engineering executive’s role in hiring.
Manage your priorities and energy.
Gelling your Engineering leadership team.
Building personal and organizational prestige
Balancing your CEO, peers, and Engineering.
Interviewing engineering executives.
How to plan as an engineering executive.
Who runs Engineering processes?
⭐ Deciding to leave your (executive) job.
Running your engineering onboarding program.
Engineering’s role in Mergers & Acquisitions.
Building your executive network.
⭐ Writing an engineering strategy.
Better to micromanage than be disengaged.
⭐ Setting engineering org values.
Internal comms for executives.
What does it mean to be a cost center?
Meetings for an effective eng organization.
Getting a job as an engineering executive.
Make an effective executive LinkedIn profile.
How to capitalize engineering costs.
⭐ Measuring an engineering organization.
⭐ Your first 90 days as CTO or VP Engineering.
experiment
Measuring Single and Multi Server Performance
extraction
Extraction: Get Metadata from HTML Documents
fabric
Two-Faced Django Part 7: PyFacebook and FBJS Ajax
Two-Faced-Django Part 6: PyFacebook
Using PyFacebook without the Facebook middleware
fail
YUI Dialogs, IE z-index and Tragedy
OS X Textfield Encoding (maybe) Issue
Poor Wireless Connectivity for MacBook
Writing Titles Under Ninety-Five Characters
finances
Learning about personal finances.
findjango
Findjango Redesign & Slides for django-nyc
Findjango: A Django Search Vertical
flot
Using Flot.js with the Digg Streaming API
food
framing
freebase
Freebase Hackday and Image Game
functional
Filtering Arrays in Objective C
Failure of Implicit Conventions: Determining Function Destructiveness
gcf
Running systems library as Cloud Function.
gcp
Testing Python projects for Google Cloud Run.
Distributing your Slack application.
Using Cloud Firestore to power a Slack app.
Creating a Slack App in Python on GCP.
genetic-algorithms
Genetic Programming: A Novel Failure
⭐ Genetic algorithms: cool name & damn simple.
git
IE's New Infrastructure and Writing Workflow
git-scraping
Generating a daily snapshot of Twitter Search results.
Getting started with git-scraping
gke
Simple Continuous Deployment on GKE with gke_ci
Trying out Google Container Engine
go
Experiment with distributed finite state machines.
google-app-engine
Making Django Apps Run On and Off GAE
Simplified django-springsteen Deploy on GAE
Deploying django-springsteen on Google App Engine
Extending Mahou; Gotchas and Snippets
Writing Mahou; a Cappuccino Image Search
Ambush Code Review Learns Code Diffs
Overview of Using Django on the Google App Engine
A Sunday Project: Ambush Code Review
graphql
Quick tutorial on using GraphQL with Python.
haiku
hiking
hiring
The Engineering executive’s role in hiring.
Running your engineering onboarding program.
Bar raisers, hiring committees, and other complex ways to improve hiring quality.
Things I learned hiring a data science leader.
Notes on hiring a Foundation Eng leader.
Closing calls: tell the best version of the truth.
Getting to yes: solving engineering manager hiring loops that reject every candidate.
Some common hiring manager mistakes.
Interviewing senior engineering leaders.
Do you work at a tech company?
Modeling a hiring funnel with Systems library.
Consider the team you have for senior positions.
⭐ Cold sourcing: hire someone you don't know.
Running a Humane Interview Process
how-to
How to capitalize engineering costs.
⭐ Reading a Profit & Loss statement.
idm
Seeking Some Music I Can't Find
inclusion
Stuff I've learned about Diversity, Equity and Inclusion over the past few years.
Privilege's upward-facing window.
increment
"Do engineering managers need to be technical?" in Increment.
infra-eng
Should you prioritize infrastructure costs?
Starting to write Infrastructure Engineering.
⭐ Trunk and Branches Model for Scaling Infrastructure Organizations
infrastructure
Your migration probably isn’t failing due to insufficient staffing.
Should you prioritize infrastructure costs?
⭐ Trunk and Branches Model for Scaling Infrastructure Organizations
Incident response, programs and you(r startup).
Maintaining platform-product fit.
Expanding on S[a-z]{3,} Reliability Engineer roles.
Forecasting synthetic metrics.
"Investing in technical infrastructure"
Distributed systems vocabulary.
⭐ How to invest in technical infrastructure.
Writing a reliability strategy: reason about complex things with system models.
"Paying Technical Debt at Scale - Migrations"
⭐ Infrastructure planning: users, baselines and timeframes.
Accelerate's definition of developer productivity.
Infrastructure migrations @ Interestings
Experiment with distributed finite state machines.
You can't reason about big balls of mud.
⭐ Migrations: the sole scalable fix to tech debt.
The Redis Protocol is pretty great.
⭐ Some of my favorite technical papers.
Infrastructure engineering @ Inside Intercom
⭐ Product management in infrastructure eng.
The physics of Cloud expansion.
Async processing with sync semantics?
Engineering management stuff I learned in 2017.
Analyzing cross-service requests with Apache Beam.
Infrastructure between cost center and ego trip
Developing service oriented architectures.
⭐ Introduction to architecting systems for scale.
innovation
Create technical leverage: workflow improvements & product capabilities
install
Installing a Development Deployment of LifeFlow, a Django Blog Solution
interviewing
Staff-plus interview processes.
How to practice backend engineering.
Picking problems for programming interviews.
Acing Your Architecture Interview
iphone
Crash on Compiling App With MKMapView
Reading XML Files on the iPhone
Creating Slideshows with Cocos2d iPhone
Touch Detection in Cocos2d iPhone
Notes on Cocos2d iPhone Development
japan
Reflections on a Year of Blogging and Japan
Last Day of Elementary School and Classes
Advice for ALTs Considering a Second Year
An Introduction to a Week in Japan
Looking for Recycling's Lost Sex Appeal
Failed Night Time Pictures of Sakura Blossoms
Quick Reflections on JET in Haiku
Spring Doesn't Come in February, But Snow Does
Teaching Elementary Classes as an ALT
Introduction to Kamioka-cho, Hida-shi, Gifu-ken, Japan
Reflections on the old year, and the new one
Music Recommendations & Snow Pictures
Packaging of Renu Contact Solution
Introducing my Japanese Kitchen
Teaching Adult English Classes
Expectations and Reality for the lowly ALT
Leaving Tokyo, Arriving in Kamioka
From America into an American Bubble: The Flight to Japan
java
Opinionated Programming Languages, The Huddled Masses, and Elitism
Is the JVM the "next assembly"? I hope not. (repost)
javascript
Using Flot.js with the Digg Streaming API
Callbacks Are An Informal Pipeline
Porting Django's urlpatterns to Node.js
Log Collection Server with Node.js
The Magical Source of YUI Get's Power
Custom Django Views for Happier Ajax
Intro to Unintrusive JavaScript with Django
Sparklines in Javascript With Sparklines.js
Strangest JavaScript Bug I've Ever Seen
Updates to Processed Tower Defense
Updating Processing.js Graphics via Ajax
Design of Processed Tower Defense
Using Javascript to Control Processing
Getting Started with Processing.js
jet
Last Day of Elementary School and Classes
Advice for ALTs Considering a Second Year
An Introduction to a Week in Japan
Quick Reflections on JET in Haiku
Spring Doesn't Come in February, But Snow Does
Teaching Elementary Classes as an ALT
A Historical Perspective on the JET Program in 2008
Failures of Proactive Communication & Other Generic Complaints
Lesson Plan: My Winter Vacation
Introduction to Kamioka-cho, Hida-shi, Gifu-ken, Japan
Reflections on the old year, and the new one
Introducing my Japanese Kitchen
Expectations and Reality for the lowly ALT
Leaving Tokyo, Arriving in Kamioka
From America into an American Bubble: The Flight to Japan
jinja
Replacing Django's Template Language With Jinja2
jquery
Using Ajax with the BeepBeep Microframework
As-You-Type Slug Uniqueness Validation
Custom Django Views for Happier Ajax
Intro to Unintrusive JavaScript with Django
Two-Faced Django Part 5: JQuery Ajax
Using JQuery with Django for Autocomplete Fields
jupyter
System dynamics in a jupyter notebook.
k8s
Sketching out failure injection on Kubernetes.
Simple Continuous Deployment on GKE with gke_ci
Trying out Google Container Engine
Options for orchestrating periodic tasks.
kamioka
Introduction to Kamioka-cho, Hida-shi, Gifu-ken, Japan
Music Recommendations & Snow Pictures
kappa
Introducing Kappa, a Twitter Client
language-design
The Subtle Joys of Generic Methods
Spoken Languages, Blub, and Convenience
Opinionated Programming Languages, The Huddled Masses, and Elitism
Failure of Implicit Conventions: Determining Function Destructiveness
lazyboy
SuperFamily Relationships with Lazyboy
leadership
Writing strategies and visions.
Guiding broad change with metrics.
My rails for engineering leadership.
lesson-plan
Lesson Plan: My Winter Vacation
lifeflow
Irrational Exuberance's Third Rebirth
ReST, Textile and HTML in Markdown
Working on LifeFlow's Public Face
Release of LifeFlow Version 0.90
Improvements to LifeFlow Editor
Technical Aspects of the Life Flow Editor
Introducting the LifeFlow Editor
Translating Entries into Other Languages with LifeFlow
New Style for Including Resources in Entries on LifeFlow
Adding Arbitrary Mods to LifeFlow
Don't Repeat Yourself for Bloggers: Dynamic Blog Context in LifeFlow
Customizing LifeFlow Quickly with Skins
Installing a Development Deployment of LifeFlow, a Django Blog Solution
BluePrint CSS makes LifeFlow look better, and easier to customize
Implementing Threaded Comments in LifeFlow
New Look for LifeFlow, Deployment on Dreamhost
lifeflow-editor
Release of LifeFlow Version 0.90
Improvements to LifeFlow Editor
Technical Aspects of the Life Flow Editor
lighttpd
Creating my Dream Server for Django
literal
What's the inverse of literate programming.
llm
Video of Using LLMs in your product.
Notes on how to use LLMs in your product.
Playing with Streamlit and LLMs.
load testing
lucene
Setting up CouchDB-Lucene on OS X
mahou
Extending Mahou; Gotchas and Snippets
Writing Mahou; a Cappuccino Image Search
mailbag
Mailbag: What should you do if you report to an underperforming executive?
Mailbag: What isn't measurable? To hire as exec or not?
Mailbag: Did I become a manager too soon?
Mailbag: Resources for Engineering Directors.
How to find engineering leadership roles.
Mailbag: Should we just call them architects?
Mailbag: How to deal with unhappy users on your Internal platform?
Mailbag: Building alignment around a new strategy.
Mailbag: How to encourage good documents rather than perfect documents?
Mailbag: Advice for someone five years into their tech career?
Mailbag: Evolving your engineer career beyond the career level.
Mailbag: When your team wants your job, personal brand, and service registries.
management
Measuring developer experience, benchmarks, and providing a theory of improvement.
Developing domain expertise: get your hands dirty.
⭐ How to create software quality.
Load-bearing / Career-minded / Act Two rationales
Constraints on giving feedback.
⭐ Useful tradeoffs are multi-dimensional.
Those five spare hours each week.
Performance & Compensation (for Eng Execs).
The Engineering executive’s role in hiring.
Manage your priorities and energy.
Gelling your Engineering leadership team.
Building personal and organizational prestige
Good hypergrowth/curator manager.
Balancing your CEO, peers, and Engineering.
Interviewing engineering executives.
How to plan as an engineering executive.
Who runs Engineering processes?
⭐ Deciding to leave your (executive) job.
Running your engineering onboarding program.
Engineering’s role in Mergers & Acquisitions.
Building your executive network.
⭐ Writing an engineering strategy.
Better to micromanage than be disengaged.
⭐ Setting engineering org values.
Internal comms for executives.
What does it mean to be a cost center?
Meetings for an effective eng organization.
Mailbag: What should you do if you report to an underperforming executive?
How to capitalize engineering costs.
⭐ Measuring an engineering organization.
When shouldn't you roll out business reviews?
Mailbag: What isn't measurable? To hire as exec or not?
Reminiscing: the retreat to comforting work.
Fewer, happier incident heroes.
⭐ Reading a Profit & Loss statement.
Mailbag: Did I become a manager too soon?
Your migration probably isn’t failing due to insufficient staffing.
Mailbag: Resources for Engineering Directors.
⭐ Trunk and Branches Model for Scaling Infrastructure Organizations
⭐ Inspection and the limits of trust.
Notes on The Kool-Aid Factory's Planning Issue.
How to find engineering leadership roles.
Notes on hiring a Foundation Eng leader.
Closing calls: tell the best version of the truth.
Create capacity rather than capture it.
Getting to yes: solving engineering manager hiring loops that reject every candidate.
Pockets of rest enable careers.
Can senior leaders make friends at work?
Mailbag: How to deal with unhappy users on your Internal platform?
Measures of engineering impact.
The curious case of the missing regretted attrition.
Tech Lead Management roles are a trap.
Interesting work happens at the edges.
Managing Staff-plus engineers.
Renegotiating your first vendor contract.
Engineering strategy every org should write.
Surplus rules of engineering strategy.
Care and feeding for your engineering strategy.
Things that aren't engineering strategy.
A survey of engineering strategies.
Some common hiring manager mistakes.
Where do Staff-plus engineers fit into the org?
Stuff I've learned about Diversity, Equity and Inclusion over the past few years.
Staying aligned with authority.
From one to two: how to start a successful distributed engineering office.
Interviewing senior engineering leaders.
Crowdsourcing CTO/VPE learning circles.
How to partner with an executive assistant.
Some rough notes on running learning circles.
How to build your company's engineering brand.
⭐ Your first 90 days as CTO or VP Engineering.
How to navigate and/or survive your acquihire.
"Good Process is Evolved, Not Designed" in 97 Things Every Engineering Manager Should Know
Mailbag: When your team wants your job, personal brand, and service registries.
"How to successfully design organizational processes"
"Do engineering managers need to be technical?" in Increment.
You only learn when you reflect.
Programs: tips for owning the unownable.
Path to engineering manager of managers.
Privilege's upward-facing window.
An Elegant Puzzle is released today!
Make timeline tradeoffs using iterative elimination tournaments.
Rules of thumb for org design.
⭐ How to evolve an engineering organization.
Paying the predictability tax.
⭐ Why limiting work-in-progress works.
Notes on Soul of a New Machine, Messy Middle, Crazy at Work, Company of One.
Growing with your company's complexity.
An Elegant Puzzle: Systems of Eng Management.
⭐ Metrics for the unmeasurable.
Good process is evolved, not designed.
Defining policy, process and programs.
⭐ Infrastructure planning: users, baselines and timeframes.
⭐ Work the policy, not the exceptions.
Introduction to systems thinking.
Time management: the leadership meta-problem.
Problem exploration, selection and validation.
Introducing SREs, TPMs and other specialized roles.
Career levels, designation momentum, etc.
Designations, levels and calibrations.
Make your peers your first team.
Scaling technical consistency.
Writing strategies and visions.
Guiding broad change with metrics.
My rails for engineering leadership.
The briefest of media trainings.
A case against top-down global optimization.
⭐ Staying on the path to high performing teams.
Where to stash your organizational risk?
Consider the team you have for senior positions.
Setting organizational direction.
⭐ Migrations: the sole scalable fix to tech debt.
Managing in the growth plates.
Notes from "Good Strategy, Bad Strategy."
How I write group emails at work.
⭐ Product management in infrastructure eng.
⭐ Cold sourcing: hire someone you don't know.
Roles over rocket ships, and why hypergrowth is a weak predictor of personal growth.
Engineering management stuff I learned in 2017.
Tools for operating a growing organization.
Infrastructure between cost center and ego trip
Ways Engineering Managers Get Stuck
⭐ Productivity in the age of hypergrowth.
Running a Humane Interview Process
Adding Value as an Engineering Manager
Company Culture and Managing Freedoms
Kill Your Heroes, Stop Doing it Harder
Social Hierarchies in Engineering Organizations
Slack and Hope for Middle Management
markdown
A Python-Markdown Extension for Embedding Graphviz
A Failed Stack-based Markdown Interpreter
ReST, Textile and HTML in Markdown
Don't Repeat Yourself for Bloggers: Dynamic Blog Context in LifeFlow
Cleanly Extending Python Markdown with Syntax Highlighting
memcache
The Django and Ubuntu Intrepid Almanac
Dreamier Dream Server with Nginx
Creating my Dream Server for Django
memos
mentorship
metrics
⭐ Measuring an engineering organization.
Forecasting synthetic metrics.
⭐ Metrics for the unmeasurable.
Guiding broad change with metrics.
microsoft
On The Causes and Cures of Malware
mod_wsgi
Measuring Single and Multi Server Performance
The Django and Ubuntu Intrepid Almanac
model
⭐ Eng org seniority-mix model.
Modeling impact of LLMs on Developer Experience.
monocle-studios
Introducing a Tutorial and touchDefense
movie
Music Video? Movie? The 'Once' Dilemma
music
The Fate of Pop and Hip-Hop in 2008
Music From the iTunes Store, 1
Seeking Some Music I Can't Find
Some Biased Analysis of Music Videos
"You Are Beautiful At All Times" by Yppah
"Puddle City Racing Lights" by Windmill
newforms
Two-Faced Django Part 3: Newforms
news
Recycling Hacker Fear-Mongering
newsletter
Newsletter for Irrational Exuberance.
nginx
Measuring Single and Multi Server Performance
Rewriting Parameterized URLs with Nginx
Overview of Single vs. Multi Server Architecture
The Django and Ubuntu Intrepid Almanac
Dreamier Dream Server with Nginx
nj
node-js
Callbacks Are An Informal Pipeline
Porting Django's urlpatterns to Node.js
Log Collection Server with Node.js
notes
objc
Finally Waving The White Flag to Objective-C 2.0
Reading XML Files on the iPhone
Touch Detection in Cocos2d iPhone
Cocoa Drag and Drop text into the Dock Icon
Opening Files With Associated App in Cocoa
Assigning One To Many Relationships in CoreData
Filtering Arrays in Objective C
object-oriented
Tip Your Hat To Accessors And Mutators
onboarding
Thesis on engineering onboarding products.
once
Music Video? Movie? The 'Once' Dilemma
org-programs
Programs: tips for owning the unownable.
os-x
Using Automator to Scale Images Horizontally
Poor Wireless Connectivity for MacBook
Introducing Kappa, a Twitter Client
Epic PyObjC, Part 5: Resources and Farewell
Epic PyObjc, Part 4: Drag & Drop, Multiple Nibs
Epic PyObjC, Part 3: Browsing, Caching, Indicating
On The Causes and Cures of Malware
pattern
perl
Intro to HTTP::Server::Simple::CGI
Prevent Cron Cancer With a File-based Mutex
XML::Twig for Large XML Files in Perl
photo
php
Several Approaches to Versioning Files in PHP
pil
A Photo Album with Python and PIL
pirsig
Context is a Parameter in Calculating Truth
pitance
How Pitance Versions Documents in CouchDB
Erlang Brush for SyntaxHighlighter
Pitance: Template and Snippet Infrastructure
planning
Notes on The Kool-Aid Factory's Planning Issue.
plausible
podcast
Speaking and podcasts in 2020.
An Elegant Puzzle @ Software Engineering Daily
Elegant Puzzle press, reviews and podcasts.
Digg v4 @ Internet History Podcast
Infrastructure migrations @ Interestings
Infrastructure engineering @ Inside Intercom
poem
postgresql
The Django and Ubuntu Intrepid Almanac
Dreamier Dream Server with Nginx
Creating my Dream Server for Django
principles
processing
Visually Representing Word Structures
We're All Sinners and Cosiners
Visualizing Keyterms with BOSS and Processing
processing-js
Sparklines in Javascript With Sparklines.js
Updates to Processed Tower Defense
Updating Processing.js Graphics via Ajax
Design of Processed Tower Defense
Using Javascript to Control Processing
Getting Started with Processing.js
product
Notes on how to use LLMs in your product.
Notes on Escaping the Build Trap
Valuing already-solved problems.
Some delightful developer experiences in 2019.
Problem exploration, selection and validation.
⭐ Product management in infrastructure eng.
productivity
Measuring developer experience, benchmarks, and providing a theory of improvement.
My skepticism towards current developer meta-productivity tools.
Developer productivity surveys.
Hotspotting developer productivity.
programming
Notes on Structure and Interpretation of Computer Programs.
protocols
The Redis Protocol is pretty great.
prototyping
Suffer Less By Using Django Dev Server as a Proxy
ptd
Deployment Scripts With BeautifulSoup
pyfacebook
Two-Faced Django Part 7: PyFacebook and FBJS Ajax
Two-Faced Django: Live install
Two-Faced-Django Part 6: PyFacebook
Two-Faced Django Part 1: Building a project that exists simultaniously on Facebook and the web
Using PyFacebook without the Facebook middleware
pyobjc
Releasing Kappa Source (PyObjC Twitter Client)
Naming and Casing Convention in PyObjC
Epic PyObjC, Part 5: Resources and Farewell
Epic PyObjc, Part 4: Drag & Drop, Multiple Nibs
Epic PyObjC, Part 3: Browsing, Caching, Indicating
Epic PyObjC, Part 2: Adding a Library & Bindings
⭐ An Epic Introduction to PyObjC and Cocoa
Writing to Application Support in PyObjC
Deleting From NSOutlineView With the Delete Key
How to Use Selectors in PyObjC
Cocoa Drag and Drop text into the Dock Icon
python
Playing with Streamlit and LLMs.
Generating a daily snapshot of Twitter Search results.
Getting started with git-scraping
Using QR Codes in printed books.
Picking problems for programming interviews.
Testing Python projects for Google Cloud Run.
Distributing your Slack application.
Using Cloud Firestore to power a Slack app.
Make Slack app respond to reacji.
Adding App Home to Slack app in Python.
Creating a Slack App in Python on GCP.
HMAC SHA256 signatures in Python and Flask.
Quick tutorial on using GraphQL with Python.
Analyzing cross-service requests with Apache Beam.
Extraction: Get Metadata from HTML Documents
Creating Multi-Worksheet Excel Docs with xlwt
Storing Bounded Timeboxes in Redis
Python Default Parameter Value Gotchas
Python Datastructures Backed by Redis
SuperFamily Relationships with Lazyboy
A Python-Markdown Extension for Embedding Graphviz
A Photo Album with Python and PIL
How To Remotely Admin Servers Via Twitter
Stripping Illegal Characters from XML in Python
Huge CSV and XML Files in Python
The Subtle Joys of Generic Methods
A Command Line Tool for Loading CouchDB Documents
Parallel HTTP Requests in Python
Python-Brightkite for... you get the idea
R.I.P. Your Resume Site to Awesome
As-You-Type Slug Uniqueness Validation
Intricate Static Websites With Django Templates
Extracting Data From Google Analytics Reports
Epic PyObjC, Part 5: Resources and Farewell
Epic PyObjc, Part 4: Drag & Drop, Multiple Nibs
Epic PyObjC, Part 3: Browsing, Caching, Indicating
Epic PyObjC, Part 2: Adding a Library & Bindings
⭐ An Epic Introduction to PyObjC and Cocoa
An Introduction to Compassionate Screen Scraping
A Syntax Coloring Template Filter for Django
Python Content Scraper for OneManga.com
BossArray for list-like Yahoo search results
Stripping Reddit From HackerNews With BOSS Mashup
Search Recipes for Yahoo's BOSS in Python
JSON, Object Oriented Views, and Starting a Real App
Deployment Scripts With BeautifulSoup
Using Optional Parameters in Django Urls
Cleanly Extending Python Markdown with Syntax Highlighting
Using PyFacebook without the Facebook middleware
Adding Social Bookmarking To a Django App
Syntax Highlighting with MarkDown, and a pinch of Automagick for Django
Extracting Models From Django Datadump
How to Migrate Data Across Model Changes
Writing Custom Contexts for Django
qa
redis
The Redis Protocol is pretty great.
Storing Bounded Timeboxes in Redis
IE's New Infrastructure and Writing Workflow
Python Datastructures Backed by Redis
reflection
Technical Debt and Peanut Butter Jars
Starting Again, Keeping It Simple
Reflections on a Year of Blogging and Japan
reliability
Fewer, happier incident heroes.
Incident response, programs and you(r startup).
Forecasting synthetic metrics.
reorg
rest
A Django Anti-Pattern, Rolling Your Own REST
rethinkdb
retrospective
Reflections on the Systems & Papers.
review
Notes on How Big Things Get Done
Notes on Enterprise Architecture as Strategy
Notes on Technology Strategy Patterns
Notes on The Software Engineer's Guidebook
Notes on The Value Flywheel Effect
Notes on Escaping the Build Trap
Notes on Soul of a New Machine, Messy Middle, Crazy at Work, Company of One.
Notes on Structure and Interpretation of Computer Programs.
Notes on The Timeless Way of Building
Notes on The Pyramid Principle.
Notes on A Philosophy of Software Design.
Notes from "Good Strategy, Bad Strategy."
Reading "The Nudist on the Late Shift" in 2008
"You Are Beautiful At All Times" by Yppah
"Building Scalable Web Sites" by Cal Henderson
"Puddle City Racing Lights" by Windmill
ruby
Refactoring Ruby programmatically.
Odors from Shoes Curious in OS X 10.4
Getting started with Shoes on OS X
Anti-Objects and Reflexive Decisions (repost)
rust
What's the inverse of literate programming.
scaling
"Building Scalable Web Sites" by Cal Henderson
scheme
Opinionated Programming Languages, The Huddled Masses, and Elitism
screen
Customizing screen and screenrc.
screen-scraping
An Introduction to Compassionate Screen Scraping
Python Content Scraper for OneManga.com
serverless
Serverless: Gatekeeping and Profit Margins
shoes
Odors from Shoes Curious in OS X 10.4
Getting started with Shoes on OS X
sisyphus
Writing, Analytics and Analysis
IE's New Infrastructure and Writing Workflow
Irrational Exuberance's Third Rebirth
sketches
Digital gardening at Exuberant Sketches.
skinning
Customizing LifeFlow Quickly with Skins
slack
Distributing your Slack application.
Using Cloud Firestore to power a Slack app.
Make Slack app respond to reacji.
Adding App Home to Slack app in Python.
Creating a Slack App in Python on GCP.
HMAC SHA256 signatures in Python and Flask.
slicehost
Upgrading from 256 to 512 megs of ram
Dreamier Dream Server with Nginx
Creating my Dream Server for Django
slides
Findjango Redesign & Slides for django-nyc
Slides from django-nyc on 11/18/2008
soel
software
Hard and Soft, Fluffy and Brittle
software-engineering
⭐ Some of my favorite technical papers.
Building a Software Deployment Pipeline
Company Culture and Managing Freedoms
Kill Your Heroes, Stop Doing it Harder
Social Hierarchies in Engineering Organizations
Comments on "Why Engineers Should Consider Formal Methods"
Paper Review of "Hints On Computer System Design"
Paper Review of "A Transaction Model"
Feedback Loops in Software Development
Skew, The Frontend Engineer's Misery
Technical Debt and Peanut Butter Jars
solango
Solango and Tomcat 6 on Ubuntu Intrepid
source
Releasing Kappa Source (PyObjC Twitter Client)
spam
sparklines-js
Sparklines in Javascript With Sparklines.js
speaking
Video of Developing Eng Leadership Styles.
Video of Using LLMs in your product.
Video of Solving the Eng Strategy crisis.
Slides for Measuring an engineering organization.
Speaking and podcasts in 2020.
Example Call For Proposals submissions.
"How to successfully design organizational processes"
"Investing in technical infrastructure"
"Paying Technical Debt at Scale - Migrations"
Speaking at QCon SF 2018 about migrations.
springsteen
Findjango Redesign & Slides for django-nyc
Findjango: A Django Search Vertical
Simplified django-springsteen Deploy on GAE
Deploying django-springsteen on Google App Engine
Reranking Results in django-springsteen
django-springsteen and Distributed Search
squeak
sre
Expanding on S[a-z]{3,} Reliability Engineer roles.
staff-eng
'Drawing your three maps' exercise
Mailbag: Should we just call them architects?
Self-publishing Staff Engineer.
Mailbag: Building alignment around a new strategy.
Mailbag: How to encourage good documents rather than perfect documents?
Why not create a StaffEng Slack or Discord?
Early Edition of "Staff Engineer" coming Jan 31st.
How do folks reach Staff Engineer?
Mailbag: Evolving your engineer career beyond the career level.
staff-plus
Video of practice run of QCon SF 2024 talk on Principal Engineers.
⭐ How to create software quality.
Leadership requires taking some risk.
⭐ Useful tradeoffs are multi-dimensional.
Solving the Engineering Strategy crisis.
Weak and strong team concepts.
What do Staff engineers actually do?
Managing Staff-plus engineers.
⭐ Write five, then synthesize: good engineering strategy is boring.
Interviewing for Staff-plus roles.
⭐ Managing technical quality in a codebase.
Finding the right company to reach Staff Engineer.
Staff-plus interview processes.
Does the Staff title even matter?
Where do Staff-plus engineers fit into the org?
Picking problems for programming interviews.
Staying aligned with authority.
Resources for Staff-plus engineers.
storage
stories
Learning about personal finances.
⭐ How the Digg team was acquihired.
Rewriting the Yahoo! BOSS Datahub.
⭐ Digg's v4 launch: an optimism born of necessity.
strategy
Rough notes on learning Wardley Mapping.
Navigating Private Equity ownership.
Using systems modeling to refine strategy.
Strategy testing: avoid the waterfall strategy trap with iterative refinement.
Should we decompose our monolith?
When to write strategy, and how much?
Making engineering strategies more readable
Leadership requires taking some risk.
Notes on How Big Things Get Done
Notes on Enterprise Architecture as Strategy
Notes on Technology Strategy Patterns
Notes on The Value Flywheel Effect
Video of Solving the Eng Strategy crisis.
Solving the Engineering Strategy crisis.
⭐ Writing an engineering strategy.
⭐ Write five, then synthesize: good engineering strategy is boring.
Engineering strategy every org should write.
Surplus rules of engineering strategy.
Care and feeding for your engineering strategy.
Things that aren't engineering strategy.
A survey of engineering strategies.
syntaxhighlighter
Erlang Brush for SyntaxHighlighter
systems
⭐ How to safely think in systems.
Running systems library as Cloud Function.
Binder for hosting Jupyter notebooks.
Writing a reliability strategy: reason about complex things with system models.
System dynamics in a jupyter notebook.
systems-thinking
⭐ Eng org seniority-mix model.
Modeling impact of LLMs on Developer Experience.
⭐ Why limiting work-in-progress works.
Binder for hosting Jupyter notebooks.
Writing a reliability strategy: reason about complex things with system models.
Modeling a hiring funnel with Systems library.
Introduction to systems thinking.
tailscale
talks
Video of Developing Eng Leadership Styles.
Video of Using LLMs in your product.
Video of Solving the Eng Strategy crisis.
Slides for Measuring an engineering organization.
Speaking and podcasts in 2020.
"How to successfully design organizational processes"
"Investing in technical infrastructure"
"Paying Technical Debt at Scale - Migrations"
tanka
tech
techwriters
template
STAR method for interview questions.
templates
Bad Ideas and Regular Expressions in Templates
testing
Two-Faced Django Part 2: Models and Django Testing
thoughts
Spoken Languages, Blub, and Convenience
Midnight Philosophy in The Garden of Good and Evil
Replacing the Karma Social Model with Whuffie
Reflections on the old year, and the new one
Context is a Parameter in Calculating Truth
tla
tokyo
touchdefense
Introducing a Tutorial and touchDefense
transactions
Paper Review of "A Transaction Model"
translations
Translating Entries into Other Languages with LifeFlow
travel
trying
ubuntu
Solango and Tomcat 6 on Ubuntu Intrepid
The Django and Ubuntu Intrepid Almanac
Dreamier Dream Server with Nginx
Creating my Dream Server for Django
ui
Transcending Search-as-You-Type Stickiness
usability
Don't Make Me Defend Your Claims
wardley
Measuring developer experience, benchmarks, and providing a theory of improvement.
Rough notes on learning Wardley Mapping.
wardley-map
web-callbacks
Proposal for Authenticating Web Callbacks
windmill
"Puddle City Racing Lights" by Windmill
winter
Music Recommendations & Snow Pictures
writing
ReadME contribution on reliability programs.
Plagarism, idea theft, and writing online.
Platforms change but cool URIs don't.
Stuff I haven't written yet, but hopefully will someday (2022).
Digital gardening at Exuberant Sketches.
⭐ How to be a tech influencer.
"Good Process is Evolved, Not Designed" in 97 Things Every Engineering Manager Should Know
"Do engineering managers need to be technical?" in Increment.
What I learned writing a book.
Elegant Puzzle press, reviews and podcasts.
An Elegant Puzzle is released today!
An Elegant Puzzle: Systems of Eng Management.
Quick blogging update for October 2018
Braindump on approach to writing a technical book.
Experimenting with content and distribution.
Advice to Programmers in College
Examining Web Analytics to Implement (repost)
Anti-Objects and Reflexive Decisions (repost)
A Comp. Sci Degree is What You Make Of It (repost)
Is the JVM the "next assembly"? I hope not. (repost)
Good to Great, Paul Graham and Ayn Rand (repost)
Reflections on Django (repost)
Finding Our Programming Flow (repost)
yahoo
Rewriting the Yahoo! BOSS Datahub.
year-in-review
Engineering management stuff I learned in 2017.
yppah
"You Are Beautiful At All Times" by Yppah