Justin Abrahms
Principal Engineer and Technical Leader. Transforming engineering organizations through platform excellence.
AI / MLEngineering management / careersDevOps / SRE / infrastructureDev tools / editors / IDEs
- Posts
- 129 from 4 Mar 2011 to 26 Aug 2026
- Posting
- monthly (21 in the last year)
- Kind
- personal blog
- Feed
- https://justin.abrah.ms/rss.xml
2026 20
- A skill for single-player agentic knowledge management
- Concept to Cash: Initiative retrospectives and visualization
- A framework for cataloguing technical debt
- Tools I use: Ghostty
- Scaling at the mediumest company: half-measures save the day
- On MCPs vs CLIs
- CI Theater: we deleted our flaky tests and nothing broke
- Claws Don't Need to Be Complicated: A Personal AI Agent in Go
- How to diff a book against your mind
- Announcing FRM, a CLI based CRM... 15 years in the making
- How to generate demo videos with playwright
- Recommended reviewers to build your council
- AI Doesn't Work Without Good Inputs (And Neither Do Humans)
- agent-chat: a way to monitor multi-agent orchestration
- multiclaude, a different take on llm orchestration
- A Tuesday in 2027: What orchestrated LLMs might look like
- Yegge's Developer-Agent Evolution Model
- Gas Town: Running Dozens of Claude Code Instances at Once
- LLM Session Sharer: Easily share a claude code session without clutter
- Using your (Backstage) service catalog for compliance
2023 4
2022 6
2021 3
2020 4
2019 2
2018 6
2016 2
2015 4
2014 10
- My Emacs Configuration: Literate Setup with Org and straight.el
- Imhotep helps you enforce your styleguide during code review
- Inheritence versus Composition
- Meaning of Community
- Setuptools Entrypoints Explained
- Thinking like a programmer: Inputs & outputs
- Why a community might want a Python Software Foundation
- NodeConf 2014: A story of aspiration and community
- Pull request templates make code review easier
- PyCon 2014 was awesome
2013 20
- Node Knockout: A chance to play & experiment
- Obseletion through Programming
- Book Review: Backbone.js Testing by Ryan Roemer
- Selenium's Page Object Pattern: The Key to Maintainable Tests
- Javascript Refactoring without an IDE
- A list of scary topics.
- Big-O is easy to calculate, if you know how
- Pricing books as a function of risk
- The State of GitHub's Code Review
- Thinking of Databases as an Excel file
- Big-O notation explained by a self-taught programmer
- Finding Unused files with Require.js imports
- PyATOM for static site syndication
- setup.py, distutils and testing.
- Why Pisces?
- Securing your email
- Meaning is not zero-sum
- Converting from MySQL to Postgres
- Ignore Django, write testable code
- Project Structure for Advanced Beginners
2012 8
2011 40
- EasyMock for mere mortals
- Django at 30,000ft: A Manager's View
- Vim & Python: Making yourself at home
- Writing a static site generator using org-mode.
- 6 things I learned about setuptools
- Bash: Your forgotten friend (part 1)
- Bash: Your forgotten friend (part 2)
- Bash: Your forgotten friend (part 3)
- Customizing Django Forms Multiwidgets
- Developing a Personal Brand
- Django Portfolio Application
- django-voting: A brief tutorial
- Django, PyISAPIe and IIS
- Domain Sniffing Middleware
- Emacs and Transmit: Remote edit Fix
- Emacs: Being Productive
- Emacs: Introduction & Installation
- Emacs: The Mindset, A contextual shift
- Fixing your models subdirectory
- Google account suspended: A post mortem
- Importance of Documentation
- Javascript unit tests with JS Test Driver
- Macports and PYTHONPATH
- Most Used Programs: An Index
- NameError: global name 'log' is not defined
- Piping to stdout when using BuildBot
- psycopg2 Internal Error
- Speedy Google Code Checkouts
- Top 5 Bookmarklets
- Using Database views with Django
- Using test generators to save time
- Versioning Production Settings
- Vim Screencast: % Operator
- Vim Screencast: An Introduction
- Vim Screencast: Macros
- Vim Screencast: Selections
- Vim: My new IDE
- Virtualenv Wrapper Helper
- My motivations for choosing emacs
- GTD Excel File