Software Tools

The programming languages, design software, productivity apps, and daily-driver tools I use — and why. Hardware and terminal setup live in the Dev Setup article.

Tom Harada February 2026 ~5 min read
Contents
  1. Programming Languages
  2. Frontend & Frameworks
  3. Design Software
  4. Productivity
  5. Coding Agent
  6. Browser

Programming Languages

Three languages cover nearly everything I need. Each fills a distinct niche.

Systems programming, CLI tools, performance-critical work
JavaScript/TypeScript runtime — web servers, tooling, scripting
Scripting, ML, automation, prototyping

Why these three? Rust when performance or correctness matters. Node.js for anything web — it's the lingua franca of frontend and increasingly backend. Python for quick scripts, data work, and ML. Together they cover systems → web → scripting without gaps.

Frontend & Frameworks

My frontend stack is React-centric with TypeScript everywhere.

React framework — SSR, routing, API routes, the full stack
UI library — components, hooks, server components
Type safety across the entire stack

Design Software

My approach to design tools: start with the simplest option and only reach for heavier software when you genuinely need the extra features.

UI design & prototyping — the default for everything web
3D modeling & rendering — free, powerful, open source
Inkscape / Krita
Vector & raster — simpler the better until you need more
After Effects
Motion design & animation
Illustrator / Photoshop
Adobe creative suite — for when Inkscape/Krita aren't enough
Premiere Pro
Video editing

Blender note: I use custom shortcuts that remap navigation to work without a numpad or traditional trackpad — essential for laptop use with the Nulea keyboard mod described in the Dev Setup article.

Productivity

Communication and task management — kept simple.

Slack / Outlook
Communication — messaging and email
Task management — clean, fast, keyboard-driven
Bulk patching for Things — batch edit tasks programmatically

Things + things-patcher. Things is the best task manager I've used — fast, beautiful, and stays out of your way. But it lacks bulk editing. things-patcher fills that gap: batch-reassign dates, move projects, update tags across dozens of tasks in seconds.

Coding Agent

Pi is my primary coding agent. More details on the setup, custom agents, and the pc commit script in the Dev Setup article.

Primary coding agent — composable, extensible, terminal-native
Terminal emulator — fast, GPU-accelerated, native
tmux
Session management — panes, splits, persistent sessions

Browser

Chrome with a couple of essential extensions.

ARIA DevTools
Inspect accessibility tree directly — essential for a11y
Tampermonkey
Custom userscripts — tweak internal tools, add shortcuts