AA good tool improves the way you work. A great tool improves the way you think." — Jeff Atwood
Tool Categories Overview Ephemeral / ToolingKnowledge that evolves in months to a year — check for updates
Core Development
flowchart LR
subgraph VCS [Version Control]
Git[Git]
GitHub[GitHub/GitLab/Bitbucket]
gh[GitHub CLI]
end
subgraph IDE [IDE/Editor]
VSCode[VS Code]
Cursor[Cursor]
JetBrains[JetBrains Suite]
Neovim[Neovim]
end
subgraph Build [Build/Task]
Make[Make/Just/Task]
Bazel[Bazel/Nx/Turborepo]
end
subgraph Pkg [Package/Dep]
PythonPkg[uv/pip/poetry]
JSPkg[pnpm/npm/yarn]
Cargo[Cargo]
GoMod[Go modules]
JavaBuild[Maven/Gradle]
NuGet[NuGet]
end
Code Quality & Testing
flowchart LR
subgraph Quality [Code Quality]
PythonLint[Ruff/Black/mypy]
JSLint[Biome/ESLint/Prettier]
GoLint[golangci-lint/clippy]
Generic[SonarQube/Semgrep]
end
subgraph Testing [Testing]
UnitTest[pytest/Jest/Vitest/JUnit]
E2E[Playwright/Cypress]
Containers[Testcontainers]
PBT[Hypothesis/fast-check/jqwik]
Mutation[mutmut/Stryker/PITest]
end
CI/CD & Observability
flowchart LR
subgraph CICD [CI/CD]
GHA[GitHub Actions]
GitLab[GitLab CI]
CircleCI[CircleCI]
ArgoCD[ArgoCD/Flux]
end
subgraph Obs [Observability]
Metrics[Prometheus/Grafana]
Logs[Loki]
Traces[Tempo/Jaeger]
OTel[OpenTelemetry]
end
Infrastructure & Security
flowchart LR
subgraph Infra [Infrastructure]
TF[Terraform/OpenTofu]
Pulumi[Pulumi]
Crossplane[Crossplane]
Ansible[Ansible]
end
subgraph C8s [Container/K8s]
Docker[Docker/Podman]
Build[Buildah/Kaniko]
K8sTools[kubectl/helm/k9s]
end
subgraph Security [Security]
Scan[Trivy/Grype/Syft]
Signing[cosign]
Policy[OPA/Kyverno]
end
Documentation & Collaboration
flowchart LR
subgraph Docs [Documentation]
MkDocs[MkDocs]
OpenAPI[OpenAPI/AsyncAPI]
end
subgraph Collab [Collaboration]
Issues[GitHub/GitLab/Linear]
Wiki[Notion/Obsidian]
Diagram[Excalidraw]
end
Essential Tool Chains by Language Ephemeral / ToolingKnowledge that evolves in months to a year — check for updates
// Pulumi Java example
import com.pulumi.Pulumi;
import com.pulumi.aws.s3.Bucket;
import com.pulumi.aws.s3.BucketArgs;
import com.pulumi.aws.s3.inputs.BucketVersioningArgs;
public class MyStack {
public static void main(String[] args) {
Pulumi.run(ctx -> {
var bucket = new Bucket("my-bucket", BucketArgs.builder()
.versioning(BucketVersioningArgs.builder().enabled(true).build())
.serverSideEncryptionConfiguration(List.of(
BucketServerSideEncryptionConfigurationArgs.builder()
.rule(BucketServerSideEncryptionRuleArgs.builder()
.applyServerSideEncryptionByDefault(
ServerSideEncryptionByDefaultArgs.builder()
.sseAlgorithm("AES256")
.build())
.build())
))
.build());
});
}
}
// Pulumi C# Example
using Pulumi;
using Pulumi.Aws.S3;
class MyStack : Stack
{
public MyStack()
{
var bucket = new Bucket("my-bucket", new BucketArgs
{
Versioning = new BucketVersioningArgs { Enabled = true },
ServerSideEncryptionConfiguration = new[]
{
new BucketServerSideEncryptionConfigurationArgs
{
Rule = new BucketServerSideEncryptionRuleArgs
{
ApplyServerSideEncryptionByDefault =
new ServerSideEncryptionByDefaultArgs
{
SseAlgorithm = "AES256"
}
}
}
}
});
}
}
Observability Stack — Modern Choices Ephemeral / ToolingKnowledge that evolves in months to a year — check for updates
// OpenTelemetry C++
#include <opentelemetry/trace/provider.h>
#include <opentelemetry/exporters/otlp/otlp_http_exporter_factory.h>
#include <opentelemetry/sdk/trace/simple_processor_factory.h>
#include <opentelemetry/sdk/trace/tracer_provider_factory.h>
using namespace opentelemetry::trace;
using namespace opentelemetry::sdk::trace;
using namespace opentelemetry::exporter::otlp;
void InitTracer() {
auto exporter = OtlpHttpExporterFactory::Create(OtlpHttpExporterOptions{
.endpoint = "http://localhost:4317/v1/traces"
});
auto processor = SimpleSpanProcessorFactory::Create(std::move(exporter));
auto provider = TracerProviderFactory::Create(std::move(processor));
Provider::SetTracerProvider(provider);
}
auto tracer = trace::Provider::GetTracerProvider()->GetTracer("my-service");
Money calculate_discount(Customer customer, Cart cart) {
auto span = tracer->StartSpan("calculate_discount");
auto scope = opentelemetry::trace::Scope(span);
span->SetAttribute("customer.tier", customer.tier);
span->SetAttribute("cart.total", cart.total());
// ... logic
}
// OpenTelemetry Java
import io.opentelemetry.api.trace.*;
import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter;
import io.opentelemetry.sdk.trace.*;
import io.opentelemetry.sdk.trace.export.BatchSpanProcessor;
public class TracingConfig {
public static void init() {
var exporter = OtlpGrpcSpanExporter.builder()
.setEndpoint("http://localhost:4317")
.build();
var processor = BatchSpanProcessor.builder(exporter).build();
var provider = SdkTracerProvider.builder()
.addSpanProcessor(processor)
.build();
GlobalOpenTelemetry.resetFor(
OpenTelemetrySdk.builder()
.setTracerProvider(provider)
.buildAndRegisterGlobal()
);
}
}
// Usage
Tracer tracer = GlobalOpenTelemetry.getTracer("my-service");
@WithSpan("calculate_discount")
public Money calculateDiscount(Customer customer, Cart cart) {
Span span = Span.current();
span.setAttribute("customer.tier", customer.getTier());
span.setAttribute("cart.total", cart.getTotal());
// ... logic
}
// OpenTelemetry .NET
using OpenTelemetry;
using OpenTelemetry.Trace;
using OpenTelemetry.Exporter.OpenTelemetryProtocol;
using OpenTelemetry.Resources;
using OpenTelemetry.Instrumentation.AspNetCore;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddOpenTelemetry()
.WithTracing(builder => builder
.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddSource("MyApp")
.SetResourceBuilder(ResourceBuilder.CreateDefault()
.AddService("MyApp"))
.AddOtlpExporter(options => {
options.Endpoint = new Uri("http://localhost:4317");
})
);
// Usage
var tracer = TracerProvider.Default.GetTracer("MyApp");
using var span = tracer.StartActiveSpan("calculate_discount");
span.SetAttribute("customer.tier", customer.Tier);
span.SetAttribute("cart.total", cart.Total);
// ... logic
# Ruby instrumentation
# gem install opentelemetry-sdk opentelemetry-exporter-otlp \
# opentelemetry-instrumentation-all
require "opentelemetry/sdk"
require "opentelemetry/instrumentation/all"
OpenTelemetry::SDK.configure do |c|
c.service_name = "pricing-service"
c.use_all # auto-instrument every supported library
end
# Manual instrumentation for business logic
TRACER = OpenTelemetry.tracer_provider.tracer("pricing")
def calculate_discount(customer, cart)
TRACER.in_span("calculate_discount") do |span|
span.set_attribute("customer.tier", customer.tier)
span.set_attribute("cart.total", cart.total.to_f)
# ... logic
end
end
Local Development Environments Ephemeral / ToolingKnowledge that evolves in months to a year — check for updates
Tool
Approach
Best For
Docker Compose
Declarative services
Simple multi-service apps
Dev Containers
VS Code extension
Consistent team envs
Tilt
Live update + smart rebuild
Microservices dev loop
Skaffold
Build→deploy→port-forward
K8s-native dev
Garden
Stack graph + smart sync
Complex multi-env
Nix + direnv
Reproducible builds
Polyglot, hermetic
Architecture Decision Records (ADRs) Applied / MethodologicalKnowledge with a 5–10 year half-life — stable practice
AnAn ADR is a Markdown document recording a decision and its rationale — it has no programming language of its own, and reads identically no matter what the project it documents happens to be written in:
# docs/adr/001-use-postgresql.md
## Title: Use PostgreSQL as Primary Datastore
## Status: Accepted
## Context
We need a relational database for transactional data with complex queries.
## Decision
Use PostgreSQL 16+ with connection pooling (PgBouncer).
## Consequences
- ✅ ACID, rich data types, JSONB, full-text search
- ✅ Mature ecosystem, team familiarity
- ⚠️ Operational overhead (backups, vacuum, monitoring)
- ⚠️ Horizontal scaling requires read replicas/sharding
## Alternatives Considered
- MySQL — less advanced indexing, no JSONB parity
- CockroachDB — distributed SQL, higher latency
- DynamoDB — NoSQL, different access patterns
Security Tooling Ephemeral / ToolingKnowledge that evolves in months to a year — check for updates
Category
Tools
Purpose
SAST
Semgrep, CodeQL, SonarQube, CodeQL
Static analysis
SCA
Trivy, Grype, Syft, Dependabot, Renovate
Dependency scanning
Secrets
TruffleHog, GitLeaks, Gitleaks
Secret detection
Container
Trivy, Grype, Claw
Image scanning
Policy
OPA, Kyverno, Checkov
Policy as code
Documentation Stack Ephemeral / ToolingKnowledge that evolves in months to a year — check for updates
Purpose
Tools
API Docs
Swagger/OpenAPI, Redoc, Scalar
Architecture
Mermaid, Structurizr, PlantUML
Wiki/Knowledge
Notion, Obsidian, GitBook, Wiki.js
Diagrams
Mermaid, Excalidraw, PlantUML
API Catalogue
Postman, Insomnia, Hoppscotch
Summary: Modern Engineering Stack (2024) Ephemeral / ToolingKnowledge that evolves in months to a year — check for updates
OpenTelemetry + Prometheus + Grafana + Tempo + Loki
CI/CD
GitHub Actions / GitLab CI / Buildkite + ArgoCD
Security
Trivy + Trivy + Cosign + OPA + Renovate
Package
uv / pnpm / Cargo / go mod / Maven / NuGet
Containers
Docker / Buildah / Kaniko / Podman
Docs
mkdocs / TypeDoc / cargo doc / docfx
Collab
GitHub/GitLab + Linear + Excalidraw + Mermaid
PhilosophyPhilosophy: "The best tool is the one your team actually uses consistently." — Choose tools that reduce cognitive load, integrate well, and have active communities. Standardise on a core stack, but allow exceptions with architectural review.
This is the approved approach. Standardise on a core stack that reduces cognitive load and integrates well, but allow exceptions with architectural review — the best tool is the one your team actually uses consistently.
Related Topics
CI/CD — the pipeline these tool categories actually get wired into.
📝 Executive Bite-Sized Summary (Max 2 Short Sentences per Section)
Overview
A A good tool improves the way you work.
A great tool improves the way you think." — Jeff Atwood
Architecture Decision Records (ADRs)
An A n ADR is a Markdown document recording a decision and its rationale — it has no programming language of its own, and reads identically no matter what the project it do...
Summary: Modern Engineering Stack (2024)
Standardise on a core stack, but allow exceptions with architectural review.
Philosophy P hilosophy : "The best tool is the one your team actually uses consistently." — Choose tools that reduce cognitive load, integrate well, and have active communi...
🗺️ Site-Wide Concept Atlas
Cartographic Topological Map
🗺️ Pathway Interrogation: Hover over any terrain road line or city node
🌉 Bridge Concepts: Interrogating intermediate weight vectors across the atlas
📍 Explore Map: Click any node circle or road line to navigate
🧭 You Are Here
✨ Active Concept Hit
⛰️ Mountain Ridge
📤 Connection Road
🐉 "Here Be Dragons"
Loading 3D view…
Drag to rotate, scroll to zoom, click a page to open it. Select a cluster below to show only that cluster; select it again to show all.
Structured taxonomy index of site concepts and articles mapped by SOM topological affinity. Keyboard & screen-reader accessible.