Tech Strategy & Evaluation

Interactive Tech Radar

Hands-on evaluations, architectural adoption decisions, and engineering tools tracked across enterprise systems and agentic AI workflows.

Adoption Lifecycle Distribution 57 technologies monitored
💡 Click a quadrant or group to zoom in. Use the top breadcrumb to zoom out. Click any technology for full details.

How the Tech Radar works

This radar is Mihai Farcas's record of hands-on technology evaluations. Each entry is tested in real projects, moves from Assess to Trial, and ends with a decision: Adopt, Hold or Reject. Every decision links to a written report explaining why, and what it was chosen over.

Entries are grouped into four quadrants — Languages & Frameworks, Platforms, Tools and Techniques — and each report is dated so you can see when the decision was last reviewed.

All 57 radar reports

Adopt (29)

  • ArgoCD — GitOps continuous delivery tool for Kubernetes, adopted over Flux.
  • Claude Code — Agentic coding CLI/IDE assistant from Anthropic.
  • Cloudflare — Edge network, DNS, and platform (Pages/Workers/R2) provider.
  • Docker Compose — Low-complexity local development setup, adopted for simple multi-container workflows.
  • DuckDB — In-process analytical database, adopted.
  • GCP — Google Cloud Platform, the go-to among the Big 3 cloud providers.
  • GitHub — Git hosting and collaboration platform, adopted for source control and CI/CD in place of GitLab.
  • GitHub Copilot — AI pair programmer integrated into the editor.
  • GitOps — Using Git as the single source of truth for infrastructure and deployments.
  • K3s — Lightweight, CNCF-certified Kubernetes distribution packaged as a single <100MB binary, adopted for local development, edge computing, and resource-efficient clusters.
  • Kubernetes — Container orchestration platform for production workloads.
  • Marimo — Python notebook environment, adopted in favor of Jupyter.
  • Monorepo — Single-repository architecture, adopted in favor of splitting services across multiple repos.
  • Moon — Polyglot monorepo build system and task runner with native multi-runtime toolchain management, evaluated for Python, TypeScript, and Rust architectures.
  • n8n — Why Mihai Farcas adopted n8n as his standard enterprise workflow automation and Agentic AI orchestration platform over Zapier and Make.
  • NodeJS — Default back-end JavaScript/TypeScript runtime.
  • Nuxt.js — Vue meta-framework used to build this very site, now fully adopted.
  • Playwright — End-to-end testing framework, adopted in favor of Cypress.
  • pnpm — Fast, disk-efficient package manager and workspace engine adopted in favor of npm for all Node.js and TypeScript projects.
  • Polars — DataFrame library for Python, adopted in favor of Pandas.
  • Prettier — Code formatter for the TypeScript/JavaScript ecosystem, adopted.
  • Python — General-purpose language for automation, data, and AI tooling.
  • Rancher Desktop — Open-source local Kubernetes and container management platform, adopted across developer workstations in favor of Docker Desktop.
  • Ruff — Extremely fast Python linter and code formatter written in Rust, adopted to replace Black, Flake8, and isort into a unified zero-dependency binary.
  • Turborepo — High-performance monorepo build system and task orchestrator with remote caching, evaluated for pure JavaScript and TypeScript architectures.
  • TypeScript — Primary language for both front-end and back-end JavaScript work, adopted in favor of plain JavaScript.
  • uv — Extremely fast, Rust-powered Python project manager and workspace orchestrator, adopted as the universal standard over pip and Poetry.
  • VS Code — Primary code editor, adopted as the daily driver.
  • Vue.js — Primary front-end framework for client and personal projects.

Trial (13)

  • Bun — Fast all-in-one JavaScript runtime, native bundler, and package manager, evaluated as a high-speed Node.js alternative.
  • Celery — Distributed async task queue for Python, currently being evaluated.
  • Civo — Developer-friendly, lower-cost managed Kubernetes cloud provider.
  • Dagster — Data orchestrator, currently being evaluated.
  • dbt-core — Data transformation tool, currently being evaluated.
  • DuckLake — Lakehouse format built on DuckDB, currently being evaluated.
  • GoLang — Statically typed, compiled language evaluated for performance-sensitive services.
  • Google Antigravity — Agentic AI coding platform from Google, currently in trial.
  • Next.js — React meta-framework, currently in trial.
  • Prefect — Workflow orchestration tool, currently being evaluated.
  • React — Front-end UI library, currently in trial.
  • ty — High-speed static type checker for Python from Astral, evaluated as the final piece in Astral's unified Rust toolchain alongside uv and Ruff.
  • UpCloud — Cloud infrastructure provider, currently in trial.

Hold (3)

  • AWS — Amazon Web Services, on hold in favor of GCP.
  • Flux — GitOps continuous delivery tool for Kubernetes, considered alongside ArgoCD.
  • Nx — Enterprise-grade monorepo build system with deep code generation and AST dependency analysis, evaluated against Turborepo and Moon.

Rejected (12)

  • Azure — Microsoft Azure, rejected in favor of GCP.
  • Black — The uncompromising Python code formatter that eliminated style debates, now superseded and rejected in favor of Ruff.
  • Cypress — End-to-end testing framework, rejected in favor of Playwright.
  • Docker Desktop — Proprietary local container and Kubernetes GUI, rejected in favor of Rancher Desktop.
  • Docker Swarm — Container orchestration tool, rejected in favor of Kubernetes.
  • GitLab — Git hosting and CI/CD platform, previously adopted for source control and pipelines.
  • JavaScript — Rejected as the primary authoring language, in favor of TypeScript.
  • Jupyter — Python notebook environment, rejected in favor of Marimo.
  • npm — Why npm was rejected for enterprise Node.js and TypeScript projects in favor of pnpm's content-addressable architecture and workspace isolation.
  • Pandas — DataFrame library for Python, rejected in favor of Polars.
  • pip — Why pip and requirements.txt were rejected in favor of uv for modern, reproducible, high-performance Python development.
  • Polyrepo — Splitting microservices across independent repositories: why multi-repo architecture was rejected in favor of an orchestrated monorepo.