10 interesting stories served every morning and every evening.

I’m tired of talking to AI

orchidfiles.com

I found GitHub repos­i­to­ries that were spread­ing mal­ware. I asked AI what to do about it, but it gave me noth­ing use­ful. So I opened a dis­cus­sion on GitHub. Someone replied. It was the ex­act same text the AI had given me. I called it out and the com­ment was deleted. Then an­other per­son replied. It was the same AI an­swer again.

I worked as a de­vel­oper at a com­pany. I asked the busi­ness owner a ques­tion about a busi­ness task. He sent me a ChatGPT screen­shot with the an­swer. I replied that it had noth­ing to do with my ques­tion and every­thing there was wrong. A minute later he sent me an­other ChatGPT screen­shot. He did­n’t even read the AIs an­swer. He just took a screen­shot and for­warded it to me.

Recently some­one mes­saged me on Reddit about my post. I replied. They wrote again, I replied again. After a few mes­sages I re­al­ized I was talk­ing to an AI agent.

I’m tired of talk­ing to AI.I want to talk to real peo­ple.But even when I talk to peo­ple, they for­ward my ques­tions to AI and send me the AIs an­swer.

I also pub­lish all new notes on Telegram and Bluesky.

The worst job interview I ever had

www.oliverio.dev

May 26, 2026

The worst job in­ter­view I ever had was­n’t a knowl­edge melt­down, cod­ing as­sess­ment fail­ure, or a com­plete lan­guage mis­un­der­stand­ing with the in­ter­viewer (although I’ve had all of those, too). No, the worst job in­ter­view I had was some­thing I can only de­scribe as an un­so­licited psych eval­u­a­tion.

I’m an en­gi­neer, pri­mar­ily work­ing for small star­tups. At a less-than-10-per­son com­pany, es­pe­cially in the ear­li­est days, cul­tural fit is of sin­gu­lar im­por­tance. Even if you hire a cracked en­gi­neer, it’s prob­a­bly not gonna be a good ex­pe­ri­ence all-around if you can’t make a hu­man con­nec­tion. All this is to say - I get why you’d want to pri­or­i­tize this. But de­spite many quite nor­mal cul­ture fit in­ter­views, there’s one I still re­play in my con­fused head once in a while. And I think it’s worth shar­ing not be­cause I want to shame the com­pany or in­di­vid­u­als (I’ve left them anony­mous), but rather to sug­gest some re­con­sid­er­a­tion for founders and hir­ing man­agers in the same boat.

About 3 years ago, I re­sponded to a mes­sage look­ing for a found­ing en­gi­neer at a men­tal health startup (their no­ble cause was im­prov­ing ther­apy ac­cess for at-risk youth). The first in­ter­view was a quick con­ver­sa­tion with a founder and their head of en­gi­neer­ing — a fairly un­event­ful in­for­ma­tional in­ter­view (“this is why we’re great join us blah blah”). The fol­low-up with the head of en­gi­neer­ing was sched­uled shortly af­ter­wards.

The fol­low-up, they de­scribed over email, would be a bit non tra­di­tional - a ~90 minute cul­ture fit chat. Note there was no tech­ni­cal as­sess­ment yet. Expecting lit­tle, I joined the video call. It was ex­plained we’d just be get­ting to know each other based on some guid­ing ques­tions.

I fail to re­call the ex­act word­ing of the dis­cus­sion top­ics, but they were, in fact, non-tech­ni­cal — cov­er­ing such lovely top­ics as the hard­est day of my life, my biggest life chal­lenges, and other sim­i­lar trauma-baiting” ques­tions.

Now, to be clear, I can un­der­stand why these dis­cus­sions might give deep in­sight into a can­di­date! It’s just that I think it’s frankly a lit­tle in­va­sive when you’re ba­si­cally meet­ing this per­son for the first time.

I’m a lit­tle ashamed re­mem­ber­ing my­self talk­ing about failed re­la­tion­ships, fam­ily strug­gles, and in­ter­per­sonal chal­lenges in pre­vi­ous work en­vi­ron­ments. This per­son gave the im­pres­sion that it was a safe space to share, di­vulging lit­tle of their own trauma.

By the end of the call I felt com­pletely emo­tion­ally drained - and i had­n’t even opened my ter­mi­nal! By the time I got the cur­sory one line We won’t be mov­ing for­ward” email 24 hours later that emo­tional ex­haus­tion quickly turned into two new feel­ings: shame and anger.

I felt aw­ful that i had shared such deeply per­sonal things with the in­ter­viewer just to be cast off in a re­jec­tion email. I felt an­gry that I was re­jected. I felt em­bar­rass­ment that my soul was seem­ingly cracked open and judged unworthy.” It was­n’t my skills they were re­ject­ing. It was… me.. I felt con­fused that a men­tal health startup had con­sciously de­cided to choose an in­ter­view so ca­pa­ble of mak­ing can­di­dates feel so vul­ner­a­ble.

I don’t think this per­son was try­ing to be cruel. Honestly, that al­most made it more con­fus­ing. The for­mat it­self cre­ated the prob­lem.

Culture fit is im­por­tant, make no mis­take. Make sure the peo­ple you hire are good peo­ple with strong morals. But con­sider eval­u­at­ing this in a way that does­n’t make can­di­dates feel like they need to share their deep­est ex­pe­ri­ences just to scrape and claw for em­ploy­ment.

Just a moment...

medium.com

A few interesting modern pixel fonts – Unsung

unsung.aresluna.org

Andrew Gleeson de­signed Analog Mono, fixing the crimes of VCR OSD Mono.” There used to be this clas­sic pixel font that you’d see every­where in the 1990s on hi-fi equip­ment: VCRs, TVs, cam­corders, etc. One of its chal­lenges was a low base­line which re­sulted in all the let­ters with de­scen­ders pulled up, for ex­am­ple:

Analog Mono fixes that prob­lem:

Elsewhere, Kumiko Yoshida made Coral Pixels (also on Google Fonts), a color font that comes with the 1990s and 2000s col­or­ful fring­ing baked in. The fring­ing was once an ar­ti­fact of sub­pixel ren­der­ing, but now it is meant to evoke nos­tal­gia or just as an in­ter­est­ing vi­sual el­e­ment in and of it­self. (Perhaps ad­ja­cent to chro­matic aber­ra­tion?)

Lastly, here’s Two Slice by Joseph Fatula — a font that’s only 2 pix­els tall, and some­what read­able.”

Of course, these are all vec­tor fonts — e.g. ready to be in­stalled on a mod­ern op­er­at­ing sys­tem — pre­tend­ing to be pixel fonts. That’s maybe a sep­a­rate post al­to­gether, but it leads us to the last font, Geist Pixel from Vercel:

The copy in­tro­duc­ing the font is a lit­tle pre­ten­tious/​​spicy, but it touches upon some­thing im­por­tant:

Geist Pixel is­n’t a nov­elty font. It’s a sys­tem ex­ten­sion. [… It] was de­signed with real us­age in mind, not as a vi­sual gim­mick, but as a func­tional tool within a broader ty­po­graphic sys­tem. […] This mat­ters be­cause pixel fonts of­ten break in pro­duc­tion. They don’t scale prop­erly across view­ports, their met­rics con­flict with ex­ist­ing ty­pog­ra­phy, or they’re purely dec­o­ra­tive. Geist Pixel was built to solve these prob­lems, main­tain­ing the vi­sual tex­ture teams want while pre­serv­ing the ty­po­graphic rigor prod­ucts re­quire.

Geist Pixel is­n’t a nov­elty font. It’s a sys­tem ex­ten­sion. [… It] was de­signed with real us­age in mind, not as a vi­sual gim­mick, but as a func­tional tool within a broader ty­po­graphic sys­tem. […] This mat­ters be­cause pixel fonts of­ten break in pro­duc­tion. They don’t scale prop­erly across view­ports, their met­rics con­flict with ex­ist­ing ty­pog­ra­phy, or they’re purely dec­o­ra­tive. Geist Pixel was built to solve these prob­lems, main­tain­ing the vi­sual tex­ture teams want while pre­serv­ing the ty­po­graphic rigor prod­ucts re­quire.

There are def­i­nitely fonts whose Achilles’ heel is not the let­ter­forms, but the in­vis­i­ble hard work put into every­thing that sur­rounds them: the kern­ing, the meta­data, the ex­tra glyphs, the ver­ti­cal met­rics. It seems that the team be­ing Geist Pixel is proud of es­pe­cially that last part.

Just a moment...

www.science.org

Dropbox CEO Drew Houston to step down after 19 years at helm of cloud storage pioneer

www.cnbc.com

Dropbox Co-CEOs Ashraf Alkarmi and Drew Houston. Houston will even­tu­ally step down and as­sume the role of ex­ec­u­tive chair­man at the com­pany he helmed for 19 years.

Courtesy: Dropbox

Drew Houston founded Dropbox nearly two decades ago at age 24, even­tu­ally be­com­ing a house­hold name in Silicon Valley and the first tech en­tre­pre­neur to take a com­pany from the Y Combinator in­cu­ba­tor pro­gram all the way to the pub­lic mar­ket.

Now, at 43, Houston is ready to do some­thing else. He’s in­form­ing staffers on Tuesday that he’ll be tran­si­tion­ing into an ex­ec­u­tive chair­man role af­ter an ini­tial pe­riod shar­ing the co-CEO ti­tle with Ashraf Alkarmi, who is be­ing pro­moted from prod­uct chief. Alkarmi will even­tu­ally take over the top job on his own.

By al­most any mea­sure, Houston has had a great run at Dropbox, help­ing pi­o­neer the cloud stor­age mar­ket, com­pet­ing head-to-head with Google and Apple and build­ing a net worth of more than $2 bil­lion, thanks to sub­stan­tial own­er­ship in his com­pany. But in the land of out­sized ex­pec­ta­tions, Houston has over­seen a com­pany that peaked too soon and never be­came a gen­er­a­tion-defin­ing brand.

Dropbox’s cur­rent mar­ket cap of just over $6 bil­lion is down by half from the high price on its first day of trad­ing in 2018, and is be­low the $10 bil­lion val­u­a­tion it was as­cribed by pri­vate mar­ket in­vestors in 2014. Meanwhile, Airbnb, an­other early break­out hit from Y Combinator, has a mar­ket cap of close to $80 bil­lion, and CEO Brian Chesky is cred­ited with up­end­ing the hos­pi­tal­ity in­dus­try.

Houston, who cre­ated Dropbox due to a personal frus­tra­tion” with con­stantly los­ing USB sticks when he was in col­lege at the Massachusetts Institute of Technology, brushed off the Airbnb com­par­i­son.

I think my 18-year-old self would be high-fiv­ing me,” Houston told CNBC in an ex­clu­sive in­ter­view, not­ing that Dropbox is something that a per­cent­age of the planet still uses.”

In its lat­est quar­terly earn­ings re­port, Dropbox said it has more than 18 mil­lion pay­ing users, and the ser­vice re­mains pop­u­lar with me­dia pro­fes­sion­als, graphic de­sign­ers, ar­chi­tects, and oth­ers who share files and pho­tos as part of their daily work.

Dropbox CEO Drew Houston Dropbox and co-founder Arash Ferdowsi (together at cen­ter) cel­e­brate the launch of Dropbox’s ini­tial pub­lic of­fer­ing as they ring the open­ing bell at Nasdaq MarketSite, March 23, 2018 in New York City.

Drew Angerer | Getty Images News | Getty Images

Dropbox topped $1 bil­lion in an­nual rev­enue in 2017 and sur­passed $2 bil­lion four years later. But rev­enue is roughly flat over the past two years and de­clined slightly in 2025.

The com­pa­ny’s per­pet­ual chal­lenge has been to dis­tin­guish it­self from the swarm of com­pe­ti­tion, which in­cludes Apple and Google as well as Amazon and Microsoft. Then there’s long­time ri­val Box, which is still run by founder Aaron Levie and faces sim­i­lar ob­sta­cles. Box is val­ued at just over $3.5 bil­lion.

The lat­est hur­dle for Dropbox, and the whole cat­e­gory of sub­scrip­tion soft­ware, is ar­ti­fi­cial in­tel­li­gence, which has swept across the tech in­dus­try over the past three-plus years. The soft­ware space has been ham­mered due to con­cerns that foun­da­tion mod­els from OpenAI and Anthropic will en­able sim­pler tools that dis­place ex­ist­ing prod­ucts.

Dropbox shares have held up bet­ter than many in the en­ter­prise space. The stock is down less than 5% in the past year, while com­pa­nies like Monday.com, HubSpot and Asana have lost more than 60% of their value.

Whenever there’s a new tech­nol­ogy, peo­ple ex­trap­o­late very quickly,” Houston said. They make as­sump­tions that may be directionally cor­rect” but take years or even decades longer to play out than they pre­dict.

Regarding this con­cept of SaaS Apocalypse or what­ever,” Houston said he’s never met a Dropbox cus­tomer who’s like, I’m just us­ing so much ChatGPT I’m go­ing to can­cel my Dropbox sub­scrip­tion.’”

Unanswerable ques­tion’

John Lovelock, an an­a­lyst at Gartner, sees par­al­lels be­tween the cur­rent AI era and the early days of cloud com­put­ing, when com­pa­nies like Salesforce bal­looned at the ex­pense of legacy ven­dors like Oracle and SAP. The tra­di­tional play­ers did­n’t col­lapse but saw growth slow as they tried to pivot to the cloud, de­spite busi­nesses spend­ing more on tech­nol­ogy.

The mar­ket is try­ing to pre­dict how things will play out with AI, Lovelock sug­gested.

AI is go­ing to bring more value, there­fore there’s go­ing to be more money spent,” Lovelock said. Where every­body seems to get very ex­cited is who’s go­ing to make that money and that, in some ways, is the unan­swer­able ques­tion right now.”

Analysts at Monness, Crespi, Hardt & Co. wrote in a re­port ear­lier this month af­ter earn­ings that Dropbox is making progress,” high­light­ing its AI-powered Dash fea­ture that cus­tomers can use to more eas­ily search and in­ter­act with doc­u­ments and mes­sages across third-party apps. The an­a­lysts, who have the equiv­a­lent of a hold rat­ing on the stock, said the AI op­por­tu­nity and the com­pa­ny’s val­u­a­tion are two rea­sons that value in­vestors may be drawn to Dropbox.”

Dash lets users quickly query and ma­nip­u­late con­tent that goes be­yond text and into video and au­dio.   Houston said ad­vance­ments in AI mod­els mean that suddenly we can build the ver­sion of this that I would have loved to build 10 years ago.”

watch now

Houston now plans on build­ing some­thing in AI, just not at Dropbox.

I’m not go­ing to be rac­ing sail­boats,” said Houston, who’s also a board mem­ber at Meta, join­ing in 2020.

Houston said he wants to do some­thing en­tre­pre­neur­ial in AI be­cause there’s never been a more ex­cit­ing pe­riod to be build­ing things.”

It’s all cliche, right?” Houston said. AI is re­shap­ing every as­pect of how we live, and I’m sure that I’ll have no short­age of ideas and stuff to work on.”

Along with Houston’s planned move, Dropbox said on Tuesday that Mike Torres is join­ing the com­pany from Google as chief prod­uct of­fi­cer in July. Torres is cur­rently vice pres­i­dent of prod­uct for Google’s Chrome.

As for when and why Houston made the de­ci­sion to leave, he said there was no spe­cific rea­son for the tim­ing.

Part of me has al­ways thought, oh yeah, I’ll be the CEO of Dropbox un­til my last gasp of my ca­reer,” he said. There’s never a per­fect time, there was no part of me where I was like, oh, this date is the date where it’s go­ing to hap­pen.’”

Since Alkarmi joined Dropbox from Vimeo in late 2024, the com­pany has become a lot more re­spon­sive to our cus­tomers and is tak­ing big­ger swings on in­no­va­tion,” Houston said.

I trust the right leader,” he said. The com­pa­ny’s in the right place.”

WATCH: Dropbox CEO Drew Houston on sub­scribers and AI-powered tools.

watch now

Overview · Cloudflare Flagship docs

developers.cloudflare.com

Ship fea­tures safely with fea­ture flags.

Flagship is Cloudflare’s fea­ture flag ser­vice. It lets you con­trol fea­ture vis­i­bil­ity in your ap­pli­ca­tions with­out re­de­ploy­ing code. Define flags with tar­get­ing rules and per­cent­age-based roll­outs, then eval­u­ate them di­rectly in­side your Workers through a na­tive bind­ing.

OpenFeature ↗ is the CNCF open stan­dard for fea­ture flag man­age­ment. Flagship is com­pat­i­ble with OpenFeature, so you can use the @cloudflare/flagship ↗ SDK from any JavaScript run­time — Workers, Node.js, or the browser — and swap providers with­out chang­ing eval­u­a­tion code.

Check out the Get started guide to cre­ate your first fea­ture flag.

Worker bind­ing

Evaluate flags with a na­tive Workers bind­ing. Type-safe meth­ods with au­to­matic fall­back to de­faults.

OpenFeature SDK

Use the @cloudflare/flagship ↗ OpenFeature provider to eval­u­ate flags from Workers, Node.js, or browsers. Switch from an­other flag provider by chang­ing one line of con­fig­u­ra­tion.

Targeting rules

Serve dif­fer­ent flag val­ues based on user at­trib­utes. Rules sup­port 11 com­par­i­son op­er­a­tors, log­i­cal AND/OR group­ing, and se­quen­tial eval­u­a­tion.

Percentage roll­outs

Gradually re­lease fea­tures to a per­cent­age of users. Consistent hash­ing en­sures the same user al­ways re­ceives the same flag value.

Multi-type vari­a­tions

Flag vari­a­tions can be booleans, strings, num­bers, or struc­tured JSON ob­jects. Use ob­ject vari­a­tions to de­liver en­tire con­fig­u­ra­tion blocks as a sin­gle flag.

Flag man­age­ment

Create, up­date, and delete flags through the Cloudflare dash­board. Organize flags into apps that map to your pro­jects or ser­vices.

Workers

Build server­less ap­pli­ca­tions on Cloudflare’s global net­work. Flagship in­te­grates na­tively with Workers through a bind­ing.

KV

Store key-value data across Cloudflare’s global net­work. Flagship uses this in­fra­struc­ture to de­liver flag con­fig­u­ra­tions.

Developer Discord

Connect with the Workers com­mu­nity on Discord to ask ques­tions, show what you are build­ing, and dis­cuss the plat­form with other de­vel­op­ers.

@CloudflareDev

Follow @CloudflareDev on Twitter to learn about prod­uct an­nounce­ments and what is new in Cloudflare Workers.

Stripe is friendly to “friendly fraud”

www.gingerlime.com

Friendly fraud is the laun­dered name for some­thing that the pay­ment sys­tem is not re­ally able to pre­vent. Even though I’m pretty sure they can do way bet­ter. Particularly big and so­phis­ti­cated pay­ment providers like Stripe, with a moun­tain of sig­nals.

I had a cus­tomer buy my prod­uct twice. It’s called Ciglue. It’s cigar glue. Not Rolex or iPhone. The first or­der was shipped with DHL and de­liv­ered, with proof of de­liv­ery. The cus­tomer did­n’t con­tact to re­quest a re­fund or a re-de­liv­ery, but I saw a dis­pute filed, so I reached out to them.

They said it was the bank’s mis­take be­cause the bank bun­dled this pay­ment with some real fraud­u­lent trans­ac­tions from the Philippines. They promised to con­tact their bank and even of­fered to pay me back via Paypal. I was happy that it’s just a mis­un­der­stand­ing. I sub­mit­ted the ev­i­dence of the de­liv­ery, cus­tomer com­mu­ni­ca­tion, web­site poli­cies, every­thing by the book.

It turned out the cus­tomer was do­ing it on pur­pose, and ly­ing to me. They not only did­n’t con­tact the bank to cor­rect the sit­u­a­tion, they ac­tu­ally pre­tended not to have re­ceived the prod­uct. And the bank, nat­u­rally, sided with them. I had no re­course. Dispute granted. Money, prod­uct, ship­ping and dis­pute fees, all gone. This is an­noy­ing, but not ex­actly un­heard of. If you sell on­line, you prob­a­bly know the feel­ing: you send the prod­uct, col­lect the ev­i­dence, sub­mit every­thing prop­erly, and then some­how still lose.

Before the dis­pute came in, the same cus­tomer placed an­other or­der, this time with un­tracked ship­ping, and a few days af­ter the first dis­pute, an­other dis­pute fol­lowed. Once the first dis­pute was granted, things be­came clear. The cus­tomer emailed me to gloat about their clever scheme. Literally giv­ing me the fin­ger.

I sent the screen­shots to Stripe and asked if this could be re­ported prop­erly. To the bank, to some fraud re­port­ing net­work, or even just in­ter­nally in­side Stripe.

I was­n’t ex­pect­ing Stripe to re­cover the money or re­verse a closed dis­pute. I un­der­stand that the cus­tomer’s bank makes the fi­nal de­ci­sion, and that card net­work rules are what they are. But I did ex­pect the re­port it­self to mat­ter. This is a very clear case of friendly fraud”. The card be­longed to the cus­tomer, the ad­dress was valid etc. The cus­tomer ap­peared to en­joy screw­ing me over. Pretty sad con­sid­er­ing this is a pretty cheap prod­uct in a niche hobby. But still.

I would have ex­pected Stripe to use this ev­i­dence in some way to feed into the so­phis­ti­cated ma­chine-learn­ing anti-fraud sys­tem. But No.

After quite a bit of back and forth, Stripe’s an­swer seems to be that it does­n’t re­ally mat­ter be­yond my own ac­count.

They told me they don’t use ev­i­dence of charge­back abuse from one mer­chant to cre­ate cross-mer­chant fraud sig­nals, or to take ac­tion against the cus­tomer’s card, email, or other de­tails for other mer­chants.

You prob­a­bly don’t want a sys­tem where one an­noyed mer­chant can get some­one blocked across the whole Stripe pay­ment sys­tem. But there’s a pretty big gap be­tween automatically block this per­son every­where” and thanks for the screen­shots, please con­sider Radar”, and this is where it gets frus­trat­ing.

Stripe sells Radar on the strength of its net­work: lots of pay­ments, lots of sig­nals, bet­ter fraud de­tec­tion, ma­chine learn­ing, etc. Stripe sees a lot of trans­ac­tions, so in the­ory it can spot things that an in­di­vid­ual mer­chant can’t. But when a mer­chant sends ac­tual ev­i­dence that a cus­tomer is abus­ing charge­backs, sud­denly it means noth­ing. The rec­om­mended so­lu­tion is to use Radar rules to block the cus­tomer from buy­ing from me again. And I prob­a­bly have to up­grade and pay Stripe to use this rule any­way. Gee thanks!

The next mer­chant still starts from zero. This is also not the kind of fraud Radar can eas­ily solve be­fore the pay­ment. The trans­ac­tion looked fine, checks passed, phys­i­cal ad­dress matched. The abuse hap­pened later, through the dis­pute process. There is no clever check­out rule for customer re­ceives the prod­uct and later lies to their bank”.

Small mer­chants al­ready have very lit­tle lever­age in dis­putes: the bank de­cides, Stripe points at the bank, and I lose the money, the prod­uct, the dis­pute fee, and the time spent deal­ing with it all. If new ev­i­dence ap­pears later, it may be too late to sub­mit. If the cus­tomer does the same thing else­where, and some­thing tells me this is­n’t this per­son’s first rodeo, then the next mer­chant gets to get suck­ered.

Nothing friendly about this. Besides per­haps Stripe ef­fec­tively be­ing friendly with the fraud­sters here by not do­ing any­thing about it.

How Private Equity Bought America’s Essential Services

rubbishtalk.com

When a fire truck fails to de­ploy in a burn­ing build­ing and four peo­ple die, the cause is­n’t just me­chan­i­cal fail­ure. It’s a busi­ness model.

On the night of June 26, 2025, fire­fight­ers on Tower Ladder 14 raced to a Chicago apart­ment build­ing where an ar­son­ist had poured gaso­line on both stair­wells. When they ar­rived, the aer­ial lad­der would not go up. The crew had to shut the rig off en­tirely and restart it. The de­lay lasted ap­prox­i­mately one minute. Four peo­ple died that night — in­clud­ing a preg­nant woman, her five-year-old son, and her sis­ter, who threw her own child from a third-floor win­dow be­fore per­ish­ing her­self.

Nobody told the sur­viv­ing fam­ily about the lad­der mal­func­tion. They found out from jour­nal­ists.

That mal­func­tion­ing truck is a thread. Pull it, and what un­rav­els is one of the clear­est il­lus­tra­tions of how pri­vate eq­uity — the $9.4 tril­lion in­dus­try that qui­etly con­trols roughly 11,500 American com­pa­nies and 11 mil­lion jobs — turns es­sen­tial pub­lic in­fra­struc­ture into profit ex­trac­tion ma­chines, of­ten at lethal cost.

The Business Model: Brilliant for Investors, Brutal for Everyone Else

Private eq­uity is not a mys­tery. The me­chan­ics are straight­for­ward, the in­cen­tives are trans­par­ent, and the out­comes are pre­dictable once you un­der­stand how the ma­chine works.

A pri­vate eq­uity firm raises a fund — typ­i­cally from pen­sion funds, sov­er­eign wealth funds, en­dow­ments, and wealthy in­di­vid­u­als. It then ac­quires com­pa­nies, usu­ally through a lever­aged buy­out (LBO): a struc­ture where 50 to 90 per­cent of the pur­chase price is fi­nanced by debt, and that debt is loaded onto the bal­ance sheet of the ac­quired com­pany, not the firm mak­ing the ac­qui­si­tion. The firm then charges the fund a man­age­ment fee — his­tor­i­cally 2 per­cent of as­sets an­nu­ally — plus car­ried in­ter­est: a 20 per­cent cut of any prof­its, taxed at the long-term cap­i­tal gains rate of 20 per­cent rather than the or­di­nary in­come rate of 37 per­cent. Critics have long called this a tax loop­hole. Congress has de­bated clos­ing it for two decades and has not.

US pri­vate eq­uity AUM reached $3.128 tril­lion in 2024 alone, ac­cord­ing to S&P Global. Total pri­vate mar­kets AUM glob­ally sits at ap­prox­i­mately $15 tril­lion.

The model works when ap­plied to un­der­per­form­ing busi­nesses that gen­uinely need re­struc­tur­ing. PE firms can bring op­er­a­tional dis­ci­pline, growth cap­i­tal, and strate­gic fo­cus. That is the af­fir­ma­tive case, and it is real.

The prob­lem emerges when the model is ap­plied to es­sen­tial ser­vices with in­elas­tic de­mand — in­dus­tries where the cus­tomer has no choice but to pay, where qual­ity degra­da­tion is hard to mea­sure un­til cat­a­stro­phe strikes, and where the typ­i­cal PE time­line of 3-to-7 years be­fore exit cre­ates in­cen­tives to strip value rather than build it.

The Senate Joint Economic Committee’s July 2024 re­port de­scribed this as a buy, strip and flip” busi­ness model: PE firms load ac­quired com­pa­nies with debt, cut costs ag­gres­sively, then re­sell at a profit — of­ten at the di­rect ex­pense of work­ers, com­mu­ni­ties, and the ser­vices those com­pa­nies pro­vide. Public com­pa­nies ac­quired by PE are ap­prox­i­mately ten times more likely to go bank­rupt than a com­pa­ra­ble con­trol group sub­ject to the same mar­ket forces, the re­port found.

The Fire Truck Racket: A Case Study in Manufactured Scarcity

The fire truck in­dus­try is the sharpest and most doc­u­mented ex­am­ple of what PE con­sol­i­da­tion does to es­sen­tial ser­vices.

Two decades ago, more than two dozen in­de­pen­dent man­u­fac­tur­ers com­peted to build America’s fire ap­pa­ra­tus. Today, three com­pa­nies con­trol ap­prox­i­mately 80 per­cent of the mar­ket: REV Group, Pierce Manufacturing (owned by Oshkosh Corporation), and Rosenbauer. This con­cen­tra­tion was not an ac­ci­dent of mar­ket forces. It was en­gi­neered.

REV Group is the cen­tre­piece of the story. The com­pany — owned by pri­vate eq­uity firm American Industrial Partners — sys­tem­at­i­cally ac­quired for­merly in­de­pen­dent man­u­fac­tur­ers in­clud­ing E-One, Ferrara, KME, Ladder Tower, and Spartan. The old name­plates still ex­ist as brand names. But be­hind them sits a sin­gle PE-backed con­glom­er­ate con­trol­ling a mas­sive share of the sup­ply chain for emer­gency ve­hi­cles that every American city de­pends on.

The re­sult is a back­log that reads like a fi­nan­cial op­por­tu­nity in earn­ings calls and a cri­sis in every fire sta­tion in the coun­try. As of 2025, REV Group’s back­log stands at $4.5 bil­lion. Wait times for a cus­tom fire truck run to four years. Prices have dou­bled in a decade: a pumper truck now costs around $1 mil­lion; a lad­der truck runs over $2 mil­lion. Profit mar­gins in the in­dus­try have tripled — from the his­toric 4-to-5 per­cent range to over 13 per­cent.

Our $4.5 bil­lion back­log is at­trac­tive among in­dus­trial man­u­fac­tur­ers, is largely backed by mu­nic­i­pal tax re­ceipts, and of­fers sig­nif­i­cant value ac­cre­tion op­por­tu­nity, pro­vid­ing a path­way for growth and mar­gin ex­pan­sion over the next sev­eral years.”

— Mark Skonieczny, CEO, REV Group, 2025 in­vestor earn­ings call

Note what Skonieczny is telling in­vestors: the back­log is not a prob­lem to be solved. It is an as­set. The cus­tomers — fire de­part­ments serv­ing American cities — are locked in be­cause they have no al­ter­na­tive. Their or­ders, backed by tax re­ceipts, are guar­an­teed rev­enue. The com­pa­ny’s in­cen­tive is to main­tain the back­log, not elim­i­nate it.

The Senate heard this clearly. At a September 10, 2025 hear­ing, Senator Josh Hawley (R-MO) put it bluntly to the man­u­fac­tur­ers:

This did­n’t just hap­pen to you ac­ci­den­tally. This is a busi­ness de­ci­sion, is­n’t it? You keep these back­logs like this. […] Another word for this would be a heist. This sounds to me like pri­vate eq­uity came in; bought up all of these small com­pa­nies; com­bined them; shut down their pro­duc­tion; rolled up a huge back­log; mas­sive prof­its; stiffed these guys; and now you’re mak­ing out like ban­dits.”

— Sen. Josh Hawley, US Senate Subcommittee on Disaster Management, September 10, 2025

The pro­duc­tion data sup­ports Hawley’s char­ac­ter­i­sa­tion. REV Group closed mul­ti­ple pro­duc­tion fa­cil­i­ties in Pennsylvania and Virginia even as its back­log grew. The com­pany si­mul­ta­ne­ously spent $530 mil­lion on stock buy­backs and div­i­dend pay­ments, in­clud­ing a $180 mil­lion spe­cial div­i­dend paid di­rectly to pri­vate eq­uity own­ers just be­fore the com­pany went pub­lic. The CEO earns $6 mil­lion an­nu­ally.

The com­pet­i­tive mar­ket is gone. The Fire Apparatus Manufacturers Association — the in­dus­try trade group — holds an­nual meet­ings where mem­bers share economic data, fire mar­ket trends, and ap­pa­ra­tus sales and or­der sta­tis­tics.” Antitrust at­tor­ney Basel Musharbash tes­ti­fied to Congress that the con­glom­er­ates appear to have trans­formed a once vi­brant in­dus­try into a racket.” Four cities — Los Angeles County, Green Bay, Allentown, and oth­ers — have filed fed­eral an­titrust law­suits. The Texas Attorney General opened a price-fix­ing in­ves­ti­ga­tion. The de­fen­dants deny all wrong­do­ing.

Meanwhile, Ed Kelly, pres­i­dent of the International Association of Fire Fighters, told the Senate: Sometimes we have fire­fight­ers re­spond­ing in pickup trucks, like a paint­ing crew with ground lad­ders on it.”

This Is a Pattern, Not an Anomaly

The fire truck in­dus­try is the most pub­licly doc­u­mented case, but the un­der­ly­ing play­book — ac­quire, con­sol­i­date, re­duce sup­ply, ex­tract mar­gin — ap­pears across es­sen­tial sec­tors with alarm­ing con­sis­tency.

Ambulances

Private eq­ui­ty’s grip on emer­gency med­ical ser­vices fol­lows the same arc. KKR con­trols sig­nif­i­cant am­bu­lance mar­ket share through Envision Healthcare and Global Medical Response (parent of Rural/Metro). As PEs mar­ket share in air am­bu­lance grew, the me­dian charge for a trans­port in­creased over 60 per­cent be­tween 2012 and 2017, ac­cord­ing to re­search cited in Senate tes­ti­mony. The pre­dictable end­point: Envision Healthcare filed for Chapter 11 bank­ruptcy in 2023 un­der the weight of debt it was sad­dled with af­ter its PE ac­qui­si­tion — leav­ing con­tracts can­celled, re­sponse times de­graded, and in at least one doc­u­mented case, a de­layed am­bu­lance ar­rival that may have con­tributed to a death.

Nursing Homes

PE in­vest­ment in nurs­ing homes grew from $5 bil­lion in 2000 to $104 bil­lion in 2024. More than 1,500 fa­cil­i­ties now op­er­ate un­der PE con­trol. The doc­u­mented out­comes are not am­bigu­ous: PE-owned nurs­ing homes show more care de­fi­cien­cies, sig­nif­i­cantly re­duced staffing hours, higher hos­pi­tal­i­sa­tion rates, and in­creased mor­tal­ity. People un­der­go­ing surgery at PE-acquired hos­pi­tals faced a 17 per­cent higher prob­a­bil­ity of dy­ing within 90 days than pa­tients at non-ac­quired cen­tres, ac­cord­ing to peer-re­viewed re­search. At least two PE-owned nurs­ing home chains filed for bank­ruptcy in 2024 alone — LaVie Care Centers (backed by Formation Capital) and Goldner Capital Management — leav­ing res­i­dents dis­placed and staff un­paid.

Housing

Institutional in­vestors — many PE-backed — own more than 500,000 sin­gle-fam­ily rental homes and are pro­jected to con­trol 40 per­cent of the US sin­gle-fam­ily rental mar­ket by 2030. The DOJ opened a crim­i­nal in­ves­ti­ga­tion in 2024 into RealPage, a prop­erty-man­age­ment soft­ware firm used by ma­jor land­lords, over al­le­ga­tions that its al­go­rith­mic pric­ing sys­tem en­abled co­or­di­nated rent in­creases across com­pet­ing land­lords — ef­fec­tively au­tomat­ing what an­titrust law would oth­er­wise pro­hibit. The Senate passed a bi­par­ti­san hous­ing bill in March 2026 tar­get­ing large in­vestors, though its scope re­mains lim­ited.

Local Newspapers

Alden Global Capital — a hedge fund with tac­tics in­dis­tin­guish­able from PE — sys­tem­at­i­cally ac­quired lo­cal news­pa­pers and gut­ted them, cut­ting news­rooms faster than any other owner in the coun­try. The 2019 Gannett-GateHouse merger, backed by New Media Investment Group (a hedge fund), put one in five US daily news­pa­pers un­der fi­nan­cial-en­gi­neer con­trol. Academic re­search found that when a PE firm ac­quires a news­pa­per, the news­room shrinks by an av­er­age of nine re­porters and ed­i­tors — around 14 per­cent of staff — not be­cause the pa­pers aren’t prof­itable, but be­cause the model de­mands mar­gin ex­trac­tion. The ef­fect is the de­struc­tion of lo­cal de­mo­c­ra­tic ac­count­abil­ity in­fra­struc­ture.

The Structural Problem Nobody Is Naming

The main­stream cov­er­age of PE tends to fo­cus on in­di­vid­ual cases: a hos­pi­tal that went bank­rupt, a nurs­ing home with code vi­o­la­tions, a city that can’t get a fire truck for four years. The sto­ries are com­pelling. What they of­ten miss is the sys­temic ar­chi­tec­ture that makes these out­comes not bugs but fea­tures.

PEs struc­tural in­cen­tive is to max­imise re­turns over a 3-to-7 year in­vest­ment hori­zon. When ap­plied to gen­uinely com­pet­i­tive in­dus­tries with mul­ti­ple play­ers, this can drive ef­fi­ciency. When ap­plied to es­sen­tial ser­vices — par­tic­u­larly af­ter roll-up ac­qui­si­tions that elim­i­nate com­pe­ti­tion — it cre­ates some­thing more trou­bling: a model that prof­its from degra­da­tion of the very ser­vices the pub­lic can­not opt out of.

The debt load­ing mech­a­nism is key and un­der­re­ported. When a PE firm ac­quires a nurs­ing home chain or an am­bu­lance com­pany via LBO, the debt does­n’t sit on the PE fir­m’s bal­ance sheet. It sits on the ac­quired com­pa­ny’s bal­ance sheet. The firm has al­ready ex­tracted its man­age­ment fees. If the com­pany even­tu­ally files for bank­ruptcy, the PE firm has typ­i­cally al­ready re­ceived div­i­dends and fees that ex­ceed its eq­uity con­tri­bu­tion. The losses fall on cred­i­tors, work­ers, pen­sion funds, and — in the case of es­sen­tial ser­vices — the com­mu­ni­ties that de­pended on those ser­vices.

REV Group’s $180 mil­lion spe­cial div­i­dend to PE own­ers be­fore IPO is a text­book ex­am­ple. The money was ex­tracted be­fore the mar­ket ever had a chance to price in the risk. The fire de­part­ments who need the trucks have no equiv­a­lent exit op­tion.

What Comes Next

Four cities have now sued the ma­jor fire truck man­u­fac­tur­ers. The IAFF has for­mally asked the FTC to in­ves­ti­gate an­titrust vi­o­la­tions. The Senate held a bi­par­ti­san hear­ing — no­table for its rar­ity — in which sen­a­tors from both par­ties used words like heist” and racket” with­out the man­u­fac­tur­ers of­fer­ing a cred­i­ble re­but­tal.

The broader PE re­form de­bate has gained ground. The Stop Wall Street Looting Act, in­tro­duced in Congress, would make PE firms li­able for the debts of their port­fo­lio com­pa­nies, close the car­ried in­ter­est tax loop­hole, re­strict div­i­dend re­cap­i­tal­i­sa­tion (the prac­tice of load­ing debt to pay PE own­ers be­fore exit), and give work­ers a pri­or­ity claim in bank­ruptcy. It has not passed.

The harder ques­tion — one that the an­titrust suits and Senate hear­ings won’t fully re­solve — is whether es­sen­tial in­fra­struc­ture should be sub­ject to the same fi­nan­cial-en­gi­neer­ing logic as any other in­vestable as­set class. The mar­ket an­swer is: what­ever gen­er­ates re­turn is fair game. The pub­lic ser­vice an­swer is: some in­dus­tries ex­ist to serve com­mu­ni­ties, and the cost of mak­ing them pure profit ve­hi­cles is paid in de­layed am­bu­lances, un­main­tained fire trucks, and bod­ies in burned apart­ments.

The fire in Chicago is not a metaphor. It is a con­se­quence. And it will keep hap­pen­ing un­til the struc­tural in­cen­tives that pro­duced it are ad­dressed — not case by case, but at the level of the model it­self.

How I Bypassed Adobe and Microsoft to Build a Git-Tracked Book Production Pipeline

www.djspeckhals.com

The most im­por­tant piece of fic­tion writ­ing is the story. Are the char­ac­ters com­pelling? Is the plot ex­cit­ing and co­her­ent? Is the story be­liev­able? Paired with that is writ­ing qual­ity, which in­cludes gram­mar, syn­tax, spelling, and punc­tu­a­tion. Without an im­mense amount of work on these points, au­thors lack a book worth pub­lish­ing.

Formatting and type­set­ting a novel can be­come an af­ter­thought. It’s prob­a­bly the most tech­nol­ogy-dri­ven part of the self-pub­lish­ing process, which can be scary to au­thors who just want to get a pol­ished book into read­ers’ hands. I don’t mean to im­ply my for­mat­ting process is the best or the eas­i­est. It works for me and sat­is­fies my in­cli­na­tions as both an in­de­pen­dent nov­el­ist and soft­ware de­vel­oper.

Word + InDesign + Calibre + Kindle Create

I started safe. All three of my Christian his­tor­i­cal nov­els—Heretics of Piedmont, The Lord of Luserna, and Prince of Savoy, plus my novella The Outcast of Chivasso—started as Microsoft Word files (DOCX). The vast ma­jor­ity of ed­i­tors and proof­read­ers rely on Word for tracked changes, and prac­ti­cally every fi­nal for­mat­ting pro­gram (Adobe InDesign, Kindle Create, Calibre, Atticus, etc.) can im­port DOCX files. Like a good boy, I used para­graph styles rather than man­ual for­mat­ting. My Word doc­u­ment—named some­thing like Heretics-of-Piedmont_revised-final-3.docx”—became my source of truth, the com­mon an­ces­tor for all fi­nal for­mats.

I did­n’t want to for­mat my book for print in Word, though. Can it be done? Yes. Does it meet the qual­ity stan­dards of pro­fes­sion­als? That’s de­bat­able. Its hy­phen­ation and jus­ti­fi­ca­tion leave a lot to be de­sired, among other weak­nesses. The last time I checked (early 2026), Word does­n’t in­clude mi­croty­pog­ra­phy fea­tures like desk­top pub­lish­ing soft­ware does.

Other op­tions ex­ist, but Adobe InDesign is the in­dus­try stan­dard. Professionals use its bat­tle-tested fea­ture set to pro­duce what truly can be art. I wanted that level of qual­ity in my own books. So I held my nose and plunged into the world of Adobe Creative Cloud. I did­n’t know how to use InDesign at first, but I read a lot and watched plenty of YouTube videos on the craft. I learned about DOCX style map­ping, pre­vent­ing em-dash breaks, crisp mar­gins, page bal­anc­ing, at­trac­tive drop-caps, track­ing, op­ti­cal mar­gins, base­line grids, and other minu­tia. Plenty of jar­gon there, but the work is quite sat­is­fy­ing, es­pe­cially when you no­tice the de­tails in the end prod­uct. (Side note: when I browse book­stores, I al­ways in­ves­ti­gate how big pub­lish­ing houses do it.) When I got to the se­quels, I again chose InDesign.

Ebooks are an en­tirely dif­fer­ent mat­ter. There are many de­cent op­tions to pro­duce an EPUB, but none seem to dom­i­nate ebook pub­lish­ing like InDesign does for print. Kovid Goyal is a fa­mil­iar name in the soft­ware world; he’s one of those tal­ented de­vel­op­ers who make work­ing with com­put­ers bet­ter for the rest of us. Perhaps his most well-known con­tri­bu­tion is Calibre, a pow­er­ful ebook man­ager. Not only can you read nearly any ebook with it, but it also in­cludes an amaz­ing ebook au­thor­ing toolset. Importing from a Microsoft Word doc­u­ment is a breeze, and with a lit­tle HTML and CSS knowl­edge, you can cre­ate a very com­pat­i­ble EPUB.

Kindle is a dif­fer­ent story. You can up­load EPUBs to Kindle Direct Publishing (KDP), where they will con­vert it into their pro­pri­etary KFX file. I never had suc­cess up­load­ing the EPUBs I had cre­ated with Calibre, how­ever. Amazon’s sug­gested so­lu­tion is their Kindle Create pro­gram, which worked okay, but that was yet an­other for­mat to main­tain. The soft­ware de­vel­oper in me was scream­ing for a bet­ter so­lu­tion.

Opportunities

Making the slight­est change be­came a chore.

Update the master” DOCX

Update InDesign file, ex­port PDF, up­load to dis­trib­u­tors

Update EPUB in Calibre, ex­port EPUB, up­load to dis­trib­u­tors

Update in Kindle Create, ex­port KPF, up­load to KDP

A Linux lap­top is my daily dri­ver, but nei­ther Kindle Create nor InDesign run on it (even with Wine), so I had to switch to my fam­ily Macbook—first-world prob­lems, but I like what I’m used to.

A few years ago on Hacker News, I dis­cov­ered Standard Ebooks. I read the pro­jec­t’s goals and skimmed a few of their pub­lished works. To say I was im­pressed is an un­der­state­ment. Their books were miles ahead of any free ebook. I noted the pro­ject and have since read at least a dozen books from their grow­ing li­brary of pub­lic do­main works (by the way, they’re a wor­thy cause to sup­port). If only my own ebooks could match their qual­ity.

Pivoting

I fin­ished Prince of Savoy, Book 3 of my tril­ogy, in 2025 and was ready to for­mat it. As I had done nu­mer­ous times, I im­ported the Word doc­u­ment into InDesign and for­mat­ted the print ver­sion. But then I had an idea—what if I fol­lowed Standard Ebooks’ (SE) process in­stead? For a few rea­sons, I used Calibre to con­vert the DOCX to a clean EPUB, to which I would later ap­ply SEs Manual of Style via their de­tailed guide to pro­duc­ing an ebook.

I quickly dis­cov­ered how strict, how pedan­tic, and how ut­terly opin­ion­ated SE is. Their style guide leaves lit­tle room for in­ter­pre­ta­tion or am­bi­gu­ity, which, if fol­lowed prop­erly, re­sults in a pris­tine EPUB that’s com­pat­i­ble on prac­ti­cally all de­vices. The process was a chore, es­pe­cially the first time I worked through it. I told my­self, Trust the process; it’ll be worth it,” be­cause it of­ten felt more like a chore. Looking back, I feel like SEs tools (all fun­nelled through the pow­er­ful stan­dard­e­books com­mand line pro­gram) are like hav­ing a copy­ed­i­tor for ebook for­mat­ting or a lin­ter for code. Here are some ex­am­ples from SEs lin­ter:

Illegal unit used to set font-size. Hint: Use em units.

Word count in meta­data does­n’t match ac­tual word count.

Header el­e­ment with in­com­pat­i­ble se­man­tics. Hint: Headers should be ei­ther ti­tle or or­di­nal, not both.

Possessive s within name ital­ics. Hint: If the name in ital­ics is do­ing the pos­sess­ing, s goes out­side ital­ics.

…among hun­dreds of other checks. The strict­ness ap­peals to me as a soft­ware de­vel­oper. Getting all lint rules to pass took some time, but it was sat­is­fy­ing to end up with a clean di­rec­tory of XHTML source files, ver­sion con­trolled in Git, eas­ily built as an EPUB with the se build com­mand. I had scratched Kindle Create from my work­flow, be­cause Standard Ebooks EPUBs con­verts well for Kindles. Prince of Savoy was ready to dis­trib­ute, and I was thor­oughly sat­is­fied with its elec­tronic for­mat.

Open Source Tooling

With the tril­ogy com­plete, I wanted to go back and re­vise the first in­stall­ment, Heretics of Piedmont. I spent 3 weeks of free time im­prov­ing mi­nor de­tails (eliminating a few anachro­nisms, slim­ming prose, adding three hand-drawn maps), with the goal of fully match­ing the style of Books 2 and 3. But I was tired of edit­ing the doc­u­ment on a Windows com­puter—or worse, Office 365 Online. Pedantically, I per­formed the con­ver­sion from DOCX to ODT (Open Document Text, the na­tive for­mat for LibreOffice Writer).

Does LibreOffice have its short­com­ings? Certainly. But from my ex­pe­ri­ence, it does its job: I can type, check spelling and gram­mar, and per­haps most im­por­tantly, ap­ply styles. As I re­vised, I added se­man­tic para­graph styles for songs, let­ters, po­ems, epigraphs, glos­sary en­tries, etc.; char­ac­ter styles are a less used fea­ture of word proces­sors, but they can act as se­man­tics that go be­yond ba­sic for­mat­ting. I cre­ated styles for each for­eign lan­guage (seven of them in Heretics of Piedmont) and ap­plied them to the ap­prox­i­mately one hun­dred non-Eng­lish phrases in the text. There are also char­ac­ter styles for di­rect thoughts, cre­ative work ti­tles, prayers, and em­pha­sis; though all of these trans­late to ital­ics when read­ing in print and elec­tron­i­cally, hav­ing these se­man­tics is a key in pro­duc­ing a Standard Ebooks-compliant EPUB. Not only do the se­man­tic at­trib­utes make the book more ac­ces­si­ble for those who use screen-read­ers, but they also en­able more con­trol that sur­passes sim­ple ital­ics for­mat­ting.

Now I had a clean, se­man­ti­cally rich ODT file: open source, easy to edit, and as I would soon dis­cover, sim­ple to parse. I chose this file as my source of truth.” Why did­n’t you just au­thor it in LaTeX? Or Markdown? Or RST?” you might ask. I con­sid­ered each of those, but I pre­fer writ­ing nov­els in a word proces­sor, not a text ed­i­tor.

Now I needed to cre­ate a PDF and an EPUB. Though I had never parsed an ODT file, a lit­tle Python, lxml, and Claude Code helped me quickly draft the con­ver­sion script. The script maps the XML nodes of the ODT file to an in­ter­me­di­ary struc­ture, which then al­lows for eas­ily out­put to XHTML (and even­tu­ally LaTeX; I’ll get to that later). I ran the con­ver­sion script with a TOML con­fig file (which maps ODT styles to XHTML el­e­ments and at­trib­utes), and I had every­thing I needed for the SE EPUB—and only a cou­ple lint er­rors to fix. Ebook goal ac­com­plished!

The more dif­fi­cult path was the print PDF. I des­per­ately wanted LibreOffice Writer to have the fea­tures I needed. Coincidentally, sev­eral mi­croty­pog­ra­phy fea­tures landed in 2025 that sounded much like Adobe InDesign’s ca­pa­bil­i­ties. Would it be that sim­ple?

Unfortunately, no. Though I read through changel­ogs and saw the care vol­un­teer de­vel­op­ers took in bring­ing mi­croty­pog­ra­phy to Writer, it was­n’t up to the task yet. The end edge of the page was ragged, the bot­tom edge was un­bal­anced, and drop caps ap­peared odd. I tried Scribus too, but 200+ page books bring the pro­gram to a crawl. And the re­sults were worse than Writer. I’d have to set­tle for InDesign, I fig­ured.

Then I thought of LaTeX. I had heard of it since I started pro­gram­ming but was never fully ex­posed to it. In col­lege (non-STEM), I sub­mit­ted pa­pers as Word doc­u­ments or PDFs. LaTeX seemed daunt­ing, but it had the fea­tures I des­per­ately wanted: ad­vanced ty­pog­ra­phy, abil­ity to au­to­mate, and ver­sion con­trol. I tested a chap­ter from my book as LaTeX and com­pared the out­put with Adobe InDesign’s. It was nearly in­dis­tin­guish­able.

Now the hard part: How do I con­vert an ODT file to TeX? Pandoc can, but cus­tom Writer styles aren’t car­ried over. So I re­pur­posed the same con­ver­sion script I used for ODT→XHTML and gen­er­al­ized it to sup­port ODT→TeX. Perhaps some day I’ll open source that code, but it’s cur­rently tai­lored for my own unique use cases, and I’m not sure it will help oth­ers yet.

Retrofitting

At last I had a sus­tain­able, au­to­mated, ver­sion-con­trolled path for pro­duc­ing print and elec­tronic ver­sions of my books—with­out pro­pri­etary soft­ware like Word and InDesign. There’s still the down­side of hav­ing to edit the master” ODT file, then re­gen­er­at­ing the PDF and EPUB, but it’s a triv­ial process I can per­form on any com­puter. I had tran­si­tioned from opaque bi­nary(ish) .docx and .indd files to plain-text .xhtml and .tex. Seeing ex­actly what changed in a proof­read­ing pass via git diff was a mas­sive qual­ity-of-life win.

Even though I had re­vised and retooled” Heretics of Piedmont, I still had two other nov­els and a novella that used the old tools. I also con­verted those Word doc­u­ments to se­man­tic Writer doc­u­ments, then my con­ver­sion script han­dles the rest.

Is there room for im­prove­ment? For sure. I would love if the XHTML and TeX were ar­ti­facts rather than code. I cur­rently have sep­a­rate Git repos­i­to­ries for the XHTML and TeX for each book, mainly be­cause I want the ODT file to re­main the source of truth. It’s eas­ier for me to write in, and pro­fes­sional copy­ed­i­tors and proof­read­ers want word proces­sor doc­u­ments for their work.

My process cer­tainly is­n’t for every­one. Most in­de­pen­dent au­thors would be fine with ei­ther hir­ing a pro­fes­sional for­mat­ter or set­tling with some­thing sim­i­lar to my ear­lier process. In the end, read­ers don’t care about the for­mat­ting process. They want to read a good story. I want to pro­vide that first, but if I can also en­joy the for­mat­ting, I’ll count that as a win for my read­ers too.

Appendix: The LaTeX Preamble

For any­one in­ter­ested in the un­der­ly­ing me­chan­ics, you can view the full LaTeX pre­am­ble here.

These are the key pack­ages I used:

mem­oir: batteries in­cluded” class for doc­u­ment cre­ation

fontspec: al­lows ren­der­ing of OpenType fonts (like my fa­vorite body text, Adobe Garamond)

poly­glos­sia: pro­vides hy­phen­ation pat­terns per lan­guage; I oc­ca­sion­ally use non-Eng­lish lan­guages like Old Occitan and Latin for reader im­mer­sion

graph­icx: al­lows ad­vanced em­bed­ding and ad­just­ment of im­ages like maps and my au­thor por­trait

mi­crotype: pro­vides the pre­vi­ously-men­tioned fea­tures that en­hance the ap­pear­ance and read­abil­ity of every page—one of the main rea­sons I chose LaTeX

LaTeX

TeX

EPUB

Standard Ebooks

Novel Formatting

To add this web app to your iOS home screen tap the share button and select "Add to the Home Screen".

10HN is also available as an iOS App

If you visit 10HN only rarely, check out the the best articles from the past week.

Visit pancik.com for more.