Skip to content
View donatj's full-sized avatar
☕
Getting back to business
☕
Getting back to business

Sponsors

@passbolt

Sponsoring

@composer
@Homebrew
@fyne-io

Organizations

@capdig @CorpusPHP @QuorumCollection @SophistryEng @NoteOf @thank-you-php @ShieldedDotDev @RenaissancePlace

Block or report donatj

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
donatj/README.md

Hello!

I am a PHP, Go and TypeScript developer based in Minneapolis.

I work across the entire stack, but I’m happiest in the backend. Moving data, pushing bytes around, making things fast.

I ❤️ tiny reusable parts with single responsibilities and no side effects. I keep code simple, clear, and easy for anyone to read.

I’ve spent fifteen years in EdTech keeping old systems running and new ones from catching fire. Before that I built industrial and B2B tools where things had to work because people depended on them.

What I've been up to recently

I’ve been pushing forward on picopass, a TinyGo experiment that turns a Raspberry Pi Pico 2 W into a small physical keyboard for typing the current time, a stored password, or a freshly generated TOTP code. I’ve been refining the button handling, including a quick repeat press that sends Return, while keeping it squarely aimed at disposable test credentials and hands-on exploration of Wi-Fi, NTP, USB serial, and HID input.

I also released an update to mpo that adds MPO writing alongside its existing stereoscopic-photo decoding and conversion tools. That means the Go library and command-line tools can now build Multi Picture Object files from multiple images as well as unpack them, making the project more useful for working both directions with old 3D-photo formats.

Lately I’ve been enjoying projects that connect a small, focused bit of code to something tangible: a button that types at the right moment, or a utility that gives an older image format a practical new workflow. I’m trying to keep those tools simple enough to inspect, reuse, and understand without a lot of ceremony.

What I have been thinking about

I’ve been thinking about reviewability as a real design constraint: tools and languages that make changes easy to read can matter as much as making them easy to write. Even as AI makes large refactors cheaper, I still want the resulting systems—and the decisions behind them—to be understandable by the people responsible for maintaining them.

Last update: 2026-10-08

Pinned Loading

  1. maennchen/ZipStream-PHP maennchen/ZipStream-PHP Public

    💾 PHP ZIP Streaming Library

    PHP 1.9k 112

  2. force-color.org force-color.org Public

    Website data for force-color.org

    SCSS 27 15

  3. PhpUserAgent PhpUserAgent Public

    Lightning Fast, Minimalist PHP User Agent String Parser.

    PHP 598 127

  4. mock-webserver mock-webserver Public

    Simple mock web server in pure PHP for testing.

    PHP 141 22

  5. CsvToMarkdownTable CsvToMarkdownTable Public

    Simple CSV to Markdown Table Converter

    TypeScript 302 47

  6. Circle-Generator Circle-Generator Public

    Tool to generate circles for block building games like Minecraft

    TypeScript 132 41