Edd Mann
@eddmann.com
๐ค 46
๐ฅ 44
๐ 165
Developer
https://eddmann.com/
Podcast
https://compiledconversations.com/
pinned post!
i built a game boy emulator in
#php
over the weekend - mostly from my phone, with the help of
#claudeโs
remote agents. ๐คฏ hereโs how it went ๐
23 days ago
2
2
0
every year i over-engineer our family's secret santa allocation. this year: retro arcade games built with phaser.js ๐ฎ because why just draw names when you can earn them through mini-games? ๐ play it:
eddmann.com/secret-santa...
๐ป code:
github.com/eddmann/secr...
thread ๐
5 days ago
1
0
0
signed, sealed, notarized ๐ spent the last half hour learning how to get my recent macOS apps properly code-signed and notarized via github action: -
github.com/eddmann/Clip...
-
github.com/eddmann/Voic...
-
github.com/eddmann/Caff...
-
github.com/eddmann/Clau...
8 days ago
0
0
0
cloudflare's bot detection went down last week - their ml feature config exceeded a hard limit of 200 features. if you're curious what ml features actually are, we dive into it all in our latest podcast ๐๏ธ
compiledconversations.com/14/
compiledconversations.com/15/
8 days ago
0
1
0
been listening to the @karpathy episode on dwarkesh podcast, highly recommend it after the richard sutton one from september. really interesting back-to-back ๐ง
www.dwarkesh.com/p/andrej-kar...
thread ๐
8 days ago
1
0
0
smooth animations ๐...
add a skeleton here at some point
8 days ago
0
0
0
my wife wanted a simple 4-8 breathing app for her apple watch. the built-in one doesn't let you customise inhale/exhale timing. so ofc i spent my lunch break building one from scratch ๐ ๐ โฑ๏ธ
github.com/eddmann/Ovlo
9 days ago
1
0
1
with the recent opus 4.5 release, claude now tracks sonnet-only usage instead of opus. just published a new release of claudemeter to reflect that. also added a hover tooltip that shows the exact reset timestamp in your local timezone.
github.com/eddmann/Clau...
9 days ago
0
1
0
Ep. 15: Machine Learning Fundamentals, Part 2 w/ Shannon Wirtz we dive deeper into the architectures, training techniques, and evaluation methods behind modern
#ml
๐ ๐ง
compiledconversations.com/15/
13 days ago
1
0
0
today i built: claudemeter - a macOS menu bar app that tracks my claude usage in real-time. got tired of checking the cli, wanted something i could glance at. plus notifications when i hit thresholds ๐ฏ
github.com/eddmann/Clau...
16 days ago
1
2
0
having a lot of fun with swiftui atm. swiftโs trailing closures make it feel like youโre describing your ui, not assembling it. the language almost turns into a tiny ui-dsl ๐. pair that with live previews and ๐
16 days ago
0
3
0
the real issue with building a game boy emulator is getting distracted by the games youโre supposed to be _testing_โฆ
18 days ago
0
0
0
@nick-tune.me
hey nick! big fan of your ddd work and the recent ai + living documentation posts. ๐ really brilliant stuff. i host
compiledconversations.com
and would love to have you on to chat about where you see ddd and ai heading. would you at all be interested?
19 days ago
1
2
0
built a little menu-tray app over lunch so i donโt have to keep checking
#claude
usage from the cli. the people need more tray icons anyway ๐
19 days ago
0
0
0
been finding this /commit command in
#claude
super useful lately. when youโre working inside an agent workflow, youโve almost always got the _why_ to hand. it creates invaluable future context for both humans and agents.๐
19 days ago
1
1
0
phpboy is now officially a gbc with full colour support ๐จ ๐ thread ๐
github.com/eddmann/phpboy
20 days ago
1
1
0
Ep. 14: Machine Learning Fundamentals, Part 1 w/ Shannon Wirtz what *actually* is machine learning, and how does it differ from traditional programming? we break it all down. ๐ ๐ง
compiledconversations.com/14/
21 days ago
1
1
0
built a tiny cli tool called turbo-png - a small, focused utility to compress and optimise pngs from the terminal. thread ๐
github.com/eddmann/turb...
21 days ago
1
0
0
phpboy now makes game boy sounds ๐ฎ apu support added - host only (no docker at this time) + sox needed since ffplay canโt handle the buffering.
github.com/eddmann/phpboy
loading . . .
GitHub - eddmann/phpboy: Game Boy Color emulator written in PHP 8.4 with full DMG backward compatibility, high accuracy (100% Blargg pass rate), and multiple frontends (CLI terminal, WebAssembly brows...
Game Boy Color emulator written in PHP 8.4 with full DMG backward compatibility, high accuracy (100% Blargg pass rate), and multiple frontends (CLI terminal, WebAssembly browser, SDL2 desktop) - ed...
https://github.com/eddmann/phpboy
22 days ago
0
0
0
i built a voice transcription app for macOS that runs 100% locally on your mac - no cloud, no api calls, complete privacy. ๐๏ธ here's how it came together ๐
22 days ago
1
1
0
i built a game boy emulator in
#php
over the weekend - mostly from my phone, with the help of
#claudeโs
remote agents. ๐คฏ hereโs how it went ๐
23 days ago
2
2
0
today i built: obsidian-mcp moved from obsidian sync to git vault specifically for remote lambda deployment claude/chatGPT can now read/edit/search my notes from anywhere automatic git commits = full audit trail typescript + git + lambda
github.com/eddmann/obsidian-mcp
#todayibuilt
#obsidian
loading . . .
GitHub - eddmann/obsidian-mcp: MCP server for git-backed Obsidian vaults. Access and manage notes through Claude, ChatGPT, and other LLMs with automatic git sync. Supports local (stdio/HTTP) and remote (AWS Lambda) deployment.
MCP server for git-backed Obsidian vaults. Access and manage notes through Claude, ChatGPT, and other LLMs with automatic git sync. Supports local (stdio/HTTP) and remote (AWS Lambda) deployment. -...
https://github.com/eddmann/obsidian-mcp
26 days ago
0
0
0
today i built: whatsapp-mcp credit to @LukeHarries_ for the initial version ๐ explored go for mcp: - unified multidevice API + server - revised tool api - fts5 search, fuzzy matching - docker go + sqlite + whatsapp = ๐
github.com/eddmann/whatsapp-mcp
#todayibuilt
#golang
loading . . .
GitHub - eddmann/whatsapp-mcp: MCP server enabling LLMs to interact with WhatsApp - send messages with fuzzy name matching, full-text search across conversations, manage chats and contacts, and download media
MCP server enabling LLMs to interact with WhatsApp - send messages with fuzzy name matching, full-text search across conversations, manage chats and contacts, and download media - eddmann/whatsapp-mcp
https://github.com/eddmann/whatsapp-mcp
26 days ago
0
1
0
today i built: strava-mcp wanted to chat with my workouts instead of staring at dashboards "am i overtraining?" answer... "how's my mileage?" insights... wrote about it:
eddmann.com/posts/running-mcps-everywhere-chatting-with-my-workouts
github.com/eddmann/strava-mcp
#todayibuilt
#running
#mcp
loading . . .
GitHub - eddmann/strava-mcp: MCP server enabling LLMs to interact with the Strava API - activities, segments, routes, and training analysis
MCP server enabling LLMs to interact with the Strava API - activities, segments, routes, and training analysis - eddmann/strava-mcp
https://eddmann.com/posts/running-mcps-everywhere-chatting-with-my-workouts
27 days ago
1
3
1
The BEAM is more than a runtime - itโs
#Erlangโs
real superpower.
@shawnmc.cool
explains how the BEAM isnโt just a VM, but an operating system for concurrency. Every process runs in complete isolation, enabling massive fault tolerance and reliability. ๐ง
compiledconversations.com/12/%EF%BF%BC
loading . . .
28 days ago
0
0
0
Concurrency without the chaos. โก๏ธ
@shawnmc.cool
unpacks the power of OTP -
#Erlangโs
โstandard library for concurrency.โ Learn how it turns thousands of lightweight processes into reliable, self-healing systems that just work. ๐ง Listen now:
compiledconversations.com/12/%EF%BF%BC
loading . . .
29 days ago
0
0
0
Failure isnโt the enemy - itโs part of the design. โ๏ธ In a recent episode of Compiled Conversations,
@shawnmc.cool
broke down Erlangโs โlet it crashโ philosophy - why letting things fail can actually make your systems more reliable, not less. ๐ง Listen now:
compiledconversations.com/12/
loading . . .
about 1 month ago
0
0
0
Ep. 13: Building on the BEAM, Part 2 w/
@shawnmc.cool
We continue our chat with exploration of
#Elixir's
ecosystem: - Phoenix LiveView & real-time apps - Ecto's composable queries - Nerves for IoT & embedded systems - Nx, LiveBook & Tidewave ๐ง
compiledconversations.com/13/
loading . . .
Building on the BEAM: Exploring Erlang and Elixir, Part 2 with Shawn McCool - Compiled Conversations
We continue our conversation with Shawn McCool, exploring the Elixir ecosystem including Phoenix's LiveView, Ecto's composable queries, Nerves for IoT, and LiveBook. We discuss when to use built-inโฆ
https://compiledconversations.com/13/
about 1 month ago
0
3
1
@simonwillison.net
Iโm curious about the thread connecting Django, Lanyrd, Datasette, and your LLM work. 20+ years of building tools + documenting it all. How has your thinking evolved? Whatโs carried through? Would you be up for discussing this?
compiledconversations.com
about 1 month ago
0
0
0
reposted by
Edd Mann
Shawn McCool
about 1 month ago
I was recently on a podcast discussing Erlang / Elixir and the significant advantages that its runtime environment can bring over the industry status quo. I worked to specifically providing insight for my PHP / Java / C# experienced friends.
bsky.app/profile/eddm...
add a skeleton here at some point
1
3
1
Ep. 12: Building on the BEAM, Part 1 w/
@shawnmc.cool
Why do
#Erlang
&
#Elixir
excel at distributed systems? We explore: โข Process isolation & concurrency โข Actor model & message passing โข "Let it crash" philosophy โข Hot code upgrades ๐ง
compiledconversations.com/12/
about 1 month ago
0
1
2
Ep. 11: The Life of a PostgreSQL Table, Part 2 w/ Bruce Momjian Continuing our deep dive into a table's lifecycle in
#Postgres
, from updates to table clean-up. We cover - MVCC & transaction isolation - Table alterations & performance - Vacuuming & WAL ๐ง
compiledconversations.com/11/
loading . . .
The Life of a PostgreSQL Table, Part 2 with Bruce Momjian - Compiled Conversations
Bruce Momjian returns to complete our journey through a PostgreSQL table's lifecycle. We explore how Postgres handles updates, table alterations, row deletions, and table drops - diving deep intoโฆ
https://compiledconversations.com/11/
about 2 months ago
0
0
0
Been using
#macOS
`caffeinate` a lot lately, so I built a tiny
#Swift
menu bar app around it. CaffeineMate keeps your Mac awake with one click - set timers (15m, 1h, 3h, custom), keep the display on, and toggle it all with a global shortcut. โ
eddmann.com/CaffeineMate/
loading . . .
CaffeineMate - Keep Your Mac Awake
Free macOS menu bar app that prevents your Mac from sleeping. One-click control, duration timers, and keyboard shortcuts. Native & lightweight.
https://eddmann.com/CaffeineMate/
about 2 months ago
1
1
0
Context is everything when working with LLMs. In episode 7 of Compiled Conversations,
@ashleyhindle.com
explains why managing context windows is critical to getting quality, reliable output. ๐ง Listen now:
compiledconversations.com/7/
๐ Subscribe on Apple Podcasts or Spotify.
loading . . .
about 2 months ago
0
0
0
Zero-shot, one-shot, few-shot - what do they really mean when prompting large language models? In episode 7 of Compiled Conversations,
@ashleyhindle.com
breaks down each one. ๐ง Listen now:
compiledconversations.com/7/
๐ Donโt miss future episodes - subscribe on Apple Podcasts or Spotify.
loading . . .
about 2 months ago
0
0
0
LLM agents get talked about a lot - but what are they, really? In Episode 7 of Compiled Conversations,
@ashleyhindle.com
strips away the hype and explains how agents are, at their core, just a simple loop. ๐ง Listen now:
compiledconversations.com/7/
๐ Subscribe on Apple Podcasts or Spotify
loading . . .
2 months ago
0
0
0
In Functional Programming, functions aren't just helpers - they are the building blocks. In the latest episode,
@scottwlaschin.bsky.social
breaks down how FP uses functions to compose behaviour, control flow, and model systems in a different way from OOP. ๐ง
compiledconversations.com/9/
loading . . .
2 months ago
0
0
0
Exploring
#MCP
and
@laravel.com
MCP by building a
@plex.tv
integration ๐ฌ AI assistants now understand where I am in a film through subtitle analysis. 'What have I missed?' gets context-aware answers without spoilers. Write up:
eddmann.com/posts/contex...
Repo:
github.com/eddmann/plex...
2 months ago
0
0
0
Laravel Boost makes AI-assisted development faster and more reliable. โก
@ashleyhindle.com
explains how it provides tested guidelines, its own MCP server, and version-specific docs for Laravel projects. ๐ง Listen now:
compiledconversations.com/7/
๐ Subscribe on Apple Podcasts or Spotify for more.
loading . . .
2 months ago
0
1
0
Ep. 10: The Life of a PostgreSQL Table, Part 1 w/ Bruce Momjian What really happens when you create, insert, or query in
#Postgres
? We dig into: - Storage internals (pages, TOAST) - MVCC & WAL - Index types & use cases - Query planning & joins ๐ง
compiledconversations.com/10/
loading . . .
The Life of a PostgreSQL Table, Part 1 with Bruce Momjian - Compiled Conversations
Bruce Momjian takes us on a deep dive into the lifecycle of a PostgreSQL table. We explore how tables are created, how data is inserted and stored, and how queries work - from physical storage andโฆ
https://compiledconversations.com/10/
2 months ago
0
0
0
@den.dev
Big fan of spec-kit and your YouTube content! I know you must be super busy, but would you be interested in joining
compiledconversations.com
to chat about spec-driven development, spec-kit, and agentic tooling sometime?
loading . . .
Compiled Conversations
In-depth conversations with the people shaping software and technology. Each episode explores real-world experiences, technical challenges, and the thinking behind the tools, systems, and decisions th...
https://compiledconversations.com/
2 months ago
0
0
0
Error handling often clutters code. Fortunately, functional programming offers a more elegant way.
@scottwlaschin.bsky.social
explains the 'two-track' model ๐ (railway-oriented programming) - keeping the success path clean while ensuring errors are always handled. ๐ง
compiledconversations.com/9/
loading . . .
2 months ago
0
5
1
Programming isn't one-size-fits-all. In Episode 9 of Compiled Conversations,
@scottwlaschin.bsky.social
makes the case for being multi-paradigm - using the right language for the right job. Just like a tradesperson has more than one tool, a programmer should too. ๐ง
compiledconversations.com/9/
loading . . .
2 months ago
0
1
1
The Reverse Conway Maneuver flips the script on Conwayโs Law. In Episode 8 of Compiled Conversations, Scott explains how aligning teams with domains helps avoid conflicts - and why the number of teams you have inevitably shapes your systemโs architecture. ๐ง Listen now:
compiledconversations.com/8/
loading . . .
2 months ago
0
0
0
Garbage in, garbage out. ๐๏ธ In Episode 8 of Compiled Conversations, Scott explains why good design starts with good inputs - and why even the best code canโt fix bad ones. ๐ง Listen now:
compiledconversations.com/8/
๐ Subscribe on Apple Podcasts or Spotify so you donโt miss future episodes.
loading . . .
2 months ago
0
1
0
๐ Ep. 9: Domain Modeling Made Functional, Part 2 w/ @scottwlaschin.bsky.social How do
#DDD
& FP fit together? We cover: - What makes a language functional - FP-style error handling ๐ - Composable data types for domain modeling - Pipelines & workflow modeling ๐ง
compiledconversations.com/9/
loading . . .
Domain Modeling Made Functional, Part 2 with Scott Wlaschin - Compiled Conversations
In this episode, Scott Wlaschin shows how functional programming concepts can enhance domain-driven design, sharing practical techniques for building more expressive, testable domain models usingโฆ
https://compiledconversations.com/9/
2 months ago
0
0
0
Writing code isn't just for computers - it's for people too.
@scottwlaschin.bsky.social
explains how
#DDD
encourages developers to use the same language as non-developers; making code a tool for communication, not just execution. ๐ง
compiledconversations.com/8/
loading . . .
2 months ago
0
0
1
Ep. 8: Domain Modeling Made Functional, Part 1 w/
@scottwlaschin.bsky.social
#DDD
isn't about code - it's about communication, we discuss: - Strategic vs tactical DDD - (Sub)domains - Bounded contexts & ubiquitous language - Conway's Law & team organisation ๐ง
compiledconversations.com/8/
loading . . .
Domain Modeling Made Functional, Part 1 with Scott Wlaschin - Compiled Conversations
Scott Wlaschin, author of "Domain Modeling Made Functional" and creator of F# for Fun and Profit, joins us to discuss the powerful pairing of DDD and functional programming. In Part 1 we focus on DDD,...
https://compiledconversations.com/8/
3 months ago
0
3
1
๐งโจ Workshop update from the North Pole: Jolly JVM just delivered a
#Java
impl. of elf-lang featuring
#Clojure-style
immutable, persistent collections w/ structural sharing! ๐ง Impl:
eddmann.com/santa-lang-w...
๐ Writeup:
eddmann.com/posts/santa-...
3 months ago
0
3
2
I may have taken the Christmas-themed programming language thing a bit too far... Introducing the santa-lang Workshop: AI agents (elves) implementing elf-lang across different programming languages using shared test suites and stage-gated development. ๐
eddmann.com/posts/santa-...
#AI
#LLM
3 months ago
0
0
0
Ep. 7: Boosting Laravel Through AI w/
@ashleyhindle.com
From autocomplete โ task completion: how
#AI
and
#Laravel
Boost are reshaping dev workflows: - AI fundamentals (AI, ML, GenAI, LLMs) - Prompt & context engineering - RAG, MCP & agents - Testing in the AI era ๐ง
compiledconversations.com/7/
loading . . .
Boosting Laravel Through AI with Ashley Hindle - Compiled Conversations
Ashley Hindle, creator of Laravel Boost, joins us to demystify AI terminology, explore practical AI development workflows, and discuss how Laravel Boost accelerates AI-assisted development with struct...
https://compiledconversations.com/7/
3 months ago
0
2
1
Load more
feeds!
log in