Sign in

Abhinav 🧭

@abnv.me
68 followers 7 following 292 posts

Programming languages aficionado, occasional runner, quantified-self enthusiast, and fervent napper. Works as senior software engineer at Google on […] 🌉 bridged from ⁂ fantastic.earth/@abnv, follow @ap.brid.gy to interact

PostsRepliesMedia
Abhinav 🧭 @abnv.me · 13h
In which I customize my #Miniflux #feedReader further by adding a signal based post sorting: abhinavsarkar.net/notes/2026-minifl… #blogging #feeds #rss
abhinavsarkar.net
Customizing Miniflux: Sorting by Signal
I have been using Miniflux as my feed reader for a couple of years now. As mentioned in a previous note, I have customized it to add custom sorting for articles. In the last note I added sorting by similarity. In this note, I add another method to it: sorting by signal.
001
Reposted by Abhinav 🧭
Functional Programming India @fpindia.bsky.social · 29/09/2026
What does #FunctionalProgramming and #Python have in common? A LOT apparently. Come join us for an offline joint #meetup between #FPIndia and #BangPypers, and find out more. All skill levels welcome! luma.com/vcsaybf3 #Haskell #Clojure #TypeScript #Rust #Elixir #FP
luma.com
FPIndia x BangPypers October Meetup · Luma
What does Python have to do with Functional Programming? A LOT as it turns out. Come join us at an offline meetup for all Functional Programming and Python…
033
Reposted by Abhinav 🧭
Hacker Memes @i0null.infosec.exchange.ap.brid.gy · 27/09/2026
Happy Expression (A very happy husky named prince, credits:  happydoggo)
vs 
Sad Expression (the very sad cat meme, credits: guangdang005)
vs
Regular Expression (code snippet of regular expressions used in the Perl module Mail::RFC822::Address)
21442
Abhinav 🧭 @abnv.me · 27/09/2026
The Bends #photography #silentsunday
Photo of empty curving mountain road, with blue skies with some white and black clouds behind, a small moon also visible.
052
Reposted by Abhinav 🧭
Abhinav 🧭 @abnv.me · 26/09/2026
Went for a #run after months. It was fun.
A photo of a field with trees around and blue sky with light clouds behind. Overlaid is the run information:

Distance 4.3km
Time 39 min
Avg Pace 9:04 min/km
031
Reposted by Abhinav 🧭
Abhinav 🧭 @abnv.me · 26/09/2026
Added a showcase of #fonts used on my website: abhinavsarkar.net/fonts #indieweb
abhinavsarkar.net
Font Showcase
Showcase of the fonts used on abhinavsarkar.net.
001
Reposted by Abhinav 🧭
Jörg Hofmann @jh67kir.mastodon.social.ap.brid.gy · 26/09/2026
#FotoVorschlag ‘Restlicht /Remaining Light‘ #photography #fotografie #sylt #reflection #nikon #habour #bluehour
Deutsch: Eine Hafenmole erstreckt sich bei tiefer blauer Dämmerung in stilles Wasser. Orangefarbene und gelbe Lichter auf dem Pier sowie ein grünes Navigationslicht auf der linken Seite werfen lange, leuchtende Spiegelungen auf die glatte Wasseroberfläche. Auf dem Pier sind eine kleine Hütte und ein einzelner kahler Baum zu sehen. English: A harbor mole extends into still water during deep blue twilight. Orange and yellow lights on the pier, along with a green navigation light on the left, cast long, glowing reflections onto the smooth water surface. A small hut and a single bare tree can be seen on the pier.
1225
Abhinav 🧭 @abnv.me · 26/09/2026
Added a showcase of #fonts used on my website: abhinavsarkar.net/fonts #indieweb
abhinavsarkar.net
Font Showcase
Showcase of the fonts used on abhinavsarkar.net.
001
Abhinav 🧭 @abnv.me · 26/09/2026
Went for a #run after months. It was fun.
A photo of a field with trees around and blue sky with light clouds behind. Overlaid is the run information:

Distance 4.3km
Time 39 min
Avg Pace 9:04 min/km
031
Reposted by Abhinav 🧭
tante @tante.tldr.nettime.org.ap.brid.gy · 25/09/2026
"These are – for actual human beings – very embarrassing things to admit. Why would techbros do that? Constantly." (Article title: The Test) tante.cc/2026/09/24/the-test
tante.cc
The Test
Jensen Huang, the NVIDIA CEO and wearer of the most midlife crisis looking leather jackets in the world, was on Ezra Klein’s podcast. Now I don’t really want you do go through all of what was being said in that recording/writeup. It’s painful. You feel your mental capabilities decaying with every minute of listening … […]
2625
Abhinav 🧭 @abnv.me · 24/09/2026
Bookmarked: [veitheller.de] A First Futamura Projection blog.veitheller.de/A_First_Futamura… See more links at abhinavsarkar.net/linkblog #linkblog #linkblogging
blog.veitheller.de
A First Futamura Projection
For years I used compfuck, my little Brainfuck-to-Carp compiler, to explain the shape of a Futamura projection, even though I knew it wasn’t quite…
001
Abhinav 🧭 @abnv.me · 24/09/2026
Bookmarked: [blainsmith.com] Humanities in the Machine blainsmith.com/essays/humanities-in… See more links at abhinavsarkar.net/linkblog #linkblog #linkblogging
blainsmith.com
Humanities in the Machine - Blain Smith
000
Abhinav 🧭 @abnv.me · 23/09/2026
Bookmarked: [chiark.greenend.org.uk/~sgtatham] Philosophy of coroutines web.archive.org/web/20260923/https:… See more links at abhinavsarkar.net/linkblog #linkblog #linkblogging
web.archive.org
Philosophy of coroutines
000
Abhinav 🧭 @abnv.me · 23/09/2026
Bookmarked: [austinhenley.com] Implementing cosine in C from scratch austinhenley.com/blog/cosine.html See more links at abhinavsarkar.net/linkblog #linkblog #linkblogging
austinhenley.com
Implementing cosine in C from scratch
How does the math library's trigonometric function work?
000
Abhinav 🧭 @abnv.me · 23/09/2026
Bookmarked: [v5.chriskrycho.com] The Essence of Successful Abstractions v5.chriskrycho.com/journal/essence-… See more links at abhinavsarkar.net/linkblog #linkblog #linkblogging
v5.chriskrycho.com
The Essence of Successful Abstractions — Sympolymathesy, by Chris Krycho
Complexity has to live somewhere; but it does not have to live everywhere.
000
Abhinav 🧭 @abnv.me · 22/09/2026
Bookmarked: [ro-che.info] Generic unification ro-che.info/articles/2017-06-17-gen… See more links at abhinavsarkar.net/linkblog #linkblog #linkblogging
ro-che.info
Generic unification
The unification-fd package by wren gayle romano is the de-facto standard way to do unification in Haskell. You’d use it if you need to implement type inference for your DSL, for example.
000
Abhinav 🧭 @abnv.me · 22/09/2026
Bookmarked: [gilmi.me] Giml's type inference engine web.archive.org/web/20260922/https:… See more links at abhinavsarkar.net/linkblog #linkblog #linkblogging
jrsinclair.com
How to write things people actually want to read
000
Abhinav 🧭 @abnv.me · 20/09/2026
Bookmarked: [haskellforall.com] Record type inference for dummies haskellforall.com/2026/06/record-ty… See more links at abhinavsarkar.net/linkblog #linkblog #linkblogging
jrsinclair.com
How to write things people actually want to read
010
Reposted by Abhinav 🧭
Abhinav 🧭 @abnv.me · 20/09/2026
I wrote a short note about what I absolutely require in my personal digital space: abhinavsarkar.net/notes/2026-person… #blogging #indieweb
abhinavsarkar.net
Non-negotiables in My Digital Personal Space
_I wrote this post for a prompt given during ourlocal Indieweb club meeting: “Write about non-negotiables in your personal space.”_ My MacBook Pro is my digital personal space on which I spend hours every day. Absence of some particular tools and capabilities is a deal breaker for me now, even if I switch to a different laptop or OS. First, I require a tiling window manager to use anything at all on my laptop. I don’t want to bother with moving windows around, fixing overlaps, changing their sizes etc. The window manager should do these for me and should be drivable by keyboard shortcuts. Currently I use Amethyst on macOS. Next, I want to configure my machine programmatically instead of going around tweaking hundreds of knobs. Not only is it cumbersome, but fairly non-reproducible too. Another reason I want this is to be able to easily move my configurations over time to newer machines I get. Currently I use nix-darwin and home-manager for this purpose. Since I write a lot of text (code and prose), a fast editor is indispensable for me. It has to be configurable too, because I like to adapt it to my liking. The editor for code should support popular programming languages and color schemes. Currently I use Zed and Bear. A fast editor must be accompanied by a fast terminal. Again, it needs to have good configurability, but I generally don’t require many external plugins. I mostly use default layouts, and do not require scriptability. Currently I use Ghostty. Dark mode support is must have for all applications I use. In 2026, if your app doesn’t support dark mode, I’ll drag it to the trash bin without batting a single eyelash. I spend a lot of time looking at code, so I like having nice looking and highly legible monospace fonts. My current favourites are Pragmata Pro, Fira Mono and Jetbrains Mono. As a programmer, I use CLI tools all the time. So I definitely value them enough to get to know them and make informed choices. I like my tools to be fast, feature-full, easy to learn, and composable with other tools. I list many of the tools I use in this post I wrote a few years ago: Software I use on my MacBook. * * * I may be forgetting a few more, but I think this covers the most important ones. If you have any questions or comments, please leave a comment below. If you liked this post, please share it. Thanks for reading!
002
Abhinav 🧭 @abnv.me · 20/09/2026
I wrote a short note about what I absolutely require in my personal digital space: abhinavsarkar.net/notes/2026-person… #blogging #indieweb
abhinavsarkar.net
Non-negotiables in My Digital Personal Space
_I wrote this post for a prompt given during ourlocal Indieweb club meeting: “Write about non-negotiables in your personal space.”_ My MacBook Pro is my digital personal space on which I spend hours every day. Absence of some particular tools and capabilities is a deal breaker for me now, even if I switch to a different laptop or OS. First, I require a tiling window manager to use anything at all on my laptop. I don’t want to bother with moving windows around, fixing overlaps, changing their sizes etc. The window manager should do these for me and should be drivable by keyboard shortcuts. Currently I use Amethyst on macOS. Next, I want to configure my machine programmatically instead of going around tweaking hundreds of knobs. Not only is it cumbersome, but fairly non-reproducible too. Another reason I want this is to be able to easily move my configurations over time to newer machines I get. Currently I use nix-darwin and home-manager for this purpose. Since I write a lot of text (code and prose), a fast editor is indispensable for me. It has to be configurable too, because I like to adapt it to my liking. The editor for code should support popular programming languages and color schemes. Currently I use Zed and Bear. A fast editor must be accompanied by a fast terminal. Again, it needs to have good configurability, but I generally don’t require many external plugins. I mostly use default layouts, and do not require scriptability. Currently I use Ghostty. Dark mode support is must have for all applications I use. In 2026, if your app doesn’t support dark mode, I’ll drag it to the trash bin without batting a single eyelash. I spend a lot of time looking at code, so I like having nice looking and highly legible monospace fonts. My current favourites are Pragmata Pro, Fira Mono and Jetbrains Mono. As a programmer, I use CLI tools all the time. So I definitely value them enough to get to know them and make informed choices. I like my tools to be fast, feature-full, easy to learn, and composable with other tools. I list many of the tools I use in this post I wrote a few years ago: Software I use on my MacBook. * * * I may be forgetting a few more, but I think this covers the most important ones. If you have any questions or comments, please leave a comment below. If you liked this post, please share it. Thanks for reading!
002
Reposted by Abhinav 🧭
Adrianna Tan @skinnylatte.hachyderm.io.ap.brid.gy · 18/09/2026
BritishSlaveTraders.org is a database of the individuals who built their fortunes on African suffering The database was compiled from years of work by historians at King’s College, Lancaster, Manchester and UCL britishslavetraders.org
britishslavetraders.org
The Register of British Slave-Traders
The Register of British Slave-traders compiles and presents information on all known slave-traders in Britain who invested in the trafficking of captive Africans from 1563 to 1807.
4544
Reposted by Abhinav 🧭
Glyph @glyph.im · 17/09/2026
RE: framapiaf.org/@davidrevoy/117281447… unironically, unashamedly do this. call your friends, ask them for help. and when they say “wait did you ask me just to replace your AI” say yes. say you’ll owe them one but you appreciate them so much more than AI. and show up for them […]
mastodon.social
Original post on mastodon.social
1237
Abhinav 🧭 @abnv.me · 17/09/2026
Bookmarked: [youtube.com] Type inference as constraint solving: how GHC’s type inference engine actually works www.youtube.com/watch?v=-TJGhGa04F8 See more links at abhinavsarkar.net/linkblog #linkblog #linkblogging
jrsinclair.com
How to write things people actually want to read
000
Abhinav 🧭 @abnv.me · 15/09/2026
Bookmarked: [ettolrach.com] Rust: When Empty Isn't Bottom ettolrach.com/blog/rust_when_empty_… See more links at abhinavsarkar.net/linkblog #linkblog #linkblogging
ettolrach.com
Rust: When Empty Isn't Bottom
Comments
000
Abhinav 🧭 @abnv.me · 14/09/2026
I wrote a note about some interesting and atypical features of my personal website: abhinavsarkar.net/notes/2026-things… #blog #indieweb
abhinavsarkar.net
Things You Might Not Know About This Website
Over the years, this website has accumulated many interesting and atypical features and pages. Most visitors either browse the homepage or land on individual posts from syndications and social media, and never click around enough to notice and experience all the intriguing things scattered around the website. So I decided to jot some of them down in this note1.
020
Reposted by Abhinav 🧭
Functional Programming India @fpindia.bsky.social · 13/09/2026
Another fantastic #FPIndia #Bangalore #meetup wrapped up! Coffee, food, and scintillating conversation about everything ranging from #Clojure and #Haskell, #AI and the #job market, to #music and #hobbies! Watch this space if you want to be a part of the next meetup! #FunctionalProgramming #events
045
Reposted by Abhinav 🧭
DougMerritt (log😅 = 💧log😄) @dougmerritt.mathstodon.xyz.ap.brid.gy · 12/09/2026
I haven't watched this yet, but it looks like an interesting analysis: > Why Do Companies Stop Using Haskell? | Vaibhav Sagar | ZuriHac 2026 > > OST – Ostschweizer Fachhochschule > 2,835 views Sep 11, 2026 #Haskell #ZuriHac #functionalprogramming > > Why do companies stop using Haskell, even […]
mathstodon.xyz
Original post on mathstodon.xyz
101
Reposted by Abhinav 🧭
Liam Proven @lproven.social.vivaldi.net.ap.brid.gy · 13/09/2026
Microsoft has forgotten how to implement a menu bar. blog.yuo.be/2026/09/10/the-terrible… It's not just the Linux folks. (Gtk4, from GNOME 40+, no longer supports menu bars at all.)
blog.yuo.be
The terrible menu bar in the Windows 11 Notepad – Reupen’s blog
Decades of consistency, lost in an update.
002
Reposted by Abhinav 🧭
廃墟猫 🐈🌈🐈‍⬛🐈🐈‍⬛🐈‍⬛ @haikyoneko.famichiki.jp.ap.brid.gy · 12/09/2026
Using mobelik artwork by @prahou to try and make me use my phone less.
A luminous green lock screen with a clock and eyesA olive green background on a crowded home screen with big red eyes
113
Abhinav 🧭 @abnv.me · 10/09/2026
Bookmarked: [epicandmonicisnotiso.blogspot.com] How to avoid correctness space leaks on a lazy setting in haskell epicandmonicisnotiso.blogspot.com/2… See more links at abhinavsarkar.net/linkblog #linkblog #linkblogging
epicandmonicisnotiso.blogspot.com
How to avoid correctness space leaks on a lazy setting in haskell
How to avoid space leaks on lazy setting How to avoid space leaks on lazy setting Table of Contents 1. A classification of...
000
Abhinav 🧭 @abnv.me · 10/09/2026
All my agents gone!
000
Abhinav 🧭 @abnv.me · 08/09/2026
RE: indieweb.social/@blr/11723543057363… A must read for all #Dosa lovers in #Bangalore #Bengaluru
indieweb.social
000
Reposted by Abhinav 🧭
Zach Weinersmith @zachweinersmith.bsky.social · 08/09/2026
For anyone not following the drama, there's been apparently a big development in ai math, along with some accusations of very bad behavior by OpenAI. But we don't have details yet. If I understand it, Buckmaster and Levent Alpoge made a big discovery on Navier-Stokes. Events go something like this:
17416158
Reposted by Abhinav 🧭
Abhinav 🧭 @abnv.me · 06/09/2026
Folks of #Indieweb Club #Bangalore have been writing lots of neat #blog posts every single day. Follow them collectively at @blr.
002
Abhinav 🧭 @abnv.me · 06/09/2026
Folks of #Indieweb Club #Bangalore have been writing lots of neat #blog posts every single day. Follow them collectively at @blr.
002
Reposted by Abhinav 🧭
jcrabapple @jcrabapple.dmv.community.ap.brid.gy · 04/09/2026
FeedEcho is live! It watches your RSS, Atom, or JSON feeds and posts new items to Mastodon, Bluesky, micro.blog, Matrix, Discord, email, or a webhook. You write the template and set the pace. Templates, keyword filters, content warnings, drip posting, email digests, alt text for images […]
dmv.community
Original post on dmv.community
014
Abhinav 🧭 @abnv.me · 05/09/2026
Bookmarked: [thunderseethe.dev] Making a Language thunderseethe.dev/series/making-a-l… See more links at abhinavsarkar.net/linkblog #linkblog #linkblogging
thunderseethe.dev
Making a Language
000
Reposted by Abhinav 🧭
Anupam 🇮🇳《ミ》λ≡ @haskman.functional.cafe.ap.brid.gy · 05/09/2026
Informal #FPIndia gathering next Sunday in #Bangalore. This is *very* limited space, and informal, so we don't have a predefined agenda. Come hang out, eat, drink, and have some chill conversations with fellow #FunctionalProgramming enthusiasts! luma.com/xpbc4v4q #Haskell #PureScript […]
functional.cafe
Original post on functional.cafe
002
Reposted by Abhinav 🧭
Glyph @glyph.im · 05/09/2026
I did not sign up to be a social worker for droud users or a voight-kampff administrator I just want to write computer programs with people who care about quality and craft and stuff github.com/twisted/twisted/pull/128…
306
Reposted by Abhinav 🧭
peterb @peterb.mathstodon.xyz.ap.brid.gy · 04/09/2026
As part of boot-strapping my NES emulator, I port my 6502 CPU emulator from #Haskell to #Lean. Some architectural changes – some encouraged by the language, and others simply from having a second bite at the apple – are made. Thumbnail painting: La Bohémienne Endormie (1897) by Henri Rousseau […]
mathstodon.xyz
Original post on mathstodon.xyz
012
Abhinav 🧭 @abnv.me · 04/09/2026
Bookmarked: [fabiensanglard.net] Floating Point Visually Explained fabiensanglard.net/floating_point_v… See more links at abhinavsarkar.net/linkblog #linkblog #linkblogging
fabiensanglard.net
Floating Point Visually Explained
000
Abhinav 🧭 @abnv.me · 04/09/2026
Bookmarked: [rossabaker.com] Better defaults for CSS rossabaker.com/configs/website/styl… See more links at abhinavsarkar.net/linkblog #linkblog #linkblogging
rossabaker.com
Better defaults for CSS
Default browser presentations have converged to mostly obsolete the venerable resets of yore. That does not mean they converged to an ideal place. Like my beloved Emacs, several defaults that are popular to change, but persist for backward compatibility. This layer is for fixing those. I want this layer to be unopinionated, but what’s unopinionated tends to be a matter of opinion. It should at least be fit for reuse as a low-priority layer on other projects. Download the complete `cromulent-better-defaults.css` layer. ## Logical properties # Logical properties and values are favored over the traditional physical properties. I write almost exclusively in left-to-right languages, but I’m a sucker for linguistics and fun abstractions. ## Border box sizing # `border-box` sizing includes the padding and margin of a box in its width and height, which substantially simplifies layout calculations. MIT *, *::before, *::after { box-sizing: border-box; } The simplified box sizing also simplifies the modal dialog dimensions, from which we no longer need to subtract 6 pixels for the border. MIT dialog:modal { max-inline-size: calc(100% - 2em); max-block-size: calc(100% - 2em); } ## Body height # We want the body to take 100% of the viewport to keep footers at the bottom or to vertically center, `vh` is common here. `vb` refers to the block axis rather than the height, and the `s` stands for small viewport. MIT body { min-block-size: 100svb; } ## Replaced elements # Replaced elements have “natural dimensions” that are “outside the scope of the CSS formatting model.” Those dimensions tend to flow better as block elements. `max-inline-size` doesn’t refer to `inline` display, which we just overrode, but is a logical property that constrains the width in horizontal writing mode and the height in vertical. `block-size` refers to the other dimension, which we want auto-scaled to maintain the replaced element’s aspect ratio when `max-inline-size` shrinks it. MIT audio, canvas, embed, iframe, img, input[type="image"], object, video, svg { display: block; max-inline-size: 100%; block-size: auto; } ## Indentation # Several elements default to a `margin-inline-start` in `px` for indentation. I prefer font-relative `ch`, or the width of the character `0`. MIT blockquote, figure, dd { margin-inline: 4ch; } Other elements use `padding-inline-start`. MIT menu, ol, ul { padding-inline: 4ch; } ## Text wrapping # Headers and header-likes are typically short. They look best when the lines are balanced to a similar length. MIT h1, h2, h3, h4, h5, h6, hgroup, summary, dt, th, caption { text-wrap: balance; } Longer-form elements can be improved with pretty wrapping. MIT p, li, dd, blockquote, figcaption { text-wrap: pretty; } ## Form fonts # Form elements’ fonts are often overridden by the user agent, and it’s fashionable to reset them to inherit from the parent element. I actually think it’s an ideal case for `system-ui`. MIT button, input, select, textarea { font-family: system-ui; font-size: inherit; } ## Specific elements # ### `<address>` # `<address>` is a useful semantic element, but there’s no reason to render it as italics. MIT address { font-style: normal; } ### `<hr>` # Default `<hr>` representations aren’t as diverse as they used to be, but they bring in a border style (`inset`) and color (`gray`) that don’t quite fit elsewhere. MIT hr { border: 0; border-block-start: 1px solid currentColor; } ### `<hgroup>` # `<hgroup>` is a relatively obscure element that allows “secondary content”, or subheadings. They will be smaller than the main heading, but maintaining the bold helps associate them with the primary heading. MIT hgroup p { font-weight: bold; } ### `<textarea>` # Allow the user to see more text, but gently protect them from dragging it into a horizontally scrolling hellscape. MIT textarea { resize: vertical; }
000
Abhinav 🧭 @abnv.me · 03/09/2026
With some #staticSiteGenerator and #javascript magic I now have full text search for my #linkblog abhinavsarkar.net/linkblog #indieweb
jrsinclair.com
How to write things people actually want to read
001
Reposted by Abhinav 🧭
Low Quality Facts @lowqualityfacts.mstdn.social.ap.brid.gy · 31/08/2026
Obviously.
The jellyfish got its name because its the only fish that enjoys eating jelly.
013
Reposted by Abhinav 🧭
Adrianna Tan @skinnylatte.hachyderm.io.ap.brid.gy · 29/08/2026
The degree of xenophobia towards south Asian people everywhere is disgusting. Regarding the missing people in Nepal’s recent floods, I’m seeing Chinese people in Singapore say that Indian Singaporeans are not really Singaporeans; and white Aussies saying Indian Aussies are not Aussies. I’m […]
hachyderm.io
Original post on hachyderm.io
031
Reposted by Abhinav 🧭
Glyph @glyph.im · 30/08/2026
the social contract that allows the web to exist at all is literally collapsing in real time people.kernel.org/monsieuricon/cree…
people.kernel.org
Creepy crawlies
Comments
654126
Abhinav 🧭 @abnv.me · 28/08/2026
RE: dmv.community/@jcrabapple/117173096… I've been using a self-hosted #Feedecho instance and it's been quite solid. @jcrabapple has been really responsive in addressing all the issues I've reported till now. #selfhosting
000
Reposted by Abhinav 🧭
jcrabapple @jcrabapple.dmv.community.ap.brid.gy · 28/08/2026
Since Robb Knight's Echofeed is shutting down soon, as you may have seen I built a similar open source RSS feed forwarder inspired by it. It's called Feedecho, as an homage to the original. github.com/jcrabapple/feedecho I am also going to pick up where Robb left off, and offer a paid […]
dmv.community
Original post on dmv.community
020
Reposted by Abhinav 🧭
Andrew Nesbitt @andrewnez.mastodon.social.ap.brid.gy · 28/08/2026
Now Hiring: Senior Open Source Maintainer nesbitt.io/2026/08/28/now-hiring-se…
nesbitt.io
Now Hiring: Senior Open Source Maintainer
**Location:** Lincoln, Nebraska, USA **Employment type:** Volunteer **Term:** Permanent **Compensation:** $0 **Reports to:** The community **Direct reports:** None **Start date:** Immediate We’re looking for a passionate, self-directed engineer to take full ownership of one of the most widely deployed libraries in the ecosystem. This is a rare opportunity to make a real impact on software that millions of developers depend on every single day. If you thrive on autonomy, love working in the open, and want to wear many hats in a fast-paced environment, we’d love to hear from you. **About the role** As Senior Open Source Maintainer you will be the primary technical owner and public face of the project. You’ll drive the roadmap, ship releases, support a global user base, and champion the project across the wider industry. This is a highly visible individual contributor role with enormous scope. No two days are the same, and you’ll have full autonomy to decide how you spend your time. **What you’ll do** * Own the technical roadmap and long-term architectural direction * Review and merge contributions from a diverse, global community of open source developers * Triage and prioritise the issue tracker and feature request backlog * Maintain comprehensive documentation, examples, migration guides, and API references * Ensure project websites and documentation meet current accessibility standards * Cut releases across all supported major version lines and write the release notes * Own the CI pipeline, release automation, and package publishing infrastructure * Keep dependencies current and promptly action automated update pull requests * Support users on GitHub, Discord, Slack, Stack Overflow, Mastodon, Bluesky, and email * Ensure compatibility across all current runtimes, operating systems, and architectures * Preserve backwards compatibility, including widely relied-upon undocumented behaviour * Coordinate release timing with downstream distributions, registries, and redistributors **You’ll also** * Participate in the on-call rotation for incidents at downstream production deployments * Support enterprise consumers where project issues block business-critical systems * Define and communicate support, deprecation, and end-of-life policies for all release lines * Provide migration guidance to adopters upgrading from end-of-life releases * Coordinate advisories, CVE records, disclosure timelines, and researcher credits * Ship embargoed CVE patches across all supported version lines within the disclosure window * Produce SBOMs, VEX statements, and signed provenance attestations for every release * Maintain reproducible builds and independently verifiable release artifacts * Complete supplier security assessments and questionnaires for enterprise consumers * Remediate findings from OpenSSF Scorecard, dependency scanners, and compliance platforms **As well as** * Review high volumes of contributions from AI coding agents and automated refactoring tools * Triage vulnerability reports generated by commercial AI security scanners * Champion the project at international conferences, on podcasts, and across social media * Moderate all community spaces and enforce the Code of Conduct * Engage constructively with feedback shared on social media and public forums * Represent the project in working groups, standards bodies, and regulatory consultations * Prepare grant applications and quarterly reports for current and prospective funders * Administer domains, trademarks, signing keys, cloud accounts, and social media * Advise enterprise legal teams on licensing, patent, warranty, and export control matters * Own the succession plan: identify, recruit, and onboard your replacement **How we’ll measure success** * GitHub stars * Time to first response on issues and pull requests * Release cadence and mean time to patch for disclosed vulnerabilities * Open issue and stale pull request backlog * Dependency freshness * OpenSSF Scorecard result and other automated project scoring * Community sentiment across public channels * Downstream adoption * Bus factor **What we’re looking for** * 8+ years of professional software engineering experience * Deep expertise in one systems language and professional proficiency in at least four others * Written communication pitched to audiences from first-time contributors to Fortune 500 CISOs * Consistent release cadence with minimal dependency churn and no breaking changes * Comfortable across engineering, support, security, community, marketing, finance, and legal * Balances contributors, enterprises, security researchers, regulators, and automated systems * Comfortable receiving direct public feedback and turning it into improvements * Availability overlapping core business hours in AMER, EMEA, and APAC * Able to respond to time-sensitive security matters outside normal working hours * Provides own hardware, reliable internet, and test environments for all supported platforms **Nice to have** * Prior experience in technical writing, developer relations, or community management * Experience migrating existing codebases to memory-safe languages * Working knowledge of licence compatibility and international trademark registration * Grant writing and nonprofit financial reporting experience * Media training * An established personal audience on at least one major social platform * Conversational proficiency in a second and third language * A second job **What we offer** * 100% remote, work from anywhere in the world * Complete flexibility over your working hours * High-impact work depended on by startups and Fortune 500 companies alike * Exceptional visibility and personal brand building opportunities * Regular speaking slots at leading industry events * The opportunity to develop close working relationships with several national CERTs * A passionate, highly engaged global user community * GitHub Sponsors enabled on the repository **How to apply** Please submit a CV, a link to your GitHub profile, and a short cover letter telling us what ownership means to you. Our interview process consists of a recruiter screen, a technical interview, a system design round, a take-home exercise, and a final community panel. If you don’t meet every requirement listed above, we’d still encourage you to apply. We are committed to building a diverse and inclusive community and welcome applicants from all backgrounds. This position will remain open until filled. Due to the volume of applications received, we are unable to respond to every candidate individually. _This role is not eligible for relocation assistance or visa sponsorship._
21347
Abhinav 🧭 @abnv.me · 27/08/2026
Bookmarked: [jrsinclair.com] How to write things people actually want to read jrsinclair.com/articles/2020/how-to… See more links at abhinavsarkar.net/linkblog #linkblog #linkblogging
jrsinclair.com
How to write things people actually want to read
Staring at a blank screen can be scary. And writing is hard work. Don’t let anyone tell you different. It takes extended periods of concentration to write anything significant. And that’s a rare commodity these days. And even if you manage to beat your attention into submission, the craft of writing is still complex. It can be tough to know where to start. What if my writing turns out to be boring? What if nobody reads it? What if people hate it? Or worse, they start reading and get so bored they quit? It doesn’t have to be this way. True, writing is never easy. And it will always require effort. But we don’t have to start from nothing. You can learn how to structure your writing so that readers enjoy reading it. You can build a piece of writing that draws people in and keeps them engaged until the end. It’s not hard to learn. You can make your writing more persuasive and powerful. All it takes is understanding a few simple concepts. Not that I’m an expert in writing or communication. But I _have_ spent a bunch of time researching how to improve my writing. What follows is an attempt to distil my thoughts into some semblance of order. ## It’s all about telling stories The key thing I’ve learned about communication is, it’s all about storytelling. Regardless of the medium or the genre. The more story-like you make it, the more engaging it will be. It doesn’t matter if you’re writing a screenplay or a scientific paper. Effective communication comes down to how well you can tell a story. Lisa Cron puts it this way: > We think in story. It’s hardwired in our brain. It’s how we make strategic sense of the otherwise overwhelming world around us. Simply put, the brain constantly seeks meaning from all the input thrown at it, yanks out what’s important for our survival on a need-to-know basis, and tells us a story about it, based on what it knows of our past experience with it, how we feel about it, and how it might affect us.1 1 Lisa Cron, 2012, _Wired for Story_ , Ten Speed Press, Berkeley, p. 8. ↩ Our brains are hard-wired for story. And the more story-like we make a piece of writing, the easier it is for our brains to process. That’s why it’s much easier to read fiction than non-fiction (for most of us, at least). Reading a biography is more engaging than reading the phone book.2 Our brains prefer to process information in story format. So if we want to write something engaging and persuasive, we have to make our writing more story-like. That is, we conform our writing to a story structure. But what is that? What makes a piece of writing more or less story-like? 2 Not that anyone has or uses phone books any more. And to be fair, there are some _boring_ biographies that might give the phone book some competition. ↩ ## The structure of a story All stories share a common structure. And lots of people have attempted to describe it. _Lots_ of people.3 The models vary wildly in complexity, but they all share common attributes. For our purposes, I’m going to describe three simple models that I find useful. They are: 3 One of the most famous models is the _Hero’s Journey_ , popularized by Joseph Campbell. ↩ 1. _Man in a hole_ ; 2. _Pain-dream-fix_ ; and 3. _The five commandments of story_. There are plenty of others. If you want to explore more, check out the footnotes and links at the end. ## The _Man in a Hole_ model One of the simplest ways to describe story structure is the _Man in a hole_ model described by Kurt Vonnegut. It’s useful because it’s so simple you can apply it almost anywhere. Mr Vonnegut describes it like so: > Somebody gets into trouble; gets out of it again. People love that story! They _never_ get sick of it.4 4 Kurt Vonnegut on the Shapes of Stories ↩ Drawn as a chart it looks like so: In this chart, the vertical axis represents good fortune versus ill-fortune. And the horizontal axis represents time. Things start okay—a little above neutral. Then something bad happens. And by the end of the story, the situation is somehow resolved. The key thing to remember is: “somebody gets into trouble”. There has to be a problem to solve. Something has to go wrong. It’s not a story if there’s no conflict of any kind. That’s why phone books and family slide shows are so boring. Nobody gets into trouble. Nothing bad happens. If there’s no tension, there’s no story. So, any piece of writing we create must include some kind of _hole_. At first, that may seem a little extreme. _Any_ thing we write? Really? What if we’re just stating facts? Surely this story structure stuff doesn’t apply then. A scientific paper isn’t meant to be riveting entertainment. It’s supposed to be an accurate, reproducible account of how an experiment was conducted. It’s supposed to give an unbiased account of the results. Perhaps there might be a little speculation at the end. But there’s no drama. No conflict. No hole. It’s just a factual account. Except there is a hole. The hole is what motivates the scientific paper in the first place. The hole is the reason the paper exists. The hole is a gap in our knowledge. A mystery. It creates just enough tension to draw you in. A well written scientific paper can be as engaging as any piece of narrative journalism. There’s no reason why a scientific paper can’t be an entertaining _and_ accurate account of an experiment. But most academics aren’t well rewarded for making their papers engaging. So they don’t. However, the point is, the tension in a story structure doesn’t have to come from a great and terrible evil. It doesn’t even have to be a physical threat or relational tension. It can be as simple as ‘we don’t know something.’ It can be a petty annoyance. ’ It can be a tiny gap in the scientific literature. It can be something people find difficult. For example: ‘Writing is hard. The size of the hole isn’t important. All that matters is that the readers _feel_ the tension of it. The more vivid the hole, then the more engaging our writing will be. This is the most fundamental model of story. All the other models (even the ones Mr Vonnegut describes) are all variations on this theme. It doesn’t matter how complicated they are. So if you’re ever stuck or overwhelmed, come back to the _Man in a Hole_ model. Someone falls into a hole. They get out of the hole. That’s it. There are definite merits to some of the other models though. They can help provide a structure that will maintain a readers interest over a long period. And they can help us to target our writing for a specific purpose. ## The _Pain, Dream, Fix_ model What if you’re trying to persuade people of something? Perhaps you want them to take action; join a march; sign up for your free trial; volunteer for your event; buy your book. Calling people to action is tough. People don’t want to change or expend energy if they can help it. And we’ve all seen persuasion done badly. Nobody wants to be a sleazy salesperson. Can a story structure help here? Well, yes. Story-telling is a powerful persuasive technique. But, the key lies in making our reader (the person we want to persuade) the hero. This is powerful because we can’t resist putting ourselves into the story anyway. In narrative stories, we can’t help but identify with the protagonist. But it works for non-fiction prose too. When a story is about us, it’s difficult to resist. A good way to structure this kind of writing is using the _Pain–Dream–Fix_ model.5 It’s often used to create sales pages and landing pages for websites. But we can apply this structure to almost any piece of persuasive writing. It doesn’t have to be in-your-face and cheesy. You can make it as subtle and sophisticated as you like. 5 The Pain-Dream-Fix model/formula was coined by Amy Hoy and Alex Hillman as part of their 30x500 course. ↩ It looks something like this: 1. **Pain:** This is the most important part. The idea is to focus on some pain (ie. a _hole_) that we know our target audience experiences. The more precise and vivid our description of the pain, then the more we will hook the reader. This is important because it’s what makes our reader the hero. The more that pain resonates with their experience, the more they see themselves in the story. And the more they will respect you as the author. We want them to think “Yes! This person gets it. That is _so_ frustrating. That’s exactly how it is.” In a way, you’re showing that you care enough about the reader to understand their experience. 2. **Dream:** Once we’ve shown that we understand the reader’s pain, we describe the dream. That is, we describe a world where this pain is no longer present. Once again, we’re building empathy by showing that we _get_ the reader. We understand the motivations and desires _behind_ the pain. It doesn’t have to be over-the-top or corny. We don’t have to start with ‘Imagine if all this was a thing of the past!’ (Though, if that works…). And we don’t mention anything to do with our proposed solution yet. All we want to do is show that we understand the _why._ 3. **Fix (and call-to-action):** Finally, we introduce our solution to the problem. If it’s a sales pitch, then this is where we introduce our product. If we’re trying to convince people of an idea, then this is where we detail what the idea is. If we’re trying to get people to join our cause, this is where we explain how they can help. And it’s common to end it all with some kind of call-to-action. We want people to _do_ something as a result of reading what we’ve written. Note, these three parts don’t always take up equal amounts of space. We can adjust the relative weights to suit the context. It might be that our solution/idea/product is complicated. It may take a lot of words to describe it. So the _fix_ section may be much longer than the _pain_ and _dream_. And that’s okay. But the key thing to remember is that the vivid _pain_ and _dream_ are what motivates the reader. Without them, there’s a good chance they won’t care about whatever it is we’re trying to explain. Someone might be thinking though: “What if I don’t know what pain my readers experience? What if I’m just trying to give them some information?” To which I would respond: If we don’t know how this helps our readers, why are we writing at all? If what we’re writing doesn’t solve a problem, why should anyone read it? Again, the pain may be tiny. But the size of the pain isn’t what’s important. It’s how vividly we describe it. Once you learn this structure, you’ll start to see it all over the place. It’s particularly noticeable in infomercials. They’ll show someone painfully doing things the old, busted way, looking frustrated. Then they’ll describe a dream world where all that frustration is a thing of the past. And finally, they’ll introduce their product. You can be a hero for three easy payments of…. Informercials work and part of the reason is this structure. If you need to persuade people of something, then I recommend the _pain-dream-fix_ model. ## The _Five Commandments of Storytelling_ model Sometimes we need more subtlety or flexibility to tell our story. We might be writing something lengthy and complex. Or we might want to be a little more subtle than _pain-dream-fix_ allows. In those cases, we can use a more general story structure. One that will work for almost any piece of writing. It’s called the _Five Commandments of Storytelling_.6 The outline looks something like this: 6 _The Five Commandments of Storytelling_ were developed by Shawn Coyne and popularised in his book The Story Grid. ↩ 1. Inciting Incident 2. Progressive complication(s) 3. Crisis 4. Climax 5. Resolution Though its original intent is to help authors write novels, we can adapt it for non-fiction prose. I’ll go through each step in turn and attempt to describe how they work for something like a blog post or essay. Note that this model is much more complex than the other two. That’s partly because it’s so flexible. And partly because its original design is for creating novels. If you’re finding it too much, don’t worry. _Man in a hole_ will work just fine for most circumstances. Let’s take a look at each commandment in turn. 1. **Inciting Incident:** This is the thing that kicks off our story. Something that knocks the world off-balance. In a novel, this forces the protagonist to do something to get their world back in order. For _Star Wars_ that might be Princess Leia jettisoning two droids to the surface of Tatooine. Or when Gandalf shows up at Bilbo’s door in _The Hobbit_. For a non-fiction piece, it’s where we introduce a problem (ie. a _hole_). It might not be _the_ problem your piece is about (if you’re being clever). But usually, it is. There has to be something that hooks the reader in. We want them thinking: “I wonder how they’re going to get out of that hole.” 2. **Progressive complication(s):** In a novel, progressive complications have a specific role. They keep the protagonist from getting out of a hole too easily. If the problem is solved too easily, then it makes for a boring story. In _The Lord of the Rings_ , for example, the hobbits make it to Bree but Gandalf is not there. In _The Empire Strikes Back_ the crew on the _Millennium Falcon_ escape to Cloud City. Only to find Darth Vader already there. In a progressive complication, the protagonist _almost_ solves the problem. But they never quite make it. And things go from bad to worse. In non-fiction writing, we do this by proposing a possible way out of the _hole_ , then pointing out its flaws. And we can keep doing this as long as we like. Sometimes the flaw may even become a new _hole_. But as each flaw is dealt with, it adds strength to whatever we’re trying to say. So the more plausible and reasonable the flaws or counter-arguments, the better. 3. **Crisis:** At some point, we need to drive home the point we’re trying to make. We do this by creating a crisis moment. In a novel, this is where the protagonist faces their ultimate dilemma. For example, in _The Return of the Jedi_ , Luke faces Emperor Palpatine. And he has to choose: Embrace the dark side and save his friends, or remain a Jedi and face certain death. With non-fiction, we need to present the reader with a kind of ultimatum. Either they accept this big idea (our proposed solution), or they reject it. Often, this is done by presenting the best possible argument against our idea. We build up a seemingly watertight case against ourselves. Or we ask ‘So what? Why should anyone care about this?’ Either way, it creates a question in the reader’s mind: “This all seems so plausible. How can they still hold their position?” And the readers are desperate to know the answer. 4. **Climax:** In a novel, once the protagonist has reached the crisis point, the climax tells us how they respond. It is the moment of truth. Now we get to find out what stuff our protagonist is made of. In _Return of the Jedi_ , Luke shuts down his light sabre and declares himself a Jedi. In _The Lord of the Rings_ , Sam Gamgee picks up Frodo and carries him into Mount Doom. For non-fiction, this is where we deliver the killer blow (or blows) to any remaining objections. We show that the merits of what we’re suggesting outweigh the disadvantages. Our core idea emerges triumphant. 5. **Resolution:** After the emotional high of the climax, we can’t end the story right then. We need to let our reader down gently. Otherwise, it’s too sudden and feels unfinished. In non-fiction writing, it’s common for writers to finish by summarizing what’s come before. It’s the most common way to finish, and also the most boring. Our readers already know what we wrote because they just read it. We want to do something more interesting. One way to build a satisfying resolution is to _hint_ at what they might be able to do with the power of this idea. Like Neo at the end of _The Matrix_. We don’t want to spell it out for the reader. That would be boring. We want to stimulate their imagination. Or we can steal from superhero movies and end with a setup for the sequel. We can hint at _another_ adjacent problem (or _hole_). Again, we don’t want to spell it out. We just want to tease the reader that there’s more to come. Done well, we leave the reader feeling that our journey has come to a satisfying conclusion. And we stimulate their imagination, leaving them wanting more. With _The five commandments_ model, we take our reader on a journey. We start with an inciting incident, a motivating problem to draw the reader in. But with this model, our idea (the eventual solution) is the hero. Eventually, we want the reader to be cheering for our idea. (At least metaphorically, if not literally). The hero faces progressively more daunting challenges until the crisis. And then in the climax, they triumph. And the reader is left saying “Yes! I knew it! I _knew_ this idea was the best. Those counter-arguments were strong, but we won!” As mentioned above, the _five commandments_ model has a lot more depth than the other two. It’s most useful when you have a longer piece and need to maintain a reader’s interest the whole time. And, there’s a whole lot more nuance to it we don’t have time to explore here. If it feels like too much, leave it. ## But this is hard… These models are really helpful. But they’re also a lot of work. Coming up with a creative _crisis_ , _climax_ and _resolution_ is hard. It takes a lot of time and effort. And the _pain-dream-fix_ model isn’t any easier. It’s hard work trying to understand the pains and frustrations of our readers. And it’s even more work to dig under those pain points to uncover their motivations and dreams. Even _Man in a Hole_ can seem like work when you’re in a hurry. All this story-structure stuff seems like it makes the job of writing harder, not easier. It’s not like we have heaps of time and energy to spare either. We have deadlines and jobs and families and commitments. Our attention spans are decaying. Who has time for all this? And does it make that much of a difference anyway? Why bother? I think about it like this: Communicating an idea takes hard work. Our brains are hard-wired for story. So to convey an idea of any complexity, it must be converted to a story format. There is a fixed cost that _someone_ has to pay. There are only two options: 1. Either the writer does the work of converting the idea into a story, as they write; or 2. The _reader’s brain_ does the story-conversion work, as they read. Except, most people won’t do the work. Their brain will tell them “this is hard”, and they’ll stop reading. The toll must be paid. And I don’t want to force that burden on my readers. It’s inconsiderate. And think about it: If I do the work of making my writing more digestible once, every reader benefits. But if I avoid that work, every reader pays. If I have any more than a few readers, it’s much cheaper overall if I pay that cost. So, I think this story stuff is worth the effort. And it doesn’t have to be torturous. You can choose your difficulty setting. If you’re in a hurry or writing something short, stick with _Man in a Hole_. But if you’ve got something more complex that you want people to understand, try one of the other two models. ## Further reading ### Articles * Your Brain on Story: Why Narratives Win Our Hearts and Minds * How Stories Change the Brain * This Is Your Brain On Storytelling: The Chemistry Of Modern Communication * Once upon a time… how stories change hearts – and brains * How I increased conversion 2.4x with better copywriting * The Five Commandments of Storytelling ### Books * Wired for Story * The Story Grid: What Good Editors Know * On Writing Well * Style: Ten Lessons in Clarity and Grace ### Podcasts * Stacking the Bricks Podcast * The Story Grid Podcast
000