What I use.
Updated when something earns it.
Hardware, editor, languages, frameworks, infra. Opinionated. Real.
Hardware
MacBook Pro M3 Max
Daily driver. The fans never spin and the battery survives a full day of Claude Code sessions.
DGX cluster (Harvard)
Training rig for SpatialDINO and follow-on cryo-ET work. FSDP across 8x H100 with NVLink + Infiniband.
Apple Studio Display
One big panel beats two smaller ones for long context windows and large diffs.
Editor & terminal
Claude Code
Link →Primary editor. Most of my code is now written in conversation, not in a buffer.
Cursor
Link →When I want a UI for tab-completion or quick edits across a few files.
fish shell + RTK proxy
fish for ergonomics, RTK to cut 60-90% of token spend on routine dev operations.
tmux
Long-lived sessions across remote training boxes and local agent runs.
Excalidraw
Link →The whiteboard for client discovery and architecture sketches. Nothing else has the same hand-drawn legibility.
Languages
TypeScript (strict)
Default for anything web. Strict mode is non-negotiable.
Python
Research, ML, FastAPI services, glue scripts. Still the language of the field.
Go
Distributed systems work. Boring, predictable concurrency.
Rust
Performance-critical CLIs (RTK). The compiler pays back the friction.
Java
Apache Flink work. Not a love story, but the JVM is where the streaming runtime lives.
OCaml
School. Still the cleanest way to learn what types should feel like.
Frameworks
Next.js 15 (App Router)
Link →Server components by default, edge when it matters. This site runs on it.
React 19
The default client runtime. Server Actions are finally usable.
Tailwind CSS
Link →Design tokens in the markup. Faster than naming things.
FastAPI
Link →Async Python services with type-safe contracts. Default backend at Benmore.
Django
When the client needs an admin and an ORM more than they need speed.
PyTorch + FSDP
Training stack for SpatialDINO and everything cryo-ET adjacent.
Apache Flink
Streaming runtime for the BU thesis on dynamic checkpointing.
React Native (Expo)
Mobile for Cattle Logic. Offline-first ranches need a native shell.
AI tooling
Claude Opus + Sonnet via Claude Code
Opus for hard reasoning, Sonnet for everything else. The split saves real money.
Compound Engineering skills
Authored the team skill library: planning, debugging, brainstorming, code review, frontend design.
RTK token proxy
My Rust CLI that intercepts Claude Code commands and rewrites them for token efficiency.
Cursor
Backup editor when I want a graphical diff and tab-complete.
OpenAI Codex CLI
For comparing model behavior on the same prompt. Useful as a second opinion.
Infrastructure
Vercel
Link →Deploy, edge functions, OG images. Zero-config for the frontend stack.
Stripe
Link →Payments for every Benmore engagement. Connect for marketplace flows.
Postgres + RDS
Default storage. Boring is a feature.
Kafka
Event streams between PCS microservices. The contract layer.
RocksDB
Embedded state for Flink and other streaming systems.
Sentry
Link →Error monitoring across web and mobile.
Linear
Link →The only issue tracker that respects keyboard users.
Services
GitHub
Link →Source of truth for code and reviews.
Vercel
Hosting for arkashj.com and most client frontends.
Stripe
Money in, money out.
Linear
Project management across Benmore engagements.
Substack
Link →Long-form writing.
Medium
Link →Older essays still live here.
Slack
Client comms. Pinned channels per engagement.