The Curious Engineer

All blogs / Software / engineering practice

Gavin D. Howard

gavinhoward.com

I am a member of The Church of Jesus Christ of Latter-day Saints, a husband, and a computing system designer. This is my professional blog and has only my professional writing.

Software / engineering practiceRustOS / kernelC

Posts
110 from 1 May 2018 to 15 Mar 2026
Posting
now and then (3 in the last year)
Kind
personal blog
Feed
https://gavinhoward.com/index.xml

2026 2

  1. An Idea for Bypassing Linux Age Verification
  2. Do Not Use Sectorlink

2025 4

  1. Piecemeal Formal Verification: Cloudflare, Java Exceptions, and Rust Mutexes
  2. How I Solved the Expression Problem
  3. Replacing CVE
  4. Advent of Code 2024: Report

2024 20

  1. Advent of Code 2024: Getting Started
  2. To Broadcast or Not to Broadcast: A Nuanced Perspective
  3. Rewriting Rust: A Response
  4. Curing the Framework Curse
  5. A Better OS Design 2: Microkernel Performance
  6. Is Crowdstrike the Final Straw?
  7. Why I Hope Rust Does Not Oxidize Everything
  8. A Plan for Professionalism
  9. My Programming Journey
  10. A New Architecture for a GUI Framework
  11. A Better OS Design
  12. Traits, Destructors, "Higher RAII," and Exceptions
  13. What Rust Got Wrong on Formal Verification
  14. A Grateful Open Letter to JeanHeyd Meneide
  15. You Do Not Need Systemd to Replace Sudo
  16. What Computers Cannot Do: The Consequences of Turing-Completeness
  17. Build System Schism: The Curse of Meta Build Systems
  18. How Yzena Versions Software and Interfaces
  19. Version Interfaces, Not Implementations
  20. No, Tech Debt Is Not Malpractice

2023 23

  1. Is "Source Available" Really That Bad?
  2. Code Is Not Technical Debt
  3. Am I a Good C Programmer?
  4. A Decade of Developing a Programming Language: A Response Response
  5. How to Fund FOSS, Save It from the CRA, and Improve Cybersecurity
  6. Your Loved Ones Are Prisoners, and You Made the Chain
  7. An Open Letter to Cryptographers: Please Work Together
  8. He Who Gives Up Correctness for Performance Deserves Neither
  9. Lessons Learned as a User 3: Prepare for the Future
  10. The Scourge of 00UB
  11. I Have Blocked OpenAI
  12. I Have Split My Blog
  13. How Yzena Versions Software
  14. How I Made a Monorepo
  15. An Apology to the Gentoo Authors
  16. The Most Annoying Math Problem
  17. AI Evangelists Scare Me
  18. Programming Will Always Use Text
  19. Justifying a Backwards Design Decision for Yao
  20. Why I Use C When I Believe in Memory Safety
  21. Make the Leap Second First-Class: An Open Letter to the International Telecommunication Union
  22. A Git Sin: Re-Signing an Entire Git Repo
  23. My Code Conquered Another OS!

2022 9

  1. We Must Professionalize Programming to Preserve Society and Computing Freedom
  2. Technical Debt Costs More Than You Think, or My Software Development Process
  3. Dispelling AI Myths and Rhetoric
  4. Windows Will Die: 90 Minutes to Do 5 Minutes of Work
  5. I Believe Zig Has Function Colors
  6. I Am a Fool: First Adventures in Multi-Threading
  7. Goodbye, Kitty
  8. The Law of Strict Licenses
  9. The Social Contract of Open Source

2021 15

  1. Is It Even Worth Working on FOSS Anymore?
  2. My Whitepaper About GitHub Copilot
  3. "Static Linking Considered Harmful" Considered Harmful
  4. Comments on Cosmopolitan and Culture
  5. Projects in the Pipeline
  6. Poisoning GitHub Copilot and Machine Learning
  7. Software Developers Are the Problem and the Solution
  8. Counting Words in C with Yc
  9. My First Programs
  10. A dc Script for Easter
  11. Lessons Learned as a User 2: Eat Your Own Dog Food
  12. Lessons Learned as a User 1: Ease Matters
  13. Setting Aside an Idea: Decentralized Identities
  14. Rust, Zig, and the Futility of "Replacing" C
  15. Adventures in Backing Up Data with ZFS

2020 14

  1. Testing the Feasibility of Hardware Pipes 2: Exploring Designs
  2. My Development Environment and How I Got There
  3. The Software Industry Is Broken
  4. Decentralizing the Internet and Other Ideas
  5. Testing the Feasibility of Hardware Pipes
  6. An Interesting Idea About Factoring Integers
  7. Software Engineer Body of Knowledge
  8. I Am Moving Away from GitHub
  9. Computing Is Broken and How to Fix It
  10. Another Reason to Hate Patents
  11. Head in the Hurricane: Securing a Web Server
  12. Designing the Hundred-Year Language
  13. Designing a Type System
  14. What Yzena Is

2019 15

  1. Values for Yao
  2. Designing for Good Thoughts
  3. Smart Devices Are Dangerous
  4. Structured Concurrency Definition
  5. Performance Matters: Jekyll vs Hugo
  6. bc/dc Tips and Tricks
  7. bc PRNG
  8. Finishing Software
  9. Verifying a Safety Number in Signal
  10. Shrinking a Website
  11. Auditing Software Is Hard
  12. Pointers in Yao
  13. Why Perfect Software Is Nearly Impossible
  14. Link-Time Optimization vs Single-File Code
  15. Better Hiring Practices

2018 8

  1. PL Design 4: Features
  2. PL Design 3: Reducing Bugs
  3. PL Design 2: Reducing Friction
  4. Code of Conduct for Yzena
  5. PL Design 1: Principles
  6. Tech Crises
  7. Programming Language Wish List
  8. The Professional Programmer in Open Source