The Curious Engineer

All blogs / Engineering management / careers

Irrational Exuberance

lethain.com

Hey folks, I’m Will Larson! I wrote An Elegant Puzzle, Staff Engineer, The Engineering Executive’s Primer, and Crafting Engineering Strategy. You might also be interested in my collection of popular blog posts over the years, or to read my writing as it’s published via my newsletter or my RSS feed.

Engineering management / careersSoftware / engineering practiceAI / ML

Posts
887 from 7 Apr 2007 to 30 Oct 2026
Posting
weekly (36 in the last year)
Kind
personal blog
Feed
https://lethain.com/feeds.xml

2026 24

  1. Self-reinforcing quality / adopting verification pattern
  2. Speeding up code review with `small-change`
  3. my RSS feed
  4. Trying the Software Factory pattern.
  5. Roadmap decisions rather than dates.
  6. Middle management roles are also a trap.
  7. Generated and suppressed demand.
  8. Make no assumptions.
  9. Revised rules of engineering leadership.
  10. Early and late-stage hypergrowth.
  11. Agents as scaffolding for recurring tasks.
  12. The agentic passive voice.
  13. Judgment and creativity are all you need.
  14. Refactoring internal documentation in Notion
  15. Should you include engineers in your leadership meetings?
  16. Writing Visualizations with Remotion
  17. Curiosity is the first-step in problem solving.
  18. Stripe's Lighthouse Hiring pattern.
  19. Pressure Without a Plan.
  20. Learning from Every's Compound Engineering
  21. Sharing Claude transcripts.
  22. Moved newsletter from Mailchimp to Buttondown.
  23. ⭐ Building internal agents
  24. Building an internal agent: Iterative prompt and skill refinement

2025 52

  1. Building an internal agent: Subagent support
  2. Building an internal agent: Code-driven vs LLM-driven workflows
  3. Building an internal agent: Logging and debugability
  4. Building an internal agent: Evals to validate workflows
  5. Building an internal agent: Triggers
  6. Building an internal agent: Context window compaction
  7. Building an internal agent: Progressive disclosure and handling large files
  8. Building an internal agent: Adding support for Agent Skills
  9. 2025 in review.
  10. Automatically merging dependabot PRs
  11. Facilitating AI adoption at Imprint
  12. Coding at work (after a decade away).
  13. ⭐ "Good engineering management" is a fad
  14. Crafting Engineering Strategy!
  15. Commenting on Notion docs via OpenAI and Zapier.
  16. An agent to use Notion docs as prompts to comment on Notion docs.
  17. ⭐ Moving from an orchestration-heavy to leadership-heavy management role.
  18. Advancing the industry, part two.
  19. What can agents actually do?
  20. What is the competitive advantage of authors in the age of LLMs?
  21. My desk setup in 2025.
  22. Stuff I learned at Carta.
  23. systems-mcp: generate systems models via LLM
  24. How to provide feedback on documents.
  25. Public company comparables.
  26. How to filter out old email from inbox
  27. How should Stripe deprecate APIs? (~2016)
  28. Systems model of API deprecation
  29. library-mcp: working with Markdown knowledge bases
  30. Refreshed StaffEng.com and a few other sites
  31. Why did Stripe build Sorbet? (~2017)
  32. How to get better at strategy?
  33. Wardley mapping the service orchestration ecosystem (2014).
  34. Script for consistent linking within book.
  35. How to resource Engineering-driven projects at Calm? (2020)
  36. Is this strategy any good?
  37. Steps to build an engineering strategy.
  38. Operational mechanisms for strategy.
  39. Career advice in 2025.
  40. Setting policy for strategy.
  41. Who gets to do strategy?
  42. How to integrate Stripe's acquisition of Index? (2018)
  43. Diagnosis in engineering strategy.
  44. Exploring for strategy.
  45. How should we control access to user data?
  46. Our own agents with their own tools.
  47. Is engineering strategy useful?
  48. "We're a product engineering company!" — Engineering strategy at Calm.
  49. Bridging theory and practice in engineering strategy.
  50. Uber's service migration strategy circa 2014.
  51. Service onboarding model for Uber (2014).
  52. Refining strategy with Wardley Mapping.

2024 41

  1. How to effectively refine engineering strategy.
  2. Wardley mapping the LLM ecosystem.
  3. Wardley mapping of Gitlab Strategy.
  4. 2024 in review.
  5. Measuring developer experience, benchmarks, and providing a theory of improvement.
  6. Rough notes on learning Wardley Mapping.
  7. Video of practice run of QCon SF 2024 talk on Principal Engineers.
  8. How to get more headcount.
  9. Navigating Private Equity ownership.
  10. Using systems modeling to refine strategy.
  11. ⭐ Eng org seniority-mix model.
  12. Modeling driving onboarding.
  13. Modeling impact of LLMs on Developer Experience.
  14. Strategy testing: avoid the waterfall strategy trap with iterative refinement.
  15. Should we decompose our monolith?
  16. Executive translation.
  17. Video of Developing Eng Leadership Styles.
  18. Numbers go up.
  19. When to write strategy, and how much?
  20. Developing domain expertise: get your hands dirty.
  21. Physics and perception.
  22. ⭐ How to create software quality.
  23. Video of Using LLMs in your product.
  24. No Wrong Doors.
  25. Making engineering strategies more readable
  26. How should you adopt LLMs?
  27. Load-bearing / Career-minded / Act Two rationales
  28. Constraints on giving feedback.
  29. Notes on how to use LLMs in your product.
  30. Ex-technology companies.
  31. Leadership requires taking some risk.
  32. Friction isn't velocity.
  33. More (self-)publishing thoughts.
  34. Digital release of Engineering Executive's Primer.
  35. Thesis on value accumulation in AI.
  36. High-Context Triad.
  37. ⭐ Useful tradeoffs are multi-dimensional.
  38. Navigating ambiguity.
  39. ⭐ Layers of context.
  40. Those five spare hours each week.
  41. Predictability.

2023 60

  1. 2023 in review.
  2. Notes on How Big Things Get Done
  3. ⭐ Writers who operate.
  4. Advancing the industry.
  5. Notes on Enterprise Architecture as Strategy
  6. Create technical leverage: workflow improvements & product capabilities
  7. Navigators
  8. Notes on The Crux
  9. Engineering strategy notes.
  10. Notes on Technology Strategy Patterns
  11. Notes on The Software Engineer's Guidebook
  12. Notes on Tidy First?
  13. Notes on The Value Flywheel Effect
  14. Team Charters are a trap.
  15. A bit late, but I did leave Calm.
  16. Benchmarking.
  17. Getting lucky isn't a plan.
  18. Thoughts on writing and publishing Primer.
  19. Developing leadership styles
  20. Video of Solving the Eng Strategy crisis.
  21. Solving the Engineering Strategy crisis.
  22. Drafted Eng Executive's Primer!
  23. Performance & Compensation (for Eng Execs).
  24. The Engineering executive’s role in hiring.
  25. Manage your priorities and energy.
  26. Gelling your Engineering leadership team.
  27. Building personal and organizational prestige
  28. Playing with Streamlit and LLMs.
  29. Extract the kernel.
  30. Slides for Measuring an engineering organization.
  31. Good hypergrowth/curator manager.
  32. The Engineering Executive's Primer.
  33. Balancing your CEO, peers, and Engineering.
  34. Grab bag of random thoughts.
  35. Interviewing engineering executives.
  36. Poking around OpenAI.
  37. How to plan as an engineering executive.
  38. Who runs Engineering processes?
  39. Onboarding peer executives.
  40. ⭐ Deciding to leave your (executive) job.
  41. Using cultural survey data.
  42. Running your engineering onboarding program.
  43. Engineering’s role in Mergers & Acquisitions.
  44. Building your executive network.
  45. ReadME contribution on reliability programs.
  46. ⭐ Writing an engineering strategy.
  47. Better to micromanage than be disengaged.
  48. Culture vs systems.
  49. ⭐ Setting engineering org values.
  50. Safe defaults.
  51. Internal comms for executives.
  52. What does it mean to be a cost center?
  53. Meetings for an effective eng organization.
  54. Mailbag: What should you do if you report to an underperforming executive?
  55. Trying Plausible.
  56. Getting a job as an engineering executive.
  57. Make an effective executive LinkedIn profile.
  58. How to capitalize engineering costs.
  59. Trying Tailscale.
  60. ⭐ Measuring an engineering organization.

2022 41

  1. A brief rant on converging compliance regimes.
  2. Lessons not worth learning.
  3. 2022 in review.
  4. 2019 - 2022 reading recap.
  5. When shouldn't you roll out business reviews?
  6. Company, team, self.
  7. Twitter.
  8. The flying wedge.
  9. Work hard / work smart.
  10. Time and energy.
  11. Mailbag: What isn't measurable? To hire as exec or not?
  12. Reminiscing: the retreat to comforting work.
  13. Fewer, happier incident heroes.
  14. One-on-ones with executives.
  15. 'Drawing your three maps' exercise
  16. Bar raisers, hiring committees, and other complex ways to improve hiring quality.
  17. How to estimate disk space.
  18. ⭐ Reading a Profit & Loss statement.
  19. Downturn career decisions.
  20. STAR method for interview questions.
  21. Career checkup template.
  22. Plagarism, idea theft, and writing online.
  23. Mailbag: Did I become a manager too soon?
  24. Moving the finish line.
  25. Your migration probably isn’t failing due to insufficient staffing.
  26. ⭐ Founding Uber SRE.
  27. Platforms change but cool URIs don't.
  28. Interim assignments.
  29. Stuff I haven't written yet, but hopefully will someday (2022).
  30. Stripe's model of product-led, developer-centric growth.
  31. Mailbag: Resources for Engineering Directors.
  32. Generating a daily snapshot of Twitter Search results.
  33. Should you prioritize infrastructure costs?
  34. What is innovation?
  35. ⭐ Hard to work with.
  36. Starting to write Infrastructure Engineering.
  37. ⭐ Trunk and Branches Model for Scaling Infrastructure Organizations
  38. Getting started with git-scraping
  39. The impact of less scalable work.
  40. Mix and match mental models.
  41. Index of writing on hiring.

2021 33

  1. Things I learned hiring a data science leader.
  2. Dipping toes in angel investing.
  3. Why not start an indie tech book publisher?
  4. ⭐ Inspection and the limits of trust.
  5. Thesis on engineering onboarding products.
  6. 2021 in review.
  7. The terminal level rulebook.
  8. Should you write a technical or management book?
  9. Notes on The Kool-Aid Factory's Planning Issue.
  10. How to find engineering leadership roles.
  11. ⭐ How to safely think in systems.
  12. Learning about personal finances.
  13. Notes on hiring a Foundation Eng leader.
  14. Closing calls: tell the best version of the truth.
  15. Create capacity rather than capture it.
  16. Getting to yes: solving engineering manager hiring loops that reject every candidate.
  17. Pockets of rest enable careers.
  18. Can senior leaders make friends at work?
  19. An interlude.
  20. Mailbag: Should we just call them architects?
  21. RSS feed changing! Migrating blog in next few days.
  22. Mailbag: How to deal with unhappy users on your Internal platform?
  23. Measures of engineering impact.
  24. Digital gardening at Exuberant Sketches.
  25. Self-publishing Staff Engineer.
  26. Mailbag: Building alignment around a new strategy.
  27. Mailbag: How to encourage good documents rather than perfect documents?
  28. The curious case of the missing regretted attrition.
  29. Staff Engineer.
  30. Why not create a StaffEng Slack or Discord?
  31. ⭐ How to be a tech influencer.
  32. How to present to executives.
  33. Early Edition of "Staff Engineer" coming Jan 31st.

2020 82

  1. Pacing and isolating change.
  2. Tech Lead Management roles are a trap.
  3. Interesting work happens at the edges.
  4. 2020 in review.
  5. Weak and strong team concepts.
  6. What do Staff engineers actually do?
  7. Managing Staff-plus engineers.
  8. ⭐ Write five, then synthesize: good engineering strategy is boring.
  9. Mailbag: Advice for someone five years into their tech career?
  10. Notes on compliance tools.
  11. Interviewing for Staff-plus roles.
  12. Finding your Staff sponsor.
  13. My skepticism towards current developer meta-productivity tools.
  14. Renegotiating your first vendor contract.
  15. Speaking and podcasts in 2020.
  16. Engineering strategy every org should write.
  17. Surplus rules of engineering strategy.
  18. Care and feeding for your engineering strategy.
  19. Things that aren't engineering strategy.
  20. A survey of engineering strategies.
  21. Engineering strategy.
  22. Developer productivity surveys.
  23. ⭐ Managing technical quality in a codebase.
  24. Finding the right company to reach Staff Engineer.
  25. Deciding to switch companies.
  26. TechWriters community.
  27. Being visible.
  28. Staff projects.
  29. ⭐ Work on what matters.
  30. Using QR Codes in printed books.
  31. Build a network of peers.
  32. Performative leadership.
  33. The Grand Migration.
  34. Promotion pathologies.
  35. Staff promotion packets.
  36. The Saint-Exupéry of metrics.
  37. Some common hiring manager mistakes.
  38. Customizing screen and screenrc.
  39. Create space for others.
  40. Staff-plus interview processes.
  41. External office hours.
  42. Does the Staff title even matter?
  43. Where do Staff-plus engineers fit into the org?
  44. StaffEng Updates, June 2020
  45. Stuff I've learned about Diversity, Equity and Inclusion over the past few years.
  46. How to practice backend engineering.
  47. Trapped in a Values Oasis.
  48. My career story.
  49. Mentoring from privilege.
  50. Ways I'm available to help.
  51. Black Lives Matter.
  52. To lead, you have to follow.
  53. The rush to "show value."
  54. April updates for StaffEng.
  55. Picking problems for programming interviews.
  56. Minding our stories.
  57. Testing Python projects for Google Cloud Run.
  58. Staff engineer archetypes.
  59. Poking around Contentful.
  60. Build versus buy.
  61. Staying aligned with authority.
  62. Getting in the room.
  63. Learn to never be wrong.
  64. How do folks reach Staff Engineer?
  65. Hotspotting developer productivity.
  66. vtt-compactor: slightly less verbose VTT files.
  67. Resources for Staff-plus engineers.
  68. From one to two: how to start a successful distributed engineering office.
  69. Interviewing senior engineering leaders.
  70. Mailbag: Evolving your engineer career beyond the career level.
  71. Crowdsourcing CTO/VPE learning circles.
  72. Do you work at a tech company?
  73. Share stories, not advice.
  74. How to partner with an executive assistant.
  75. Example Call For Proposals submissions.
  76. Joining Calm.
  77. Some rough notes on running learning circles.
  78. How to build your company's engineering brand.
  79. More great memos.
  80. ⭐ Your first 90 days as CTO or VP Engineering.
  81. How to navigate and/or survive your acquihire.
  82. ⭐ How the Digg team was acquihired.

2019 67

  1. 2019 in review.
  2. "Good Process is Evolved, Not Designed" in 97 Things Every Engineering Manager Should Know
  3. Incident response, programs and you(r startup).
  4. Mailbag: When your team wants your job, personal brand, and service registries.
  5. Maintaining platform-product fit.
  6. "How to successfully design organizational processes"
  7. "Do engineering managers need to be technical?" in Increment.
  8. Expanding on S[a-z]{3,} Reliability Engineer roles.
  9. Notes on Building Evolutionary Architectures.
  10. You only learn when you reflect.
  11. Distributing your Slack application.
  12. Using Cloud Firestore to power a Slack app.
  13. Make Slack app respond to reacji.
  14. Adding App Home to Slack app in Python.
  15. Creating a Slack App in Python on GCP.
  16. HMAC SHA256 signatures in Python and Flask.
  17. Forecasting synthetic metrics.
  18. Sending weekly 5-15 updates.
  19. "Investing in technical infrastructure"
  20. Healthchecks at scale.
  21. An Elegant Puzzle by the numbers, five months later.
  22. Founding Monocle Studios.
  23. Nobody cares about quality.
  24. ⭐ A forty-year career.
  25. Notes on data modeling from Handbook of Relational Database Design.
  26. Organizing team offsites.
  27. Rewriting the Yahoo! BOSS Datahub.
  28. Describing fault domains.
  29. Distributed systems vocabulary.
  30. ⭐ Reclaim unreasonable software.
  31. What's the inverse of literate programming.
  32. Head in the clouds.
  33. Don't follow the sun.
  34. Notes on Escaping the Build Trap
  35. Fostering program engagement.
  36. Programs: tips for owning the unownable.
  37. Some career advice.
  38. Running systems library as Cloud Function.
  39. Path to engineering manager of managers.
  40. An Elegant Puzzle @ Software Engineering Daily
  41. What I learned writing a book.
  42. Privilege's upward-facing window.
  43. Elegant Puzzle press, reviews and podcasts.
  44. An Elegant Puzzle is released today!
  45. Make timeline tradeoffs using iterative elimination tournaments.
  46. ⭐ How to invest in technical infrastructure.
  47. Can governments design great APIs? Let's hope so.
  48. An Elegant Puzzle is available for pre-order.
  49. To innovate, first deprecate.
  50. ⭐ Magnitudes of exploration.
  51. An Elegant Puzzle coming in late May.
  52. Fire fixation.
  53. Rules of thumb for org design.
  54. ⭐ How to evolve an engineering organization.
  55. Paying the predictability tax.
  56. Valuing already-solved problems.
  57. ⭐ Why limiting work-in-progress works.
  58. Binder for hosting Jupyter notebooks.
  59. Writing a reliability strategy: reason about complex things with system models.
  60. Notes on Soul of a New Machine, Messy Middle, Crazy at Work, Company of One.
  61. Growing with your company's complexity.
  62. Meeting people.
  63. An Elegant Puzzle: Systems of Eng Management.
  64. Newsletter for Irrational Exuberance.
  65. ⭐ Metrics for the unmeasurable.
  66. Some delightful developer experiences in 2019.
  67. Good process is evolved, not designed.

2018 77

  1. Defining policy, process and programs.
  2. Notes on Structure and Interpretation of Computer Programs.
  3. 2018 in review.
  4. "Paying Technical Debt at Scale - Migrations"
  5. ⭐ Infrastructure planning: users, baselines and timeframes.
  6. Notes on The Timeless Way of Building
  7. Quick tutorial on using GraphQL with Python.
  8. Headcount dilemmas.
  9. Speaking at QCon SF 2018 about migrations.
  10. Talent distributions.
  11. Landing in the JET Program.
  12. Capturing resources.
  13. Quick blogging update for October 2018
  14. Notes on The Pyramid Principle.
  15. System dynamics in a jupyter notebook.
  16. Career narratives.
  17. Saying no.
  18. ⭐ Work the policy, not the exceptions.
  19. Modeling a hiring funnel with Systems library.
  20. Introduction to systems thinking.
  21. Notes on A Philosophy of Software Design.
  22. Designing interview loops.
  23. Communities of learning.
  24. Time management: the leadership meta-problem.
  25. Problem exploration, selection and validation.
  26. Introducing SREs, TPMs and other specialized roles.
  27. Career levels, designation momentum, etc.
  28. Designations, levels and calibrations.
  29. Make your peers your first team.
  30. Digg v4 @ Internet History Podcast
  31. Presenting to executives.
  32. Your hiring funnel.
  33. Scaling technical consistency.
  34. Book recommendations.
  35. Succession planning.
  36. Identify your controls.
  37. Opportunity & Membership.
  38. Service cookbooks.
  39. ⭐ Sizing engineering teams.
  40. Selecting project leads.
  41. Writing strategies and visions.
  42. Braindump on approach to writing a technical book.
  43. Guiding broad change with metrics.
  44. Goals and baselines.
  45. ⭐ Digg's v4 launch: an optimism born of necessity.
  46. My rails for engineering leadership.
  47. Accelerate's definition of developer productivity.
  48. The briefest of media trainings.
  49. A case against top-down global optimization.
  50. Infrastructure migrations @ Interestings
  51. ⭐ Staying on the path to high performing teams.
  52. Where to stash your organizational risk?
  53. Experiment with distributed finite state machines.
  54. You can't reason about big balls of mud.
  55. Consider the team you have for senior positions.
  56. Setting organizational direction.
  57. Model, document and share.
  58. ⭐ Migrations: the sole scalable fix to tech debt.
  59. Reflections on the Systems & Papers.
  60. The Redis Protocol is pretty great.
  61. ⭐ Some of my favorite technical papers.
  62. Close out, solve or delegate.
  63. Managing in the growth plates.
  64. Infrastructure engineering @ Inside Intercom
  65. Notes from "Good Strategy, Bad Strategy."
  66. How I write group emails at work.
  67. Refactoring Ruby programmatically.
  68. Seth Godin's The Dip.
  69. ⭐ Product management in infrastructure eng.
  70. Global secondary indexes.
  71. Experimenting with content and distribution.
  72. Inclusion in the first shift.
  73. Vulnerability.
  74. The physics of Cloud expansion.
  75. Async processing with sync semantics?
  76. ⭐ Cold sourcing: hire someone you don't know.
  77. Roles over rocket ships, and why hypergrowth is a weak predictor of personal growth.

2017 16

  1. Engineering management stuff I learned in 2017.
  2. Analyzing cross-service requests with Apache Beam.
  3. From lambda to kappa and dataflow paradigms.
  4. Tools for operating a growing organization.
  5. Sketching out failure injection on Kubernetes.
  6. Simple Continuous Deployment on GKE with gke_ci
  7. Trying out Google Container Engine
  8. Providing pierceable abstractions.
  9. Options for orchestrating periodic tasks.
  10. Increment has launched.
  11. Notes from fifth blog rewrite
  12. Running an engineering reorg
  13. Partnering with your manager
  14. Technology Inheritance
  15. Infrastructure between cost center and ego trip
  16. Ways Engineering Managers Get Stuck

2016 14

  1. Braindump on Load Generation
  2. Finding Managerial Scope
  3. Usable QA Environments
  4. Serverless: Gatekeeping and Profit Margins
  5. ⭐ Productivity in the age of hypergrowth.
  6. You Should Take More Vacation
  7. Acing Your Architecture Interview
  8. Fail Open and Layer Policy
  9. Thoughts on Envoy's Design
  10. QoS, Cost & Quotas
  11. Running a Humane Interview Process
  12. Healing a Burned Out Team
  13. Wherein I Rewrite My Blog a Fifth Time
  14. Your Philosophy of Management

2015 1

  1. Adding Value as an Engineering Manager

2014 4

  1. Developing service oriented architectures.
  2. Building a Software Deployment Pipeline
  3. Irrational Exuberance's Fourth Coming
  4. Company Culture and Managing Freedoms

2012 12

  1. War Card Game in Python
  2. Reflection on RethinkDB
  3. Kill Your Heroes, Stop Doing it Harder
  4. Configuration Driven Behavior
  5. Extraction: Get Metadata from HTML Documents
  6. Social Hierarchies in Engineering Organizations
  7. Creating Multi-Worksheet Excel Docs with xlwt
  8. Building Technical Leverage
  9. Hosting a Paper Reading Group
  10. Why Pagination Was Hard at Digg
  11. Slack and Hope for Middle Management
  12. Digg v4's Architecture and Development Processes

2011 11

  1. Writing, Analytics and Analysis
  2. Storing Bounded Timeboxes in Redis
  3. Using Flot.js with the Digg Streaming API
  4. ⭐ Introduction to architecting systems for scale.
  5. How to Filter Bots From Analytics
  6. Don't Make Me Defend Your Claims
  7. IE's New Infrastructure and Writing Workflow
  8. Irrational Exuberance's Third Rebirth
  9. Coding Projects
  10. Articles and Series
  11. Being Defensive

2010 19

  1. Python Default Parameter Value Gotchas
  2. Python Datastructures Backed by Redis
  3. DjangoDash and Drinkfindr
  4. Time to Load Redis Snapshots
  5. Notes on Redis Memory Usage
  6. SuperFamily Relationships with Lazyboy
  7. Tailing in Python
  8. Callbacks Are An Informal Pipeline
  9. Porting Django's urlpatterns to Node.js
  10. Retiring and Releasing Codernote.com
  11. The Day I Broke Production
  12. Looking For a New Agenda
  13. Log Collection Server with Node.js
  14. Debugging Crashes With Small Scripts
  15. A Python-Markdown Extension for Embedding Graphviz
  16. Formatting Multipart Formdata in Erlang
  17. A Photo Album with Python and PIL
  18. Refactoring & Testing Our Dynamo Clone
  19. Quick Notes for Starting 2010

2009 72

  1. Crash on Compiling App With MKMapView
  2. Nagios Monitoring for Erlang
  3. Replicating receive-after in an Erlang gen_server
  4. Durable Writes & Consistent Reads
  5. Hands On Review of the Dynamo Paper
  6. Recurring Events and Message Passing
  7. Scalable Scraping in Clojure
  8. A Couple of Clojure Agent Examples
  9. Writing Files in Clojure
  10. Reading Files in Clojure
  11. Setting Up TLA+ Tools on OS X
  12. Comments on "Why Engineers Should Consider Formal Methods"
  13. Money or Meaning: Spending Our Wealth of Time
  14. Cleaning up erlang_markdown
  15. A Failed Stack-based Markdown Interpreter
  16. Proposal for Authenticating Web Callbacks
  17. Generating RSS feeds via BeepBeep
  18. How Pitance Versions Documents in CouchDB
  19. Erlang Brush for SyntaxHighlighter
  20. Pitance: Template and Snippet Infrastructure
  21. Load Balancing Across Erlang Process Groups
  22. Changing Mimetypes for Text Responses in BeepBeep
  23. Paper Review of "Hints On Computer System Design"
  24. Paper Review of "A Transaction Model"
  25. Success and Dancing Shoes
  26. Several Approaches to Versioning Files in PHP
  27. Distinguishing Strings from Lists in Erlang
  28. Freebase Hackday and Image Game
  29. BeepBeep, CouchDB and a Trivial Blog
  30. Using Ajax with the BeepBeep Microframework
  31. Getting Started With BeepBeep
  32. What Do Django People Search About?
  33. YUI Dialogs, IE z-index and Tragedy
  34. Feedback Loops in Software Development
  35. Recycling Hacker Fear-Mongering
  36. Skew, The Frontend Engineer's Misery
  37. OS X Textfield Encoding (maybe) Issue
  38. Findjango Redesign & Slides for django-nyc
  39. How To Remotely Admin Servers Via Twitter
  40. Findjango, A Week of Progress
  41. Making Django Apps Run On and Off GAE
  42. Technical Debt and Peanut Butter Jars
  43. Findjango: A Django Search Vertical
  44. Solango and Tomcat 6 on Ubuntu Intrepid
  45. Simplified django-springsteen Deploy on GAE
  46. Deploying django-springsteen on Google App Engine
  47. Reranking Results in django-springsteen
  48. django-springsteen and Distributed Search
  49. Leaving DreamHost
  50. Depicting Human Relationships
  51. Smaller Header, JobSyndicate, Printable Articles
  52. Measuring Single and Multi Server Performance
  53. Rewriting Parameterized URLs with Nginx
  54. Overview of Single vs. Multi Server Architecture
  55. When psycopg2 Can't Import tz
  56. The Django and Ubuntu Intrepid Almanac
  57. Visually Representing Word Structures
  58. Using Threadpools in Python
  59. Setting up CouchDB-Lucene on OS X
  60. We're All Sinners and Cosiners
  61. Circle and Line Diaspora
  62. Spiral and Square
  63. Visualizing Keyterms with BOSS and Processing
  64. Cull Lingering Erlang Heart Processes
  65. Hard and Soft, Fluffy and Brittle
  66. Simple Unittesting in PHP
  67. Stripping Illegal Characters from XML in Python
  68. Huge CSV and XML Files in Python
  69. A Filter to Display Neighbors in a List
  70. Genetic Programming: A Novel Failure
  71. ⭐ Genetic algorithms: cool name & damn simple.
  72. Moving Into 2009

2008 192

  1. Django-Portfolio: Organize and Display Projects
  2. The Subtle Joys of Generic Methods
  3. A Command Line Tool for Loading CouchDB Documents
  4. Full-Text Search in CouchDB Using... CouchDB
  5. Blogging as People
  6. Intro to HTTP::Server::Simple::CGI
  7. Finally Waving The White Flag to Objective-C 2.0
  8. Fixing What Ails LifeFlow
  9. Prevent Cron Cancer With a File-based Mutex
  10. Parallel HTTP Requests in Python
  11. Reading XML Files on the iPhone
  12. A Different Approach to local_settings.py
  13. XML::Twig for Large XML Files in Perl
  14. Slides from django-nyc on 11/18/2008
  15. Python-Brightkite for... you get the idea
  16. Introducing a Tutorial and touchDefense
  17. The Blogging Hypochondriac
  18. The Fate of Pop and Hip-Hop in 2008
  19. XML::Simple for Non-Perlers
  20. You Only Learn the First Time
  21. Bad Ideas and Regular Expressions in Templates
  22. Deploying Django with Fabric
  23. Development to Deployment in Django
  24. Creating Slideshows with Cocos2d iPhone
  25. Customize site style by user with django-userskins
  26. User Registration Apps for Django
  27. Releasing Kappa Source (PyObjC Twitter Client)
  28. Advice to Programmers in College
  29. Touch Detection in Cocos2d iPhone
  30. Being a Local Maximum
  31. HSS and YUI Compressor in AYM CMS
  32. R.I.P. Your Resume Site to Awesome
  33. Taming AuditTrail Proliferation
  34. Releasing Source for Mahou
  35. Choosing Between AuditTrail and Django-Rcsfield
  36. Setting Up Django-Rcsfield
  37. Restricting User Signups in Django
  38. Failing a Contract
  39. The Magical Source of YUI Get's Power
  40. Notes on Cocos2d iPhone Development
  41. Suffer Less By Using Django Dev Server as a Proxy
  42. Writing for Consumption
  43. Starting Again, Keeping It Simple
  44. As-You-Type Slug Uniqueness Validation
  45. Layers of Authentication
  46. Custom Django Views for Happier Ajax
  47. Using Automator to Scale Images Horizontally
  48. Redesign of Lethain.com
  49. Intro to Unintrusive JavaScript with Django
  50. A One-Stop AYM CMS Solution
  51. Making Static Dynamic Again; AYM CMS
  52. Intricate Static Websites With Django Templates
  53. Sparklines.js Port to Python
  54. Yes, You Do Care About Cappuccino
  55. Extending Mahou; Gotchas and Snippets
  56. Extracting Data From Google Analytics Reports
  57. Extending Classes in Cappuccino
  58. Writing Mahou; a Cappuccino Image Search
  59. Startups and Assembly Lines
  60. Migrating the 'This Week in Django' Concept
  61. Poor Wireless Connectivity for MacBook
  62. Naming and Casing Convention in PyObjC
  63. Introducing Kappa, a Twitter Client
  64. I Live in New Jersey
  65. Dynamic Ad Targeting With django-monetize
  66. Transcending Search-as-You-Type Stickiness
  67. Epic PyObjC, Part 5: Resources and Farewell
  68. Epic PyObjc, Part 4: Drag & Drop, Multiple Nibs
  69. Epic PyObjC, Part 3: Browsing, Caching, Indicating
  70. Epic PyObjC, Part 2: Adding a Library & Bindings
  71. ⭐ An Epic Introduction to PyObjC and Cocoa
  72. Writing to Application Support in PyObjC
  73. Writing Titles Under Ninety-Five Characters
  74. Deleting From NSOutlineView With the Delete Key
  75. How to Use Selectors in PyObjC
  76. An Introduction to Using CouchDB with Django
  77. Global Popularity of Programming Languages
  78. An Introduction to Compassionate Screen Scraping
  79. A Syntax Coloring Template Filter for Django
  80. A Year Later, Home From Japan
  81. Python Content Scraper for OneManga.com
  82. Reading "The Nudist on the Late Shift" in 2008
  83. Cocoa Drag and Drop text into the Dock Icon
  84. How to Write a Wrapper Library
  85. BossArray for list-like Yahoo search results
  86. Replacing Django's ORM with SQLAlchemy
  87. Replacing Django's Template Language With Jinja2
  88. An Introduction to Django's Loose Coupling
  89. Reflections on a Year of Blogging and Japan
  90. 小学校と教える授業の最後の日
  91. Last Day of Elementary School and Classes
  92. Stripping Reddit From HackerNews With BOSS Mashup
  93. Polishing Up Our Django & BOSS Search Service
  94. Search Recipes for Yahoo's BOSS in Python
  95. Yahoo's Build your Own Search Service in Django
  96. Release of LifeFlow 0.91
  97. Advice for ALTs Considering a Second Year
  98. A Thursday: Elementary School
  99. An Introduction to a Week in Japan
  100. ReST, Textile and HTML in Markdown
  101. Updates to Sparklines.js
  102. Sparklines in Javascript With Sparklines.js
  103. JSON, Object Oriented Views, and Starting a Real App
  104. Ambush Code Review Learns Code Diffs
  105. Overview of Using Django on the Google App Engine
  106. A Sunday Project: Ambush Code Review
  107. Up to Speed
  108. A Django Anti-Pattern, Rolling Your Own REST
  109. Minimalism
  110. Working on LifeFlow's Public Face
  111. Release of LifeFlow Version 0.90
  112. Deployment Scripts With BeautifulSoup
  113. Processed Tower Defense 1.0
  114. Things I'll Miss in Japan
  115. Strangest JavaScript Bug I've Ever Seen
  116. Looking for Recycling's Lost Sex Appeal
  117. Updates to Processed Tower Defense
  118. May in Review
  119. Processing.jsの使い方
  120. Spoken Languages, Blub, and Convenience
  121. Music From the iTunes Store, 1
  122. Improvements to LifeFlow Editor
  123. Updating Processing.js Graphics via Ajax
  124. Design of Processed Tower Defense
  125. Three Processing.js Examples
  126. Using Javascript to Control Processing
  127. Getting Started with Processing.js
  128. Our Yellow Woods, and a Story
  129. Writing Join in Erlang
  130. Photographing Japan
  131. A Picture of a Couple
  132. Spring Haiku and Tanka
  133. Thoughts on Dating Erlang
  134. Haiku for an April
  135. Designing Elesma
  136. A Week In The Job
  137. Failed Night Time Pictures of Sakura Blossoms
  138. A Brief Winter Hike
  139. Opening Files With Associated App in Cocoa
  140. Tip Your Hat To Accessors And Mutators
  141. Handling Files With CoreData
  142. Catching Up On Some Thoughts
  143. Tools, Languages, and Squeak
  144. Quick Reflections on JET in Haiku
  145. Assigning One To Many Relationships in CoreData
  146. Spring Doesn't Come in February, But Snow Does
  147. On Writing
  148. Filtering Arrays in Objective C
  149. Teaching Elementary Classes as an ALT
  150. My First Sickday in Japan
  151. Midnight Philosophy in The Garden of Good and Evil
  152. Seeking Some Music I Can't Find
  153. Some Biased Analysis of Music Videos
  154. Using Our Own Software
  155. Using Optional Parameters in Django Urls
  156. Technical Aspects of the Life Flow Editor
  157. Introducting the LifeFlow Editor
  158. Why Was The Syllabus Born?
  159. On Hegemony and an Anti-Capitalist Bias in European Textbooks
  160. Hot Water Is Broken
  161. 5. A Chartered Bus to Downtown Tokyo
  162. Standard Workflow for Publishing With LifeFlow
  163. Replacing the Karma Social Model with Whuffie
  164. Catching Lessons From Spam
  165. Translating Entries into Other Languages with LifeFlow
  166. A Historical Perspective on the JET Program in 2008
  167. On The Causes and Cures of Malware
  168. Failures of Proactive Communication & Other Generic Complaints
  169. かかった年と新しい年の取り返し
  170. Changes living japanese
  171. Opinionated Programming Languages, The Huddled Masses, and Elitism
  172. Lesson Plan: My Winter Vacation
  173. New Style for Including Resources in Entries on LifeFlow
  174. Adding Arbitrary Mods to LifeFlow
  175. Changes from Living
  176. Introduction to Kamioka-cho, Hida-shi, Gifu-ken, Japan
  177. Odors from Shoes Curious in OS X 10.4
  178. Driving on the Left Side
  179. Don't Repeat Yourself for Bloggers: Dynamic Blog Context in LifeFlow
  180. Cleanly Extending Python Markdown with Syntax Highlighting
  181. Update to Lethain.com
  182. Customizing LifeFlow Quickly with Skins
  183. Installing a Development Deployment of LifeFlow, a Django Blog Solution
  184. Reflections on the old year, and the new one
  185. BluePrint CSS makes LifeFlow look better, and easier to customize
  186. Music Recommendations & Snow Pictures
  187. Implementing Threaded Comments in LifeFlow
  188. Visiting Kiyomizudera
  189. Status Update for LifeFlow
  190. Accolades for Pygments 0.9
  191. Actors in Common Lisp
  192. Packaging of Renu Contact Solution

2007 69

  1. Miyajima and Hiroshima
  2. Designing My Future Home
  3. Another Breakfast With You
  4. Another Slight Mistake...
  5. Merry Christmas 2007
  6. Moving Writings to Separate Flow
  7. Two-Faced Django Part 7: PyFacebook and FBJS Ajax
  8. Upgrading from 256 to 512 megs of ram
  9. Two-Faced Django: Live install
  10. Two-Faced-Django Part 6: PyFacebook
  11. Two-Faced Django Part 5: JQuery Ajax
  12. 4. Airplanes
  13. Two-Faced Django Part 4: The Webapp
  14. Two-Faced Django Part 3: Newforms
  15. Two-Faced Django Part 2: Models and Django Testing
  16. Two-Faced Django Part 1: Building a project that exists simultaniously on Facebook and the web
  17. 3. Shuttle Busses
  18. On Education, Self-Responsibility and Manure
  19. 2. Traffic Jams
  20. 1. Beginnings
  21. 0. Introduction
  22. Using JQuery with Django for Autocomplete Fields
  23. Using PyFacebook without the Facebook middleware
  24. Human Error
  25. "You Are Beautiful At All Times" by Yppah
  26. Context is a Parameter in Calculating Truth
  27. Those Annoying Habits
  28. Defining Your Web Aesthetic
  29. Introducing my Japanese Kitchen
  30. Hiking Tengaisan
  31. Reliable Mealtime Friends
  32. Grocery Shopping in Japan
  33. Getting Cold in Kamioka
  34. Teaching Adult English Classes
  35. Getting started with Shoes on OS X
  36. Expectations and Reality for the lowly ALT
  37. FAQ about JET
  38. A Few Quick Updates to Site
  39. Back in Action
  40. Eating Cornflakes
  41. Leaving Tokyo, Arriving in Kamioka
  42. From America into an American Bubble: The Flight to Japan
  43. JET Pre-Departure Orientation
  44. Picture from Hotel Room
  45. Heading toward Atlanta
  46. Applying to the JET Programme
  47. Failure of Implicit Conventions: Determining Function Destructiveness
  48. "Building Scalable Web Sites" by Cal Henderson
  49. Dreamier Dream Server with Nginx
  50. Apache/Lighttpd Confusion
  51. Adding Social Bookmarking To a Django App
  52. Syntax Highlighting with MarkDown, and a pinch of Automagick for Django
  53. Music Video? Movie? The 'Once' Dilemma
  54. Extracting Models From Django Datadump
  55. Creating my Dream Server for Django
  56. New Look for LifeFlow, Deployment on Dreamhost
  57. "Puddle City Racing Lights" by Windmill
  58. YouTube Scalability
  59. Stability Issues
  60. How to Migrate Data Across Model Changes
  61. Writing Custom Contexts for Django
  62. Examining Web Analytics to Implement (repost)
  63. A Django Middleware for Google Analytics (repost)
  64. Anti-Objects and Reflexive Decisions (repost)
  65. A Comp. Sci Degree is What You Make Of It (repost)
  66. Is the JVM the "next assembly"? I hope not. (repost)
  67. Reflections on Django (repost)
  68. Good to Great, Paul Graham and Ayn Rand (repost)
  69. Finding Our Programming Flow (repost)