Navigate this article
Technology creates value when it fits the product, the team, and operations. This material maps the areas I work in and explains how I turn technical repertoire into sustainable choices.
The stack starts with context, not trends
Before choosing any tool, I consider the product stage, domain, team experience, budget, security requirements, expected volume, and who will maintain the system.
I prefer a clear and well documented foundation. A new technology enters when it genuinely improves delivery, operations, or experience, not simply because it is popular.
- Team capability and experience.
- Infrastructure and operational cost.
- Security, privacy, and data criticality.
- Maintainability and hiring predictability.
- Integration with existing systems.
Backend, services, and APIs
I work across backend ecosystems to build APIs, transactional services, integrations, operational panels, and SaaS products. Node.js and NestJS are common choices, while Ruby on Rails, Python, Java, .NET, and PHP remain important when their ecosystems fit the context.
I also define REST, GraphQL, or gRPC contracts, authentication, authorization, queues, asynchronous jobs, and boundaries between modules. Language is one part of the solution; domain clarity and reliable operations matter just as much.
- Node.js, TypeScript, NestJS, and Express.
- Python, Django, and FastAPI.
- Ruby and Ruby on Rails.
- Java and Spring Boot.
- C# and .NET.
- PHP and Laravel.
- REST APIs, GraphQL, and gRPC.
- OAuth, authentication, and access control.
Frontend and web products
For web products, I use Next.js, React, and TypeScript to build responsive interfaces, API integrations, and journeys that remain understandable as the product grows. Rendering, state, and forms are selected according to the expected experience, SEO, and application profile.
The foundation includes accessibility, validation, performance, reusable components, and journey testing. The goal is not merely to assemble screens, but to create a product that can be understood, maintained, and used safely.
- Next.js, React, and TypeScript.
- Tailwind CSS and Shadcn UI.
- Redux and React Query.
- React Hook Form and Zod.
- SSR, ISR, and SPA applications.
- Accessibility and responsive interfaces.
- Vite and frontend organization.
- Playwright for critical journeys.
Data, cache, search, and Business Intelligence
I use relational databases when consistency and structured queries are central, and specialized components when caching, documents, search, or analytics require another format. Modeling, indexes, migrations, retention, and recovery are part of the decision.
For analysis, I work with SQL, Power BI, and models that turn operational data into understandable indicators. Value appears when the company can answer questions and make decisions, not when it merely accumulates information.
- PostgreSQL, MySQL, and SQLite.
- SQL Server and Oracle Database.
- MongoDB and Elasticsearch.
- Redis for cache, queues, and temporary state.
- Modeling, indexes, migrations, and queries.
- SQL, Power BI, Power Query, and DAX.
- Dashboards and business indicators.
- Backups, retention, and recovery.
Architecture that can evolve without losing control
I choose architecture according to the domain, risk, and team capacity. A well defined modular monolith is often a better foundation than distributed services introduced too early; microservices enter when boundaries, scale, and operational autonomy truly justify the separation.
Patterns help organize decisions, but they do not replace understanding. Clean Architecture, DDD, hexagonal architecture, events, and CQRS are applied when they reduce coupling and make responsibilities more explicit.
- Clean Architecture and hexagonal architecture.
- Domain Driven Design.
- Modular monoliths and microservices.
- Event driven architecture.
- CQRS and Repository Pattern.
- SOLID and Clean Code.
- Contracts between modules and services.
- ADRs for important decisions.
Cloud, platform, delivery, and operations
I take care of the foundation that brings software into production and keeps it observable. This includes Linux servers, containers, networking, proxies, certificates, pipelines, artifact registries, monitoring, logs, backups, and controls proportional to service criticality.
I work with public cloud and VPS environments according to cost, availability, and control needs. Harness in this area means the CI/CD platform; it is different from Harness Engineering, which belongs to the working method.
- Linux, Ubuntu, Debian, and SSH administration.
- Docker, Docker Compose, and Kubernetes.
- NGINX, Traefik, HAProxy, and PM2.
- AWS, Azure, Google Cloud, and Oracle Cloud.
- Cloudflare, DNS, SSL, VPN, and reverse proxies.
- Terraform, Ansible, and reproducible infrastructure.
- GitHub Actions, GitLab CI, Jenkins, and Harness CI/CD.
- Prometheus, Grafana, Loki, alerts, and observability.
- Registries, backups, Fail2Ban, and recovery.
Games, 3D, and interactive experiences
I also develop interactive experiences for browsers, communities, and gaming platforms. This work combines gameplay logic, interfaces, session synchronization, assets, performance, and integration with external services.
Phaser and Three.js serve web experiences; Unity, Unreal Engine, and Godot cover products that need complete engines. The Discord Activities SDK enables social experiences that run inside a server context, including games and shared sessions.
- Unity, Unreal Engine, and Godot.
- Phaser and Three.js for web experiences.
- Discord Activities SDK.
- C#, C++, and Lua.
- Spritesheets and 2D or 2.5D experiences.
- Blender and 3D asset pipelines.
- Social sessions and state synchronization.
- Performance and progressive asset loading.
Business platforms and integrations
Not every problem requires a system built from scratch. Often the best result comes from configuring a mature platform, integrating data, and adapting the flow to the way the company operates.
I work with customer service, CRM, ERP, payments, WhatsApp, and operational automation. Implementation includes credentials, webhooks, queues, access rules, audit trails, and a maintenance routine, not only the initial connection.
- Chatwoot and customer service flows.
- Odoo, CRM, and ERP.
- Stripe and Mercado Pago.
- Evolution API and WAHA.
- WhatsApp Cloud API.
- OAuth and authenticated integrations.
- n8n, webhooks, and operational automation.
- Panels, queues, and system synchronization.
AI and harnessed agents for internal automation
For internal automation, I build harnessed agents: a controlled layer around the model that defines context, memory, allowed tools, permissions, execution limits, evaluations, logs, checkpoints, and moments for human approval.
These agents can consult internal systems, classify requests, prepare responses, generate reports, update a CRM or ERP, and trigger workflows. They do not receive unrestricted access; each capability is exposed as an auditable tool with defined scope and responsibility.
When the process is predictable, I use a deterministic workflow, often with n8n. An agent enters when interpretation and flexibility create enough value. RAG, MCP, and tool catalogs help connect knowledge and actions without hiding data provenance.
- OpenAI, Anthropic, and task appropriate models.
- RAG and internal knowledge retrieval.
- MCP and tool catalogs.
- Controlled memory and context.
- Least privilege permissions and execution limits.
- Evaluations, tracing, logs, and observability.
- Checkpoints, handoffs, and human approval.
- n8n for deterministic flows and integrations.
Method, quality, and delivery tools
Specifications, decision records, tests, code review, documentation, and observability determine how safely a team can evolve. That is why method is also part of my technical repertoire.
I use SDD to turn intent into verifiable criteria, Context Engineering to organize what people and agents need to know, Loop Engineering to shorten implementation and evaluation cycles, and Harness Engineering to create reliable limits, tools, and feedback around AI assisted execution.
- Spec Driven Development.
- Harness Engineering.
- Loop Engineering and Context Engineering.
- Code review and technical documentation.
- Automated testing and Playwright.
- Git, GitHub, and GitLab.
- Monorepos, Turborepo, and pnpm.
- ADRs, observability, and acceptance criteria.
How this repertoire reaches the client
I map what already exists before proposing replacements. Often the highest value path is to stabilize the current foundation, improve visibility, document decisions, and solve priority integrations.
When a product starts from zero, I choose a foundation that is simple enough for the moment and prepared to grow with evidence. The stack should increase company autonomy, bring technology closer to the business, and allow other people to continue the work.
Sources and further reading
This material presents my working approach and is educational. The right solution depends on the context, risks, and responsibilities of each project.
Share

