Starphix
Software Engineering / Sources
The Lab / Sources / Software Engineering / Tools/README.md

Developer Tools

Tooling categories and recommendations for modern software development workflows.


Tool Categories

Category Purpose Key Notes
Developer Tools IDE, debugging, profiling, CLI Developer Tools
Build Tools Compilation, bundling, task automation Build Tools
Static Analysis Linting, type checking, SAST Static Analysis
Package Management Dependencies, lockfiles, registries Package Management

Selection Principles

  1. Standardize per language — One toolchain per language across the org
  2. Fast feedback — Tools must run in seconds locally, minutes in CI
  3. Automation first — Pre-commit hooks, CI gates, IDE integration
  4. Actionable output — Clear errors with fix suggestions
  5. Low friction — Zero-config where possible; sensible defaults

Language IDE Lint/Format Type Check Build Package
TypeScript/JS VS Code + Biome Biome tsc --noEmit Vite/esbuild pnpm
Python VS Code + Pylance Ruff mypy uv/hatch uv
Go GoLand / VS Code + gopls golangci-lint go vet go build Go modules
Rust VS Code + rust-analyzer clippy + rustfmt cargo check cargo build Cargo
JVM (Kotlin) IntelliJ IDEA detekt + ktlint Kotlin compiler Gradle (KTS) Gradle
JVM (Scala) IntelliJ + Metals scalafix + scalafmt Scala compiler Mill/sbt Coursier
JVM (Java) IntelliJ IDEA Checkstyle/SpotBugs javac Gradle/Maven Maven Central

Cross-Cutting Tools

Version Control

  • Git — Conventional commits; trunk-based development
  • Git hooks — pre-commit framework (language-agnostic)
  • Git LFS — Large assets (not code)

Code Review

  • GitHub/GitLab PRs — Required reviews; automated checks
  • Review automation — Dependabot, Renovate, code owners

CI/CD

  • GitHub Actions / GitLab CI — Pipeline as code
  • Dagger / Earthly — Portable CI pipelines
  • Act — Run GitHub Actions locally

Documentation

  • MkDocs / Docusaurus / VitePress — Static sites from markdown
  • OpenAPI/Swagger — API docs from code
  • ADR tools — adr-tools for architecture decisions

Security

  • SAST — Semgrep, CodeQL, SonarQube
  • SCA — OWASP Dependency Check, Snyk, Trivy
  • Secrets — GitLeaks, TruffleHog, detect-secrets
  • Container — Trivy, Grype, Cosign/Sigstore

Observability (Local Dev)

  • Docker Compose — Local stack (DB, Kafka, Redis)
  • Testcontainers — Integration tests with real services
  • Telepresence — Local dev against remote cluster
  • Tilt / Garden — Live reload for Kubernetes dev

Anti-Patterns

Anti-Pattern Fix
Tool sprawl Standardize; one tool per category per language
Slow CI Parallelize; cache aggressively; fail fast
Ignored warnings Treat warnings as errors; fix or suppress with justification
Manual steps Automate everything repeatable
Outdated tools Regular upgrade cadence; dependabot/renovate
No local parity CI tools = local tools (same versions, configs)

  • Developer Tools — IDE, debugging, profiling
  • Build Tools — Compilation, bundling, automation
  • Static Analysis — Linting, type checking, SAST
  • Package Management — Dependencies, registries
  • CI CD Best Practices — Pipeline integration
  • Supply Chain Security — Tooling for supply chain

Sources: Thoughtworks Technology Radar, CNCF Landscape, GitHub Octoverse, Stack Overflow Survey, JetBrains Developer Ecosystem

From the Software Engineering research vault · CC BY 4.0 · all notes · raw markdown