The Curious Engineer

All blogs / Rust

Elijah Potter's Blog

elijahpotter.dev

The blog of software engineer Elijah Potter

RustAI / MLSoftware / engineering practiceEssays / personal

Posts
270 from 2 Jun 2021 to 30 Oct 2026
Posting
weekly (121 in the last year)
Kind
personal blog
Feed
https://elijahpotter.dev/rss.xml

2026 101

  1. Hermes Is Actually Good
  2. A New Inference Engine
  3. A New Inference EnginePublished on 10/23/26For the past few months, I’ve been ded­i­cat­ing enor­mous swaths of my time to train­ing a small lan­guage model, work­ing from ba­sic prin­ci­ples. The goal is to pro­vide a com­plete over­haul of how Harper does its gram­mar check­ing.
  4. Everything Is a Leaky Abstraction
  5. Everything Is a Leaky AbstractionPublished on 10/16/26*in ma­chine learn­ing.
  6. A Simple Overview of LLM Sampling Methods
  7. A Simple Overview of LLM Sampling MethodsPublished on 10/9/26Almost all the dis­course around LLMs to­day is cen­tered on the mod­els them­selves. Today, I want to in­tro­duce you to an en­tirely new world.
  8. The Best of Om Malik
  9. The Best of Om MalikPublished on 10/2/26Although they ap­pear to merely be words on a page, I of­ten feel that Om’s work al­most al­ways car­ries a rare in­tro­spec­tive in­sight. Perhaps it’s truth. Perhaps it’s some­thing else.
  10. Proxmox Ethernet Failing After Upgrade
  11. Proxmox Ethernet Failing After UpgradePublished on 9/27/26After up­grad­ing my pair of Lenovo M720q ma­chines from Proxmox VE 8 to 9, they ran­domly started drop­ping their con­nec­tion to the in­ter­net. Here’s how I fixed it.
  12. Skill Acquisition
  13. Harper Architecture Talk
  14. Skill AcquisitionPublished on 9/25/26I think that the Dreyfus Model stands to be a well-suited frame­work through which we can an­a­lyze cer­tain as­pects of the al­ways-evolv­ing pro­fes­sion of soft­ware en­gi­neer­ing.
  15. Harper Architecture TalkPublished on 9/25/26Earlier this week, I was asked to give a talk to the chap­ter of the Association of Computing Machinery at Mines.
  16. A Better Popup
  17. A Better PopupPublished on 9/18/26Arguably the most im­por­tant part of any Harper in­te­gra­tion is the popup win­dow.
  18. Useful Things Agents Can Do That Are Not Writing Code
  19. Useful Things Agents Can Do That Are Not Writing CodePublished on 9/11/26This ar­ti­cle is not about vibe cod­ing. In fact, this ar­ti­cle is about all the things you can do with an AI agent that are sep­a­rate from writ­ing code.
  20. Bytes Are Not Big Enough
  21. Bytes Are Not Big EnoughPublished on 9/4/26I am try­ing to cre­ate a strong and small base model. A model that can se­man­ti­cally un­der­stand small pas­sages of text, which we can then re­train to do a va­ri­ety of dif­fer­ent things.
  22. Harper for Windows Is Available for Download
  23. Harper for Windows Is Available for DownloadPublished on 8/28/26After sev­eral weeks of work, the Harper Desktop app for Windows is fi­nally ready for down­load.
  24. Stacking Pull Requests
  25. Harper for Windows
  26. Stacking Pull RequestsPublished on 8/21/26I tried out GitHub’s PR stack­ing func­tion­al­ity for the first time. It’s amaz­ing.
  27. Harper for WindowsPublished on 8/21/26I am pleased to say, that Harper Desktop for Windows is com­ing along beau­ti­fully. To keep my­self ac­count­able, I am set­ting a hard beta launch date of August 28th.
  28. Notes on Talkify
  29. Notes on TalkifyPublished on 8/17/26Research into the Talkify app, and whether speech-to-text might be a valu­able ad­di­tion to Harper.
  30. Do That Which Makes Your Life Easy
  31. Do That Which Makes Your Life EasyPublished on 8/14/26Why it might work well to make de­ci­sions (while build­ing or main­tain­ing soft­ware) in the in­ter­est of your qual­ity of life?
  32. Do Not Talk About Large Language Models
  33. Do Not Talk About Large Language ModelsPublished on 8/13/26Is this post hyp­o­crit­i­cal? It sure is.
  34. Harper's Policy on Agent PRsPublished on 3/23/26Keep things brief, stay grounded, and be hon­est.
  35. Adios Jeff Dean
  36. Adios Jeff DeanPublished on 8/10/26Jeff Dean is leav­ing Google. Long live Demis Hassabis.
  37. The Case for Windows
  38. The Case for WindowsPublished on 7/31/26Despite all my com­plain­ing about Windows Update and how bloated their soft­ware tends to be, Microsoft has suc­cess­fully con­vinced most of the world to use Windows.
  39. Harper on Better Stack
  40. Harper on Better StackPublished on 7/27/26It was a nice week­end treat to see Harper fea­tured on Better Stack’s YouTube chan­nel.
  41. Getting Real
  42. Getting RealPublished on 7/24/26I be­lieve that liv­ing a ful­fill­ing life is hard, so hav­ing one takes ef­fort.
  43. Harper's Testing Strategy
  44. Harper's Testing StrategyPublished on 7/17/26Just a quick shout-out.
  45. Dealing with Flaky Tests
  46. Dealing with Flaky TestsPublished on 7/10/26A flaky test is any test for your code that only some­times fails.
  47. Neoengineers
  48. Slop Paralysis
  49. Slop Paralysis★Published on 6/24/26A com­plete or par­tial loss of func­tion while re­view­ing the out­put of a cod­ing agent.
  50. What Was Radical Speed Month?
  51. What Was Radical Speed Month?Published on 6/23/26A bit of his­tory.
  52. Harper's First Committer
  53. Zen and the Art of Open Source Maintenance
  54. Zen and the Art of Open Source MaintenancePublished on 6/12/26While read­ing an old — un­pub­lished, for now — es­say of mine, I was re­minded of the won­der­ful book by Robert Persig ti­tled Zen and the Art of Motorcycle Maintenance. The book serves to help any­one in any pro­fes­sion, but I think
  55. Get Rid of It
  56. Get Rid of ItPublished on 6/5/26‘Delete any part or process you can. You may have to add them back later. In fact, if you do not end up adding back at least 10% of them, then you did­n’t delete enough.’
  57. Hacker News sans AI
  58. Hacker News sans AI★Published on 6/2/26I like HackerNews, but I don’t love that so much of it has turned into dis­cus­sion of a sin­gle topic: AI. This is a ver­sion of HackerNews, fil­tered to re­move any ar­ti­cle fo­cus­ing on AI. Refreshes about every ten min­utes.
  59. Wrapping up Harper Desktop
  60. Wrapping up Harper DesktopPublished on 5/28/26Radical Speed Month held an im­pe­tus to ex­per­i­ment, and ex­per­i­ment we did.
  61. Harper Desktop
  62. Harper DesktopPublished on 5/22/26Harper Desktop is fi­nally avail­able for in­stall.
  63. Good Agents
  64. Good AgentsPublished on 5/15/26The spirit of Radical Speed Month in­cludes an im­pe­tus to ex­per­i­ment. So ex­per­i­ment I have.
  65. A Quick Update on Harper Desktop
  66. A Quick Update on Harper DesktopPublished on 5/8/26This week of Radical Speed Month has been ded­i­cated to putting the dis­parate com­po­nents of the Harper Desktop App to­gether.
  67. Product Product Product
  68. Product Product ProductPublished on 5/1/26Working this past week with Jason Adams has given me a brand-new ap­pre­ci­a­tion for the cat­e­gory of ideas that we en­gi­neers call ‘product.’
  69. Building a Harper Desktop App
  70. Building a Harper Desktop AppPublished on 4/15/26We’re ded­i­cat­ing the next month to just one thing: get­ting a Harper desk­top app shipped.
  71. We Are in This Together
  72. We Are in This TogetherPublished on 4/13/26Harper’s mis­sion is to en­cour­age and as­sist peo­ple with com­mu­ni­cat­ing their com­plex ideas and emo­tions.
  73. Harper 2.0
  74. Harper 2.0Published on 4/9/26We’re fi­nally re­leas­ing Harper 2.0.
  75. Outcome over Process
  76. Outcome over ProcessPublished on 4/3/26I don’t feel that these per­for­ma­tive ac­tions have re­sulted in any real pro­duc­tiv­ity gains. I re­al­ize now, that this is be­cause I was fo­cus­ing on the wrong thing.
  77. When to Use an Agent
  78. When to Use an AgentPublished on 3/27/26There are times where it is pru­dent to use an AI agent (like Codex) ag­gres­sively. There are other times where they should be avoided like the plague. The ques­tion of into which bucket a par­tic­u­lar en­deavor falls is dif­fi­cult to an­swer.
  79. Harper's Policy on Agent PRs
  80. My Superpower
  81. My SuperpowerPublished on 3/14/26It was not un­til rel­a­tively late in my aca­d­e­mic ca­reer when I re­al­ized my thirst for the writ­ten word had given me a su­per­power.
  82. Do Not Write with an LLM
  83. Do Not Write with an LLM★Published on 3/2/26I have been see­ing an in­creas­ingly preva­lent trend of peo­ple show­ing up in on­line spaces flaunt­ing that they are writ­ing with the as­sis­tance of AI. They seem to be proud of this. They should­n’t be.
  84. Refactoring Slop
  85. Refactoring SlopPublished on 2/20/26There are a gazil­lion guides out there about the var­i­ous tech­niques you can use to im­prove the qual­ity of AI gen­er­ated code. Instead, I want to talk about some more gen­er­ally ap­plic­a­ble ideas that I’ve found es­pe­cially use­ful in the age of AI.
  86. LaTeX Support Is Coming to Harper
  87. LaTeX Support Is Coming to HarperPublished on 2/18/26It’s been a long time com­ing, which is why I’m thrilled to say that Harper will soon sup­port LaTeX.
  88. Building Software That Is Good for Humans
  89. Building Software That Is Good for HumansPublished on 2/9/26Why does so much of the soft­ware we use feel harm­ful?
  90. Training a Small Language Model
  91. Training a Small Language ModelPublished on 2/3/26I’ve built and trained an ex­tremely small lan­guage model from scratch, specif­i­cally de­signed for short-form sen­tence rewrit­ing tasks that are highly re­source con­strained.
  92. Writing in Visual Studio Code
  93. Writing in Visual Studio CodePublished on 1/27/26People are us­ing Harper for writ­ing prose in Visual Studio Code.
  94. Finding the Active Voice
  95. Finding the Active VoicePublished on 1/26/26How should we go about help­ing our users with their ac­tive voice?
  96. Linkarzu: Harper Is Getting Better
  97. Linkarzu: Harper Is Getting BetterPublished on 1/23/26Linkarzu’s re­cent video about Harper is a great primer on what it can do.
  98. Imagine a Weir Studio
  99. Imagine a Weir StudioPublished on 1/16/26The Weir Studio comes from a pretty sim­ple idea. We want to give peo­ple all the tool­ing nec­es­sary to build and dis­trib­ute Weir rules with­out any up­front cost.
  100. Imagine a Weir Marketplace
  101. Imagine a Weir MarketplacePublished on 1/9/26I’ve come to the re­al­iza­tion that there is a high de­gree of spe­cial­iza­tion among aca­d­e­mic fields. If we em­brace this spe­cial­iza­tion through cus­tomiza­tion, we could gain an ad­van­tage over other gram­mar check­ers. That’s all to say: We wan

2025 128

  1. Someone Remixed Tatum
  2. Someone Remixed TatumPublished on 12/30/25A quick shout-out.
  3. Projects Using Harper
  4. Generating Weir Code with LLMs
  5. Generating Weir Code with LLMsPublished on 12/19/25Some ex­per­i­men­ta­tion shows that LLMs are ex­tremely ef­fec­tive at un­der­stand­ing and gen­er­at­ing DSL code.
  6. Updates on the Weir Language
  7. Building the Weir Language
  8. Building the Weir LanguagePublished on 12/11/25A do­main-spe­cific lan­guage for de­scrib­ing pat­terns in nat­ural lan­guage.
  9. Harper Can Apply Titlecase
  10. Harper Can Apply TitlecasePublished on 12/5/25In case you did­n’t know: Harper can con­vert text to ti­tle case! This has been around for a long time, but we haven’t re­ally talked about it pub­licly.
  11. Harper Turns 1.0 Today
  12. Harper Turns 1.0 TodayPublished on 11/28/25Harper fi­nally re­leases a 1.0.0
  13. Quality Requires Visual Design
  14. Quality Requires Visual DesignPublished on 11/21/25My re­cent work to im­prove Harper’s vi­sual de­sign.
  15. Re: Collaboration Sucks
  16. Re: Collaboration SucksPublished on 11/18/25Why col­lab­o­ra­tion still mat­ters when kept in­ten­tional.
  17. Improving Rust Compile Times by 71 Percent
  18. Improving Rust Compile Times by 71 PercentPublished on 11/6/25If you main­tain or work on a pro­ject in any com­piled lan­guage, par­tic­u­larly a lan­guage that is known for hav­ing a slow com­piler, I be­lieve it is crit­i­cal to reg­u­larly sched­ule time to do an analy­sis of your build process
  19. Finding Signal Through the Noise
  20. Avoid Complexity
  21. Avoid ComplexityPublished on 10/17/25For as long as I can re­mem­ber, I’ve told peo­ple that the real chal­lenge of soft­ware en­gi­neer­ing is­n’t writ­ing code. It is­n’t doc­u­men­ta­tion or CI pipelines ei­ther. No, the biggest chal­lenge in soft­ware en­gi­neer­ing is man­ag­ing com­plex­ity.
  22. Using Codex Is a Lot like Baking
  23. Using Codex Is a Lot like BakingPublished on 10/6/25The biggest prob­lem with AI pro­gram­ming to­day is not what I ex­pected a few years ago. I truly did­n’t be­lieve they would be able to do any eco­nom­i­cally valu­able work.
  24. My Writing Environment as a Software Engineer
  25. My Writing Environment as a Software EngineerPublished on 10/5/25Writing is one of life’s greater joys. It’s a men­tal work­out that of­ten brings me a level of clar­ity that is hard to find else­where.
  26. Trying out the Helium Browser
  27. Trying out the Helium BrowserPublished on 10/4/25I’ve de­cided to give the Helium browser a shot. So far, I’m im­pressed!
  28. Brainstorming a Harper Service
  29. Brainstorming a Harper ServicePublished on 9/29/25SaaS prod­ucts are all the rage these days.
  30. Improving Harper for Old Laptops
  31. Improving Harper for Old LaptopsPublished on 9/19/25The most com­mon com­plaint I’ve been hear­ing as of late re­lates to Harper’s per­for­mance. I’ve been told that Harper has got­ten slow. As it turns out, the prob­lem was­n’t the ac­tual gram­mar check­ing, it was ren­der­ing the high­lights on t
  32. Demos Make Life Worth Living
  33. Demos Make Life Worth LivingPublished on 9/18/25The ini­tial goal of any green­field pro­ject of mine is to build a work­ing demo.
  34. What We Can Learn from New York City
  35. What We Can Learn from New York CityPublished on 9/13/25I’ve been told New York is an ac­quired taste. I can see why they might say that.
  36. The Chrome Extension Supersedes the WordPress Plugin
  37. The Chrome Extension Supersedes the WordPress PluginPublished on 9/10/25Several months ago, I an­nounced the ini­tial ver­sion of the Harper WordPress plu­gin. In the in­ter­est of those still us­ing it, I’d like to give y’all an up­date.
  38. I Spoke at WordCamp U.S. in 2025
  39. I Spoke at WordCamp U.S. in 2025Published on 9/3/25It was my first WordCamp and first con­fer­ence talk, so I was nat­u­rally ner­vous.
  40. The Books I Have Read Since July 2025
  41. The Books I Have Read Since July 2025Published on 9/1/25I re­flect about the re­cent books I have read and the things I (and you) can learn from them.
  42. Harper Evolves
  43. Harper EvolvesPublished on 8/21/25I want you to read that ti­tle as lit­er­ally as pos­si­ble. Harper is now ca­pa­ble of evo­lu­tion.
  44. The Art of the Talk
  45. The Art of the TalkPublished on 8/15/25I’ve given dozens of talks over the years, yet I still feel like I have much to learn about pub­lic speak­ing. Preparing for my up­com­ing talk at WordCamp US has me stop­ping to re­flect on what I al­ready know.
  46. Harper in the News
  47. Harper in the NewsPublished on 8/12/25I’ve got some ex­cit­ing new work I’m prepar­ing to dis­cuss later this week (hopefully). In the mean­time, I’ve col­lected some re­cent sight­ings of Harper in the wild.
  48. Better Interfaces for Grammar Checking
  49. Better Interfaces for Grammar CheckingPublished on 7/28/25Grammar check­ing can be cum­ber­some, es­pe­cially when its sloth gets in the way of your think­ing. That’s part of why so many pre­fer Harper over Grammarly or LanguageTool.
  50. Speaking at WordCamp U.S. in 2025
  51. Speaking at WordCamp U.S. in 2025Published on 7/25/25I was re­cently en­cour­aged to sub­mit a talk pro­posal to the AI track at WordCamp US. I was more than happy to oblige, and to my sur­prise, I got in.
  52. Why I Talk to Myself
  53. Why I Talk to Myself★Published on 7/21/25It’s not easy, but I think it’s one of the best habits I’ve ever built.
  54. Reflections on Expression Rules
  55. Reflections on Expression RulesPublished on 7/18/25Expression rules were de­signed for a cer­tain kind of er­ror. But there are many gram­mat­i­cal or lay­out rules which hard dif­fi­cult or down­right im­pos­si­ble to de­fine with an ex­pres­sion.
  56. Training a Chunker with Burn
  57. Training a Chunker with BurnPublished on 7/16/25The end re­sult is a portable neural net­work that achieves ~95% ac­cu­racy on gram­mat­i­cally cor­rect text.
  58. Writing Good Documentation
  59. Writing Good DocumentationPublished on 7/15/25In an age where large lan­guage mod­els have ex­cep­tional con­text win­dows, it’s easy to fall into the trap of be­liev­ing a sys­tem is sim­pler than it is.
  60. Writing a Grammatical Rule for Harper
  61. Writing a Phrase Correction for Harper
  62. Writing an Expression Rule for Harper
  63. Writing a Grammatical Rule for HarperPublished on 7/9/25This ar­ti­cle in­tro­duces con­tribut­ing to the open-source gram­mar checker Harper by writ­ing gram­mat­i­cal rules, out­lin­ing dif­fer­ent ap­proaches for var­i­ous skill lev­els.
  64. Writing a Phrase Correction for HarperPublished on 7/9/25This post ex­plains how to add sim­ple phrase cor­rec­tions to the gram­mar checker Harper—a be­gin­ner-friendly way to ad­dress com­mon, con­text-in­de­pen­dent er­rors and con­tribute to its gram­mar check­ing ca­pa­bil­i­ties.
  65. Writing an Expression Rule for HarperPublished on 7/9/25This ar­ti­cle guides con­trib­u­tors on writ­ing a Harper ex­pres­sion-based rule. It cov­ers defin­ing the rule’s ex­pres­sion, writ­ing test cases, and im­ple­ment­ing the match_to_lint func­tion for user sug­ges­tions.
  66. Adding a Programming Language to Harper
  67. Adding a Programming Language to HarperPublished on 7/7/25A guide for adding a new pro­gram­ming lan­guage to the Harper lan­guage server.
  68. Local-First Software Is Easier to Scale
  69. Local-First Software Is Easier to Scale★Published on 7/4/25The ti­tle of this post is some­what mis­lead­ing. Local-first soft­ware rarely needs to be scaled at all.
  70. Code Ages like Milk
  71. Code Ages like MilkPublished on 6/27/25Failing to ac­count for this re­al­ity can slow down de­vel­op­ment and dis­suade con­trib­u­tors from stick­ing around.
  72. The Books I Have Read Since April 2025
  73. The Books I Have Read Since April 2025Published on 6/22/25It has been a slow cou­ple of months for my read­ing habit. Although, now that I’ve said that out loud, I re­al­ize I say that every time.
  74. Harper for Firefox
  75. Harper for FirefoxPublished on 6/20/25There’s a great deal of over­lap be­tween those who use Harper and those who use Firefox.
  76. Refactoring More and Faster
  77. Refactoring More and FasterPublished on 6/17/25You know—that aw­ful (but strangely sat­is­fy­ing) space where the ma­jor­ity of your com­mits are small pedan­tic ed­its that don’t change the end-user-ex­pe­ri­ence at all?
  78. More Transformation-Based Learning
  79. More Transformation-Based LearningPublished on 6/13/25The most com­mon type of ma­chine learn­ing out there takes the form of some kind of neural net­work. Inspired by how our own brains work, these sys­tems act as func­tion ap­prox­i­ma­tions. They are great, but they come with a few key pit­falls.
  80. Transformation-Based Learning
  81. Transformation-Based LearningPublished on 6/3/25Harper is cur­rently un­der­go­ing some pretty rad­i­cal changes when it comes to its lan­guage analy­sis. These im­prove­ments will im­prove the out­put of our ex­ist­ing rule en­gine, in ad­di­tion to mak­ing en­tirely new cor­rec­tions pos­si­ble.
  82. Harper for Firefox Through Spellbolt
  83. Quality Is the Most Important Metric
  84. Harper for Firefox Through SpellboltPublished on 5/19/25SpellBolt is a Firefox ex­ten­sion that de­liv­ers Harper’s fan­tas­tic gram­mar check­ing straight into your Firefox browser.
  85. Quality Is the Most Important MetricPublished on 5/19/25After re­ceiv­ing some feed­back re­lated to the sug­ges­tion box’s vi­sual un­pleas­ant­ness and dif­fi­culty to un­der­stand in­tu­itively, I’ve started mak­ing some mod­i­fi­ca­tions. Nothing dras­tic—I don’t want to con­fuse ex­ist­ing users.
  86. Integration Testing Thousands of Sites with Playwright
  87. Integration Testing Thousands of Sites with PlaywrightPublished on 5/16/25There are a great va­ri­ety text ed­i­tors on the web, each used in a dif­fer­ent con­text. That’s a beau­ti­ful thing, but un­for­tu­nately our users ex­pect Harper to work in all of these places seam­lessly.
  88. Bypassing Hallucinations in Llms
  89. Bypassing Hallucinations in LlmsPublished on 5/14/25If there is one thing o3 is use­ful for, it’s find­ing canon­i­cal doc­u­men­ta­tion for com­plex sub­jects.
  90. Putting Harper in Your Browser
  91. Putting Harper in Your BrowserPublished on 5/2/25When our users in­stall Harper, they should ex­pect it to work any­where they do.
  92. Always Think of the Hook First
  93. Always Think of the Hook FirstPublished on 5/1/25Spend more time on the in­tro­duc­tion than any­thing else.
  94. ChatGPT for the Moms
  95. Status of the Harper Chrome Extension
  96. ChatGPT for the MomsPublished on 4/23/25Advice you can give your mom (or other non­tech­ni­cal per­son) for how to use ChatGPT wisely and ef­fec­tively.
  97. Status of the Harper Chrome ExtensionPublished on 4/23/25An up­date on the long-awaited Harper Chrome ex­ten­sion, its cur­rent state, and what to ex­pect next.
  98. Photography as Meditation
  99. Photography as MeditationPublished on 4/19/25Reflecting on the clar­ity pho­tog­ra­phy brings.
  100. The Art of Exception
  101. The Art of ExceptionPublished on 4/18/25Reflecting on lessons learned from han­dling English edge cases in de­vel­op­ing Harper’s Chrome ex­ten­sion.
  102. On Linkarzu
  103. On LinkarzuPublished on 4/17/25I was hon­ored to be a guest on Linkarzu’s YouTube se­ries.
  104. Footguns of the Rust Webassembly Target
  105. Footguns of the Rust Webassembly TargetPublished on 4/8/25Four years in Rust + WebAssembly taught me these 3 lethal foot­guns—don’t learn them the hard way.
  106. The Books I Read in February and March 2025
  107. The Books I Read in February and March 2025Published on 4/5/25Two months does not mean twice as many.
  108. The One Hard Thing
  109. The One Hard ThingPublished on 3/27/25Reach fur­ther each day. The min­i­mum ef­fec­tive dose.
  110. 3 Traits of Good Test Suites
  111. 3 Traits of Good Test SuitesPublished on 3/23/25Don’t be­lieve the click­bait.
  112. LLM Assisted Fuzzing
  113. LLM Assisted FuzzingPublished on 3/21/25A new ap­proach to false-pos­i­tives.
  114. Harper Is in Cursor and Visual Studio Code
  115. Harper Is in Cursor and Visual Studio CodePublished on 3/19/25A boon if you com­ment your code.
  116. Never Wait
  117. Never WaitPublished on 3/1/25Your code is al­ways wel­come.
  118. Prompting Large Language Models in Bash Scripts
  119. Prompting Large Language Models in Bash ScriptsPublished on 2/26/25Of course it’s that easy.
  120. A Harper Record
  121. A Harper RecordPublished on 2/6/25🎉
  122. The Books I Read in January 2025
  123. The Books I Read in January 2025Published on 2/4/25Spoiler: there aren’t many.
  124. Notifications
  125. The Three Steps to an Apology
  126. The Three Steps to an ApologyPublished on 1/30/25Wisdom from my grand­mother.
  127. The Best 25 Bucks I Ever Spent
  128. The Best 25 Bucks I Ever SpentPublished on 1/13/25Bonus: why you need to do it too.

2024 20

  1. Why You Need Sccache
  2. Why You Need SccachePublished on 12/29/24You might not ac­tu­ally need it.
  3. The Best Books I Read This Year
  4. The Best Books I Read This YearPublished on 12/21/24I might be start­ing to sound like a bro­ken record.
  5. For the Love of Iframes
  6. For the Love of IframesPublished on 10/13/24Chronically un­der­rated, chron­i­cally over-pre­scribed
  7. Naming Harper
  8. Naming HarperPublished on 8/6/24Where did Harper come from?
  9. The Simplest Neovim Markdown Setup
  10. The Simplest Neovim Markdown SetupPublished on 7/13/24How I pre­view my Markdown quickly and re­li­ably.
  11. What Blasterhacks Taught Me About Leadership
  12. What Blasterhacks Taught Me About LeadershipPublished on 4/19/24It’s eas­ier than you think.
  13. The Optimal Workspace
  14. The Optimal WorkspacePublished on 3/29/24How I in­tend to live bet­ter.
  15. Stupid Simple Spell Check
  16. Stupid Simple Spell CheckPublished on 3/4/24It al­most feels wrong. Maybe it is.
  17. Building a Software Render Engine from Scratch
  18. Markov Chains Are the Original Language Models
  19. Markov Chains Are the Original Language Models★Published on 1/31/24Back in my day, we used math for au­to­com­plete.
  20. Building a Software Render Engine from ScratchPublished on 1/31/24How I built a soft­ware ren­der en­gine from scratch, and you can too.

2023 10

  1. The Easiest Way to Run Llms Locally
  2. The Easiest Way to Run Llms LocallyPublished on 12/18/23It saved me enough time, I had some to share about it.
  3. Do Not Type Your Notes
  4. Do Not Type Your Notes★Published on 10/29/23It did­n’t work for me, and if you read­ing this, it prob­a­bly won’t work for you ei­ther.
  5. Quantifying Hope on a Global Scale
  6. Quantifying Hope on a Global ScalePublished on 10/20/23An ex­per­i­ment on how to live in a seem­ingly hope­less world.
  7. The Climate Change Progress Bar
  8. The Climate Change Progress BarPublished on 10/12/23A pro­posal.
  9. A Case for Procrastination
  10. A Case for ProcrastinationPublished on 9/27/23Or: why do­ing things at the last minute ac­tu­ally saves time. I talk about the im­por­tance of shock­ingly fast it­er­a­tion cy­cles and lean man­u­fac­tur­ing.

2022 8

  1. I Designed My Own Pen Plotter
  2. I Designed My Own Pen PlotterPublished on 10/18/22In which I go through the process of de­sign­ing, build­ing, and test­ing a vec­tor graphic pen plot­ter.
  3. 3 Awesome Ways Computers Generate Randomness
  4. 3 Awesome Ways Computers Generate RandomnessPublished on 3/4/22We look at sev­eral in­ter­est­ing ways com­put­ers gen­er­ate ran­dom num­bers. It may fas­ci­nate you to know that some meth­ods are not truly ran­dom, but only an ap­prox­i­mate.
  5. Build a Wordle Solver Using Rust
  6. Build a Wordle Solver Using RustPublished on 3/1/22I built a Wordle solver in Rust to beat my grandma. Follow the jour­ney of how I did, and how I failed.
  7. Why Rust May Be More Attractive than JavaScript
  8. Why Rust May Be More Attractive than JavaScriptPublished on 2/25/22A key part of Rust is far bet­ter than what JavaScript has to of­fer.

2021 2

  1. How to Write a Discord Bot in Rust
  2. How to Write a Discord Bot in RustPublished on 6/2/21We go through step-by-step how to build a Discord bot us­ing the Rust Serenity Framework.

Undated 1

  1. Projects Using HarperPublished on 12/23/25I just found out that some new pro­jects are us­ing Harper. Could yours be next?