Software
Software is crazy, but we can manage it if we have names for the things we're building. Here's my mental map for all projects. This map was heavily inspired by a secret presentation from Safia Abdalla :) For best results, use a wide screen (1280px+).
A modern app
Editor/IDE
- Operating systems
- Shells + terminals
- Coding agents
- Extensions
- Team vs personal configs
Frontends
- Endless frameworks
- Web, mobile, desktop
- UX design
Backends
- More endless frameworks
- Storage
- Auth
- Async compute
Env
- Secrets
- Non-source-controllable assets
Observability
- Telemetry
- Alerting
Deployment
- Test environments
- Infrastructure as code
- Automated CI/CD
- Automated recovery
Documentation
- Code comments
- Markdown files
- Wiki site
- On-call runbooks
Maintenance
- Project management
- Test coverage validation
- Perennial innovations
Communication
- Early feedback
- Announcements and blogs
- External contributor collaboration
- User support
Agents + AI
- Integrations
- Security
- Hallucinations
- Costs (financial, reputational, ecological)
Mocha
Mocha is the classic, reliable, trusted test framework for Node.js and the browser that was created in 2011. I've been a maintainer since August 2025, so I'm certainly no expert yet, but I've used Mocha significantly for testing AHK++, a VS Code extension that provides language support for a niche programming language.
Priorities
- Modernization: ESM support, modern Node versions, good dependencies
- Stability: Test coverage, backporting fixes, minimal breaking changes
My key contributions
-
Fixed critical
require(ESM)bug (#5498) - Monitored and improved CI pipeline reliability (#5361)
- Oversaw rewrite of "watch mode" logic (#5409)
My roadmap for Mocha
You can view my prioritized backlog, but in summary: