41554 blogs · [ { "id": "01a087a3-4d06-7076-8b07-2ba350d786ac", "title": "Hi, I'm John.", "url": "https://md.jtmn.dev/blog/Hi%2C+I'm+John.", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba351ab8501", "title": "SC-001 - Pausable ERC20 Tokens", "url": "https://md.jtmn.dev/blog/%F0%9F%93%9D+Smart+Contracts/SC-001+-+Pausable+ERC20+Tokens", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba351e2ee7c", "title": "3D-003 - The cutest dang server rack you've ever seen", "url": "https://md.jtmn.dev/blog/%F0%9F%96%A8%EF%B8%8F+3d+Printing/3D-003+-+The+cutest+dang+server+rack+you've+ever+seen", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba352457648", "title": "3D-002 - Storage Solutions via Gridfinity", "url": "https://md.jtmn.dev/blog/%F0%9F%96%A8%EF%B8%8F+3d+Printing/3D-002+-+Storage+Solutions+via+Gridfinity", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba35267a0a9", "title": "3D-001 - My Setup", "url": "https://md.jtmn.dev/blog/%F0%9F%96%A8%EF%B8%8F+3d+Printing/3D-001+-+My+Setup", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba3532cb01f", "title": "PR-006 - Go, Rust and the cost of brain power", "url": "https://md.jtmn.dev/blog/%F0%9F%92%BB+Programming/PR-006+-+Go%2C+Rust+and+the+cost+of+brain+power", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba353ccaa1f", "title": "PR-005 - Microservice architecture and thoughts", "url": "https://md.jtmn.dev/blog/%F0%9F%92%BB+Programming/PR-005+-+Microservice+architecture+and+thoughts", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba353f6ea0c", "title": "PR-004 - Elixir", "url": "https://md.jtmn.dev/blog/%F0%9F%92%BB+Programming/PR-004+-+Elixir", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba354d629c0", "title": "PR-003 - A microservices trading platform in Go", "url": "https://md.jtmn.dev/blog/%F0%9F%92%BB+Programming/PR-003+-+A+microservices+trading+platform+in+Go", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba35578fe63", "title": "PR-002 - Electron + Go = Graviton", "url": "https://md.jtmn.dev/blog/%F0%9F%92%BB+Programming/PR-002+-+Electron+%2B+Go+%3D+Graviton", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba355f3a217", "title": "PR-001 - Electron, a square peg into a square hole", "url": "https://md.jtmn.dev/blog/%F0%9F%92%BB+Programming/PR-001+-+Electron%2C+a+square+peg+into+a+square+hole", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba355fd1724", "title": "CR-003 - Overcollaterised Loans with DeFi", "url": "https://md.jtmn.dev/blog/%F0%9F%92%B0+Crypto/CR-003+-+Overcollaterised+Loans+with+DeFi", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba3569aae9d", "title": "CR-002 - Blockchain Analytics with Cayley DB", "url": "https://md.jtmn.dev/blog/%F0%9F%92%B0+Crypto/CR-002+-+Blockchain+Analytics+with+Cayley+DB", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba35793ab21", "title": "CR-001 - The Forkening", "url": "https://md.jtmn.dev/blog/%F0%9F%92%B0+Crypto/CR-001+-+The+Forkening", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba357e6ff36", "title": "MS-013 - Why My Timing Sucks, and Binary Search in Music", "url": "https://md.jtmn.dev/blog/%F0%9F%8E%B9+Music/MS-013+-+Why+My+Timing+Sucks%2C+and+Binary+Search+in+Music", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba3584a109a", "title": "MS-012 - Modal Improvisation", "url": "https://md.jtmn.dev/blog/%F0%9F%8E%B9+Music/MS-012+-+Modal+Improvisation", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba3586f2dff", "title": "MS-011 - Modal Jazz", "url": "https://md.jtmn.dev/blog/%F0%9F%8E%B9+Music/MS-011+-+Modal+Jazz", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba358af3079", "title": "MS-010 - Struggling to improvise", "url": "https://md.jtmn.dev/blog/%F0%9F%8E%B9+Music/MS-010+-+Struggling+to+improvise", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba358ddeffa", "title": "MS-009 - Swinging Jazz", "url": "https://md.jtmn.dev/blog/%F0%9F%8E%B9+Music/MS-009+-+Swinging+Jazz", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba3597ce593", "title": "MS-008 - Words of Wisdom from Mike Citizen", "url": "https://md.jtmn.dev/blog/%F0%9F%8E%B9+Music/MS-008+-+Words+of+Wisdom+from+Mike+Citizen", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba359c581ba", "title": "MS-007 - Modes", "url": "https://md.jtmn.dev/blog/%F0%9F%8E%B9+Music/MS-007+-+Modes", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba35a816e00", "title": "MS-006 - Learning to improvise", "url": "https://md.jtmn.dev/blog/%F0%9F%8E%B9+Music/MS-006+-+Learning+to+improvise", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba35b3a84e1", "title": "MS-005 - Learning lick 1", "url": "https://md.jtmn.dev/blog/%F0%9F%8E%B9+Music/MS-005+-+Learning+lick+1", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba35b847a07", "title": "MS-004 - Rendering music", "url": "https://md.jtmn.dev/blog/%F0%9F%8E%B9+Music/MS-004+-+Rendering+music", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba35c5f3023", "title": "MS-002 - Chord Extensions", "url": "https://md.jtmn.dev/blog/%F0%9F%8E%B9+Music/MS-002+-+Chord+Extensions", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba35c9e4c23", "title": "MS-003 - Reharm Algorithm", "url": "https://md.jtmn.dev/blog/%F0%9F%8E%B9+Music/MS-003+-+Reharm+Algorithm", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba35d36f7cd", "title": "MS-001 - Experiments in learning jazz piano", "url": "https://md.jtmn.dev/blog/%F0%9F%8E%B9+Music/MS-001+-+Experiments+in+learning+jazz+piano", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba35dc9cb8d", "title": "JP-001 - Optimising Japanese Study", "url": "https://md.jtmn.dev/blog/%F0%9F%8E%99%EF%B8%8F+Languages/JP-001+-+Optimising+Japanese+Study", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba35eba6b6b", "title": "GN-001 - Entering the Fediverse", "url": "https://md.jtmn.dev/blog/%F0%9F%92%A1+General/GN-001+-+Entering+the+Fediverse", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba35f3b3015", "title": "SC-002 - Stakable NFTs", "url": "https://md.jtmn.dev/blog/%F0%9F%93%9D+Smart+Contracts/SC-002+-+Stakable+NFTs", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba3602ed897", "title": "PJ-002 - Software Engineering", "url": "https://md.jtmn.dev/blog/%F0%9F%9A%A7+Projects/PJ-002+-+Software+Engineering", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba360ea22ce", "title": "PJ-001 - Smart Contracts", "url": "https://md.jtmn.dev/blog/%F0%9F%9A%A7+Projects/PJ-001+-+Smart+Contracts", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba361447c24", "title": "SC-003 - Achievements and Badges", "url": "https://md.jtmn.dev/blog/%F0%9F%93%9D+Smart+Contracts/SC-003+-+Achievements+and+Badges", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba3614949c3", "title": "PR-007 - Why you don't need React", "url": "https://md.jtmn.dev/blog/%F0%9F%92%BB+Programming/PR-007+-+Why+you+don't+need+React", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba361e84bcf", "title": "PR-008 - Squash bug families, not bugs with Gleam", "url": "https://md.jtmn.dev/blog/%F0%9F%92%BB+Programming/PR-008+-+Squash+bug+families%2C+not+bugs+with+Gleam", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba36258f8da", "title": "PJ-003 Hiring for Godot Programmer", "url": "https://md.jtmn.dev/blog/%F0%9F%9A%A7+Projects/PJ-003+Hiring+for+Godot+Programmer", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba363197b21", "title": "CR-004 - The Reverse Triple Point", "url": "https://md.jtmn.dev/blog/%F0%9F%92%B0+Crypto/CR-004+-+The+Reverse+Triple+Point", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba3639889a2", "title": "CA-007 - What makes a senior software engineer", "url": "https://md.jtmn.dev/blog/%F0%9F%93%9ACareer/CA-007+-+What+makes+a+senior+software+engineer", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba363f7af6a", "title": "CA-006 - Switching Careers – From Engineering to Software Development", "url": "https://md.jtmn.dev/blog/%F0%9F%93%9ACareer/CA-006+-+Switching+Careers+%E2%80%93+From+Engineering+to+Software+Development", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba364c2d477", "title": "CA-005 - What am I? A Quick Look at Zero to One Engineers", "url": "https://md.jtmn.dev/blog/%F0%9F%93%9ACareer/CA-005+-+What+am+I%3F+A+Quick+Look+at+Zero+to+One+Engineers", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba365abb771", "title": "CA-004 - Intrinsic Motivation and Setting Yourself Apart", "url": "https://md.jtmn.dev/blog/%F0%9F%93%9ACareer/CA-004++-+Intrinsic+Motivation+and+Setting+Yourself+Apart", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba36645b8c0", "title": "CA-003 - npm install skills", "url": "https://md.jtmn.dev/blog/%F0%9F%93%9ACareer/CA-003+-+npm+install+skills", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba366f4e189", "title": "CA-002 - Life on the Dark Side", "url": "https://md.jtmn.dev/blog/%F0%9F%93%9ACareer/CA-002+-+Life+on+the+Dark+Side", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba3676a7350", "title": "CA-001 - rake career migrate", "url": "https://md.jtmn.dev/blog/%F0%9F%93%9ACareer/CA-001+-+rake+career+migrate", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba36819abfb", "title": "NXR-001 - The Engine to No Engine Journey", "url": "https://md.jtmn.dev/blog/%F0%9F%95%B9%EF%B8%8F+Game+Dev/NXR-001+-+The+Engine+to+No+Engine+Journey", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba36824daa1", "title": "PR-010 - Cloning private submodules in GitHub actions", "url": "https://md.jtmn.dev/blog/%F0%9F%92%BB+Programming/PR-010+-+Cloning+private+submodules+in+GitHub+actions", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba36897d93b", "title": "PR-009 - Game Development with Godot and Go", "url": "https://md.jtmn.dev/blog/%F0%9F%92%BB+Programming/PR-009+-+Game+Development+with+Godot+and+Go", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba368ccc054", "title": "NXR-002 - Beyond Manual Testing in Gamedev", "url": "https://md.jtmn.dev/blog/%F0%9F%95%B9%EF%B8%8F+Game+Dev/NXR-002+-+Beyond+Manual+Testing+in+Gamedev", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba3690dc5e5", "title": "now, as of 2025-10-21", "url": "https://md.jtmn.dev/blog/now%2C+as+of+2025-10-21", "published_at": null }, { "id": "01a087a3-4d06-7076-8b07-2ba369d1c2a6", "title": "CA-008 - Supply Chain Attack via Fake Job Interview", "url": "https://md.jtmn.dev/blog/%F0%9F%93%9ACareer/CA-008+-+Supply+Chain+Attack+via+Fake+Job+Interview", "published_at": null } ] posts Claim your blog
Back to md.jtmn.dev
Blog · corpus.blog/blogs/md.jtmn.dev/posts

md.jtmn.dev

md.jtmn.dev

Undated