// Technical Lead · Solution Architecture · Software Engineering · Chile
const johnny = {
};
I build software and lead technical decisions across production systems, regional solutions, and platforms that need to evolve without stopping the business.
My work combines architecture, hands-on development, modernization, security, technical debt, and team mentoring.
I'm a Technical Lead and Software Engineer with more than a decade building and operating software in production.
Over the past few years my work evolved from development and team leadership into increasingly cross-cutting responsibilities: designing regional capabilities, modernizing platforms, technical assessments, security, technical debt strategy, and defining engineering standards.
I'm especially interested in the intersection between architecture and implementation. I don't want to move away from code to do architecture: I prefer to understand systems from their real behavior, their operational constraints, and the decisions that shape their evolution.
My next professional stage is focused on deepening Solution Architecture and cross-cutting technical leadership, while staying hands-on.
Ports and adapters isn't a pattern for tutorials. It's a way to keep infrastructure decisions from contaminating business rules that should survive a change of provider, framework, or persistence mechanism.
Technical debt can be a valid decision. What is dangerous is debt that nobody knows about, nobody measures, and nobody can prioritize. I prefer to make explicit what we are trading off, what it costs, and what condition should trigger resolving it.
Microservices, events, and independent components carry an operational cost. I prefer to start with clear boundaries and distribute only when there are real reasons of scale, autonomy, resilience, or ownership that justify paying that cost.
A perfect design on a diagram can be wrong in production. When a decision pits conceptual purity against consistency, traceability, or recoverability, I optimize for the system’s real behavior.
Timeouts, retries, idempotency, observability, and graceful degradation are not an afterthought. They are part of the architecture.
An architectural decision should be observable in contracts, code, deployments, metrics, and operations. If it only exists in a slide deck, it is not implemented architecture yet.
A TL should not become the only person who can answer hard questions. Documentation, automation, mentoring, PR reviews, and collaborative design should make the team progressively more autonomous.
I don't use it as autocomplete. I explore and propose before writing code, document non-obvious decisions as ADRs, and put every change through a bounded review before any PR. Technical judgment stays mine.
I design domain boundaries, contracts, integration strategies, persistence models, and architectural decisions that account for real operational, security, and evolution constraints.
I transform legacy systems and fragmented ecosystems through incremental plans, migration strategies, automation, and progressive risk reduction.
I analyze products and platforms across architecture, security, technical debt, operations, documentation, and team capacity, turning findings into prioritized roadmaps.
I support teams through design, mentoring, PR reviews, dojos, and solving complex problems. My goal is to increase autonomy, not centralize knowledge.
I run technical and post-incident reviews, prioritizing vulnerabilities, authentication/authorization, secrets, sensitive data, testing, observability, and maintainability.
Designed a regional capability to query products across multiple heterogeneous sources and countries, delivering a consistent contract to its consumers. The design prioritized per-origin adapters, tenant isolation, resilience, versionable contracts, and incremental evolution, avoiding premature distribution of a solution that could still preserve clear boundaries within a modular architecture.
Demonstrates: integration · multi-tenancy · resilience · API design · distribution decisions.
Designed a regional storage capability abstracted from the cloud provider, using a Valet Key pattern for direct transfer, persistent metadata, and asynchronous processing. The architecture separates control plane from data plane and uses consistency patterns such as Transactional Outbox.
Demonstrates: cloud architecture · security · async processing · consistency · portability.
Designed a regional, event-driven notifications capability with standard contracts, multi-tenant isolation, and reliable publishing. The goal was to prevent every product from building its own implementation to solve the same cross-cutting problem.
Demonstrates: event-driven architecture · contracts · platform thinking · multi-tenancy.
Designed a canonical regional model to consolidate existing task management implementations. The strategy used a state machine, reconciliation, and incremental Strangler Fig-style migration to reduce risk during the transition.
Demonstrates: domain modeling · legacy modernization · migration strategy · distributed systems.
Cross-cutting assessment of infrastructure, data, observability, services, shared libraries, security, and documentation. The result was not a list of problems, but a set of enablers, standards, and lines of action to reduce debt repeatably across teams.
Demonstrates: cross-cutting architecture · technical strategy · governance · prioritization.
Evaluated technology domains across product, architecture, operations, demand, UX, security, documentation, and capacity. Findings were turned into short, medium, and long-term plans with metrics, owners, and prioritization mechanisms.
Demonstrates: technology strategy · product thinking · governance · portfolio.
Post-incident technical audit of a mobile SuperApp shared across multiple applications. The analysis separated immediate risk from structural debt, prioritizing exposure of secrets and PII, storage, authentication/authorization, logging, testing, and maintainability.
Demonstrates: application security · code review · risk prioritization · engineering quality.
Technical leadership of regional solutions and cross-cutting work across internal retail products. My scope combines hands-on development with architecture design, modernization, technical assessments, security, and team mentoring.
I joined as a Software Engineer and progressively took on technical leadership over regional modules.
I led the initial design of a new gas station platform built on Azure, DDD, and Event-Driven Design, coordinating decisions with technical and business stakeholders.
Modernization and regionalization of the billing core, applying hexagonal architecture to per-country integration.
Co-led the technical evolution of ClassTrack, a SaaS curriculum management platform used by approximately 200 schools and 50,000 students.
Earlier Experience
Modernization of an educational platform and infrastructure migration to AWS.
Modernization of internal systems, Git/Jira adoption, and ERP evolution.
Web application development and solutions for various clients.
Engineering that can be defended
I write about architecture, technical decisions, modernization, engineering tooling, and lessons learned working with real systems.
Read on Medium →> Architecture & Engineering Consulting
I work with teams that already build software but need a second perspective to tackle modernizations, technical debt, system design, security, or complex architectural decisions.
Areas where I can help
Development
I work on development projects of any size: from a form or a small fix to a full platform. I apply the same architectural rigor regardless of scale.