What I do
By day I write line-of-business software: order management, invoicing, stock control, sales tooling, and the integrations that hold an ERP together. Most of that is F# and .NET, which I have used since well before it was fashionable, and I still think it is the most productive way to build a system you intend to keep.
On the web I reach for the SAFE Stack when the whole thing should be F#, and for TypeScript with Astro or Next.js when it should not. On mobile I use Flutter. I am comfortable wherever the data lives, from SQL Server and Postgres to Supabase, and I would rather read the schema than the ORM.
What I work withtype Skills =
- Languages
- F# · C# · TypeScript · Dart · SQL · Python
- Frameworks
- .NET · SAFE Stack · Fable · Flutter · Astro · Next.js · React
- Data
- SQL Server · PostgreSQL · Supabase · Sage Evolution
- Ships with
- Git · GitHub Actions · Vercel · cPanel · Android
{ Languages : "F#" | "C#" | "TypeScript" | "Dart" | "SQL" | "Python" Frameworks: ".NET" | "SAFE Stack" | "Fable" | "Flutter" | "Astro" | "Next.js" | "React" Data : "SQL Server" | "PostgreSQL" | "Supabase" | "Sage Evolution" Tooling : "Git" | "GitHub Actions" | "Vercel" | "cPanel" | "Android"}What I build in my own time
Most of my side projects exist because a community I belong to needed something and nobody was going to build it for them.
- For the New Apostolic Church Southern Africa:NACMIRS, where music leaders plan hymns and service programmes, a pitch-training tool for choirs, a tuner and pitch pipe, and theVirtual Accompanist, which plays organ accompaniments for congregations that have no organist.
- For Helderberg Harriers, my running club: the public website, and the members app for renewals, results and events, which became run-club.online.
- For field-service teams: StockPro, stock control and signed job reports for HVAC technicians.
- For my family: Kiekie, one candid photo a day from everyone, wherever in the world they are.
- For myself: F# libraries, Advent of Code every December, and a small pile of tools that solve one annoying problem each.
How I like to work
Write the decision down next to the code. Prefer the boring option unless the exciting one is measurably better. Assume the next person to maintain the thing has no context and no time, because that person is usually me, a year later.
Elsewhere
The best way to reach me is email at hello@hinrichsen.me. Code lives on GitHub.
