RSSAmplifier

Blog

Elijah Potter's Blog

The writings of Elijah Potter

elijahpotter.devRSS feed ↗123 posts

Latest posts

Do That Which Makes Your Life Easy

Do That Which Makes Your Life Easy I have long been a fan of DHH and 37signals’ var­i­ous tech­ni­cal and so­cial ac­com­plish­ments. With a rel­a­tively small team, they have laid the foun­da­tion for a num­ber of suc­cess­ful com­pa­nies and main­tained a com­mu­nity of ex­tremely in­tel­li­gent en­gi­neers who work with it. I have long fol­lowed their work and have found a wealth of suc­cess…

Do Not Talk About Large Language Models

Do Not Talk About Large Language Models Plainly, they are bor­ing. It’s all any­one ever talks about any­more. AI this and AI that . It’s all the same dis­cus­sion. Peo­ple read some­thing on­line, twist it into their own fla­vor of opin­ion, and re­gur­gi­tate it to the masses or for their boss. It’s tir­ing. I do it too. I talk about LLMs a LOT . It is a part of my job to know about them and to…

Adios Jeff Dean

Adios Jeff Dean It is the end of an era. Jeff Dean is leav­ing Google. Long live Demis Hassabis. I have long looked up to Jeff Dean as a bea­con of en­gi­neer­ing ex­cel­lence. Hearing that he will no longer be a dri­ving force at Google is some­what sad­den­ing, but I am quite ex­cited to see what he does at Discovery Loop. In cel­e­bra­tion, I sug­gest you read through this com­piled list of…

The Case for Windows

The Case for Windows Why Adding Windows Support to Harper Desktop Is Sensible Despite 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. At the time of writ­ing, 72% of peo­ple with a desk­top com­puter have Windows on it. “ Erm, ac­tu­ally Elijah, that’s not how mar­ket share works.”…

Harper on Better Stack

Harper on Better Stack It was a nice week­end treat to see Harper fea­tured on Better Stack’s YouTube chan­nel. Even if the script has more than a few Claudisms , it is awe­some when­ever Harper gets this kind of at­ten­tion.

Getting Real

Getting Real While I am on PTO (as I am right now), my mind rarely strays far from Harper. Perhaps you could call this “ poor work-life bal­ance”, but I think oth­er­wise. I be­lieve that liv­ing a ful­fill­ing life is hard, so hav­ing one takes ef­fort. For me, part of hav­ing a ful­fill­ing life is to strive for great­ness. Harper has the po­ten­tial to be great, and I am partly re­spon­si­ble for…

Harper's Testing Strategy

After spend­ing a few days dis­cussing and learn­ing from Automattic’s Chief Quality Officer (Lance Willet), I’ve pre­pared a first draft of Harper’s test­ing strat­egy. I hope you all take a look. I am very in­ter­ested in any and all feed­back you may have.

Dealing with Flaky Tests

Dealing with Flaky Tests For the past day or so, I have had my head down, tear­ing my hair out, try­ing to de­bug a sig­nif­i­cant block caused by many en­gi­neers’ arch neme­sis: a flaky test. In my case, it’s ac­tu­ally been sev­eral flaky tests. A flaky test is any test for your code that only some­times fails. It shows up when a part of your test re­lies on some­thing non-de­ter­min­is­tic.…

Neoengineers

Neoengineers neo­engi­neer - noun An in­di­vid­ual, part of a resur­gence, who em­braces and re­spects the craft of en­gi­neer­ing. Often en­joys solv­ing hard prob­lems. I was re­cently in­tro­duced to the term “ neoengineer” , whose de­f­i­n­i­tion you will find above and in the at­tached blog post. It tick­led my brain in a rare way. For sev­eral years in a row, my New Year’s res­o­lu­tion was…

Slop Paralysis

Slop Paralysis slop paral­y­sis - noun A com­plete or par­tial loss of func­tion while re­view­ing the out­put of a cod­ing agent. Let me paint you a pic­ture. You have an idea for prod­uct. It could be any­thing: A mo­bile app, a dash­board, or a script to au­to­mate your work. So, you sit down with your fa­vorite LLM and de­scribe your idea. Maybe you have a pretty good un­der­stand­ing of how…

What Was Radical Speed Month?

What Was Radical Speed Month? While I was look­ing back through my archive of posts on this blog, I re­al­ized that I never con­cretely de­fined what Radical Speed Month was. I have talked about it a lot, but there is not any one spot I can point to and say “ Look there! That’s what RSM was!” This page will fill that void. I work at Automattic . We run a lot of prod­ucts and host many ser­vices. I…

Harper's First Committer

Andrew Dunbar Becomes Harper’s First Committer I am pleased to say, with much fan­fare, that Andrew Dunbar (known by on­line moniker hip­pi­etrail ) is be­com­ing Harper’s first com­mit­ter. Andrew has been do­ing stel­lar work for the pro­ject for more than a year now. His work on our gram­mar en­gine has been phe­nom­e­nal. Odds are, if you have opened a ticket on GitHub or dropped on com­ment on…

Zen and the Art of Open Source Maintenance

Zen and the Art of Open Source Maintenance This blog post will not be as long as I wish it to be. I do not have the time nor the pa­tience at the mo­ment to dive as deep into this sub­ject as I feel the sub­ject it­self de­serves. It also will not be as short as I wish it to be. It takes time to de­ter­mine what is im­por­tant and what is not. My hope is that by de­clar­ing this es­say “…

Get Rid of It

Get Rid of It If you have not al­ready, I highly rec­om­mend that you read Walter Isaacson’s bi­og­ra­phy of Elon Musk. It fol­lows the bil­lion­aire’s stratos­pheric ca­reer from pro­gram­ming video games on an orig­i­nal Commodore VIC-20 to the ac­qui­si­tion of Twitter. While I do not agree with all of his prac­tices or be­liefs, I do think that some of his philoso­phies are ex­tremely…

Hacker News sans AI

Hacker News, sans AI I like Hacker News, but I do not love that so much of it has turned into dis­cus­sion of a sin­gle topic: AI . So, I have cre­ated my own ver­sion. A ver­sion of Hacker News, with­out AI . HNSansAI pulls from the of­fi­cial Hacker News API , looks through the con­tent of each ar­ti­cle, and dis­cards any that men­tion a term re­lated to “ AI ” . That in­cludes stuff like: “…

Wrapping up Harper Desktop

Wrapping up Our Radical Speed Month I pre­vi­ously posted about our launch of Harper Desktop. If you have not read that al­ready, I sug­gest you take a peek be­fore read­ing for­ward here. For those caught un­aware, Harper is a gram­mar checker de­signed to re­spect the fact that your writ­ing should be yours. It is pri­vate by de­sign, no mat­ter where you de­cide to use it. Thou­sands of peo­ple…

Harper Desktop

Harper Desktop Is Available for Download Harper Desktop is fi­nally avail­able for down­load. It’s been about a month since Jason and I started work on it for Radical Speed Month . In that time, we have worked hard to cre­ate a mean­ing­fully func­tional ex­pe­ri­ence and it is avail­able for down­load to­day . That said, it’s still early work. There are bound to be bugs and edge-cases we have not…

Good Agents

Good Agents for Developers The spirit of Radical Speed Month in­cludes an im­pe­tus to ex­per­i­ment. So ex­per­i­ment I have. In par­tic­u­lar, I have been try­ing two new cod­ing agents: OpenCode and Pi . Both were in­ter­est­ing and taught me some­thing new, but I only in­tend to con­tinue us­ing one of them. OpenCode OpenCode caught my eye for the very qual­ity it’s named af­ter: OpenCode is…

A Quick Update on Harper Desktop

A Quick Update on Harper Desktop This 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. In other words, we have been in what Shane Wighton would call “ integration hell”. Due to the con­straints put in place by the op­er­at­ing sys­tem and our de­ci­sion to use Tauri, Harper Desktop needed to be split into three main…

Product Product Product

Product, Product, Product Working 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.” For a long time, I’ve dis­cussed the dif­fi­cult-to-de­fine word “ Quality” and it’s im­por­tance to the suc­cess of soft­ware pro­jects. To me, cap­i­tal “ Q” Quality meant that a piece of soft­ware was fast, ex­ten­si­ble, and…

Building a Harper Desktop App

Building a Harper Desktop App Harper is a gram­mar checker that makes sure that your writ­ing is ex­actly that: yours . Today, we will be start­ing some new and hope­fully awe­some work to­wards that mis­sion. Harper has long been avail­able in Chrome, Firefox, Obsidian, and a gazil­lion other places. Knowing what ex­ten­sions to in­stall and how has been a source of con­fu­sion for too many of…

We Are in This Together

We Are in This Together Today, Jason Adams joined me and some of the other Automatticians based in the Denver area for a bur­rito. It’s a tra­di­tion we call Burrito Friday. Automatticians from a lo­cal area get to­gether for laughs, chats, and bur­ri­tos on some rare Fridays a few times a year. It’s a great way to stay con­nected in a dis­trib­uted or­ga­ni­za­tion. Today marked the sec­ond such…

Harper 2.0

Harper 2.0 Hey all! We’re fi­nally re­leas­ing Harper 2.0. Why? It is­n’t be­cause we have any new ground­break­ing fea­tures in this re­lease, be­cause we don’t let ma­jor ver­sion­ing stop us from push­ing those out as soon as they’re ready. It’s be­cause we have some break­ing changes. The biggest one only ap­plies to you if you con­sume harper.js . From now on, in­stead of im­port­ing your…

Outcome over Process

Outcome over Process For the past few weeks, I’ve been think­ing about I can be more pro­duc­tive. In par­tic­u­lar, I’ve been think­ing about how I can elim­i­nate waste to give my­self time to work on things that mat­ter. These ef­forts have been par­tially suc­cess­ful. I’ve found ways to speed up code re­view with an agent and im­prove the turn­around time on com­mu­ni­ca­tion. I’ve been…

When to Use an Agent

When (Not) to Use an Agent There 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. Any­one who says you should al­ways or never use an LLM is over­sim­pli­fy­ing the prob­lem. Naturally, any­thing…

Harper's Policy on Agent PRs

Harper’s Policy on PRs Authored by Agents A few weeks ago, I was in­vited to speak at my lo­cal chap­ter of the Association for Computing Machinery ( ACM ). Being on a col­lege cam­pus — in this case, the Colorado School of Mines — much of my au­di­ence were stu­dents. My pre­sen­ta­tion, which was about how open source soft­ware tends to out­per­form pro­pri­etary soft­ware in the mar­ket­place…

My Superpower

My Superpower In high school, I was an in­sa­tiable con­sumer of sci­ence fic­tion. In hind­sight, it is un­be­liev­able how much time I spent read­ing in­stead of do­ing the other things usu­ally con­sid­ered to be typ­i­cal for teenagers (going out, do­ing home­work, etc.). I was the clas­sic sci­ence fic­tion nerd. My live re­volved around the words of Asimov, Weir, Clarke, and prob­a­bly every…

Do Not Write with an LLM

Do Not Write with an LLM A Growing Trend I have been see­ing an in­creas­ingly preva­lent trend of peo­ple show­ing up in on­line spaces proudly flaunt­ing that they are writ­ing with the as­sis­tance of AI. I of­ten see them clar­ify that they are go­ing fur­ther than let­ting the model per­form gram­mar or fact-check­ing. They are de­scrib­ing an idea to an LLM , and giv­ing it com­plete con­trol…

Refactoring Slop

Refactoring Slop The term “ slop” is rapidly en­ter­ing the con­ven­tional English lex­i­con. In fact, it was Merriam Webster’s Word Of the Year for 2025. It refers to low-qual­ity me­dia gen­er­ated by an LLM. It can be ap­plied to im­ages, text, mu­sic, or most rel­e­vantly to us, code. As an open source main­tainer, I fre­quently both re­ceive and cre­ate pull re­quests that could be la­beled…

LaTeX Support Is Coming to Harper

LaTeX Support Is Coming to Harper It’s been a long time com­ing, which is why I’m thrilled to say that Harper will soon sup­port LaTeX. This is some­thing our users have been plead­ing for since the be­gin­ning of the pro­ject. LaTeX sup­port feels like a fea­ture that is com­par­a­tively low‑ef­fort, but un­locks a mas­sive new con­sumer seg­ment with lit­tle ex­ist­ing com­pe­ti­tion. It has the…

Building Software That Is Good for Humans

Building Software That Is Good for Humans Earlier to­day, the European Commission re­leased a re­port de­tail­ing their ini­tial find­ings that TikTok’s core rec­om­men­da­tion al­go­rithm is in breach of the Digital Services Act. This is only the most re­cent episode in the ex­tended saga where west­ern gov­ern­ments try to reg­u­late the Chinese com­pany. The var­i­ous rea­sons and the meth­ods…

Training a Small Language Model

Training a Small Language Model TL;DR: I’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. In my last post , I dis­cussed how I plan to tackle the dif­fi­cult prob­lem of help­ing Harper’s users take ad­van­tage of the ac­tive voice. The ac­tive voice is seen as more…

Writing in Visual Studio Code

Writing in Visual Studio Code I write this blog in Neovim , and I’m aware of a good num­ber of other nerds who do the same. I sup­pose I never con­sid­ered that peo­ple might use other code ed­i­tors for writ­ing prose. In fact, it seems that there are a non­triv­ial num­ber of peo­ple us­ing Harper in Visual Studio Code . They seem to be us­ing Harper mostly for Markdown and com­ments in code,…

Finding the Active Voice

Finding the Active Voice Last week, Harper hit a stroke of luck. It was fea­tured on MakeUseOf . The down­stream so­cial me­dia posts col­lec­tively gar­nered nearly 300,000 views and drove a sig­nif­i­cant amount of traf­fic to our site. This all hap­pened in the wake of LanguageTool shut­ting down the free edi­tion of their soft­ware. These two events com­pound to bring more at­ten­tion than ever…

Linkarzu: Harper Is Getting Better

Linkarzu: Harper Is Getting Better Linkarzu’s re­cent video about Harper is a great primer on what it can do if you spend a ton of time in Neovim (like I do). It’s true: Harper is get­ting bet­ter.

Imagine a Weir Studio

Imagine a Weir Studio This week, I re­ceived a mes­sage from some­one work­ing on a learn­ing man­age­ment sys­tem. Ap­par­ently, they use harper.js to do spell and gram­mar check­ing on in­ter­nal doc­u­ments. They wanted to be able to con­fig­ure Harper to catch a spe­cific class of mis­takes that are com­mon to their work­flow. Look­ing through the doc­u­men­ta­tion for harper.js , they could­n’t…

Imagine a Weir Marketplace

Imagine a Weir Marketplace For con­text, I main­tain an open-source gram­mar checker by the name of Harper. This post is a kind of RFC for a po­ten­tial im­prove­ment to the pro­jec­t’s er­gonom­ics. I’ve ob­served a high de­gree of spe­cial­iza­tion of lan­guage be­tween aca­d­e­mic fields. Ecologists use bits of lan­guage that com­puter sci­en­tists don’t use, and com­puter sci­en­tists use bits…

Someone Remixed Tatum

Someone Remixed Tatum A while back, I wrote a small tool, dubbed “ Tatum”, for ren­der­ing Markdown to HTML for use along­side Neovim. I’ve con­tin­ued to use it to this day, with a few tweaks here and there. It looks like some­one has taken ad­van­tage of Tatum’s open-source li­cense and remixed it into some­thing even more ca­pa­ble. I highly sug­gest you check out penview.nvim .

Projects Using Harper

Some New Projects Are Using Harper I re­cently did some snoop­ing ( through Dependabot ) on what open source pro­jects have been us­ing Harper. Since I last checked, there are some new ones. I won­der if the re­cent ad­di­tions have any­thing to do with Harper go­ing 1.0 . Stubby Stencila Gherlint wal­let­beat fixmyspelling Someone also wrote a book us­ing Harper. This post is now out-of-date.…

Generating Weir Code with LLMs

Generating Weir Code with LLMs As you know, I’ve been work­ing on a small pro­gram­ming lan­guage called Weir for gen­er­at­ing cor­rec­tions to nat­ural lan­guage. For the cu­ri­ous, I highly sug­gest read­ing my pre­vi­ous blog posts on the sub­ject if you haven’t al­ready. Building the Weir Language Updates on the Weir Language In one of those pre­vi­ous blog posts, I spec­u­lated that an LLM…

Updates on the Weir Language

Updates on the Weir Language In my last blog post , I de­scribed the why, what, and how of the Weir pro­gram­ming lan­guage. I sug­gest you read that first. Before sign­ing off for the day, I just wanted to give a few up­dates on the pro­ject. For those in­ter­ested in the tech­ni­cal side of things, I’ve opened a draft PR for your read­ing plea­sure. Updated Keywords After hav­ing a…

Building the Weir Language

Building the Weir Language Most large or­ga­ni­za­tions have a style guide. A doc­u­ment that de­cides which ver­sions of a lin­guis­tic rule to use. That could be whether to use the Oxford comma, or if con­trac­tions are al­lowed. It could de­clare that a cer­tain word should be cap­i­tal­ized in a spe­cific con­text. Harper can cover most of the rules in most style guides, but there will al­ways…

Harper Can Apply Titlecase

Harper Can Apply Title Case In 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. Be­ing able to make text ti­tle case (strictly in ac­cor­dance to Chicago Style) is­n’t a ground­break­ing fea­ture, but it is use­ful for cer­tain niche ap­pli­ca­tions. For ex­am­ple, all the ti­tles in this very…

Harper Turns 1.0 Today

Harper Turns 1.0 Today Today, we pub­lished Harper’s 1.0.0 re­lease . It’s a huge mile­stone, and in this post I’d like to dis­cuss why it took so long, why we’re do­ing it now, and what’s next for the pro­ject. A Round of Applause, Please As I men­tioned: This is a huge step for the pro­ject. Before I say any­thing else, I want to take a mo­ment to ap­pre­ci­ate the col­lec­tive work of our many…

Quality Requires Visual Design

Quality Requires Visual Design Earlier this week, I was look­ing through a table of user feed­back about Harper . I be­lieve that soft­ware should be build with the user—not just for the user—so this is a pretty reg­u­lar rit­ual for me. I was de­lighted. Many of the usual com­plaints were to­tally ab­sent from the re­port. Users were en­coun­ter­ing fewer of the make-or-break bugs that would harm…

Re: Collaboration Sucks

Re: Collaboration Sucks Earlier this week, I came across a re­ally great post from a prod­uct en­gi­neer over at PostHog. If you haven’t al­ready, I highly rec­om­mend read­ing it . With the ti­tle “ Collaboration sucks,” I think it makes its mes­sage clear. If you had shown this ar­ti­cle to the Elijah Potter from a year ago, he would have agreed with most of what it says. I was of the strong…

Improving Rust Compile Times by 71 Percent

Improving Rust Compile Times By 71% If 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 and make ad­just­ments if nec­es­sary. Compile-time in­creases slowly as a pro­ject morphs and grows. Slow enough that it…

Finding Signal Through the Noise

Finding Signal Through The Noise As the main­tainer of Harper , I read through dozens of is­sues and pull re­quests per day and count­less more per week. There is a con­stant flood of new prob­lems to fix and new code to re­view. At times, it can get over­whelm­ing. I’ve been work­ing re­cently to re­duce the amount of noise I en­counter when de­ter­min­ing what to work on. I’m shar­ing my find­ings…

Avoid Complexity

Avoid Complexity For 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. Think about it. The typ­i­cal soft­ware en­gi­neer is a sin­gle per­son on a vast team, writ­ing and edit­ing a sys­tem…

Using Codex Is a Lot like Baking

Using Codex is a Lot Like Baking The 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. For web de­vel­op­ment, mod­ern pro­gram­ming tools like Codex are quite good. They are able to un­der­stand a query and iden­tify the rel­e­vant ar­eas in a code­base. Then, they can make…