Consolidated a Spring Boot microservice architecture into fewer deployable units with hexagonal Maven modules.
I design, build, deploy and operate software in production.
I'm Cristhian Soto, Full Stack Developer. Backend in Java 21 and Spring Boot with hexagonal, multi-tenant architecture, frontend in Nuxt and infrastructure on Azure.
What I use, and how far I go with it.
Every level comes from real repositories, commits and deployments. No made-up percentage bars.
Backend
8 / 8- Java 21 Advanced
- Spring Boot 3.5 Advanced
- Spring Security Advanced
- Hexagonal architecture Advanced
- Flyway Advanced
- JPA / Hibernate Solid
- Spring AMQP Solid
- Drools Basic
Frontend
8 / 8- Nuxt 3 / 4 Advanced
- Vue 3 Advanced
- BFF with httpOnly cookies Advanced
- TypeScript Advanced
- Nuxt UI Solid
- Tailwind CSS 4 Solid
- Pinia Solid
- Astro Basic
Data
5 / 5- MySQL 8 Advanced
- PostgreSQL Solid
- Drizzle ORM Solid
- Per-service DB users Solid
- SQLAlchemy / Alembic Basic
Cloud & CI/CD
7 / 7- Azure Container Apps Advanced
- Azure Container Registry Advanced
- Docker Solid
- GitHub Actions + OIDC Solid
- Azure DevOps Solid
- Netlify Solid
- Cloudflare Workers Basic
Security
4 / 4- Keycloak / OIDC / JWT Advanced
- Multi-tenant isolation Advanced
- Role matrix Solid
- Keychain-held secrets Solid
Payments & messaging
7 / 7- ePayco Advanced
- Credibanco Solid
- OpenPay Solid
- WhatsApp Cloud API Solid
- SendGrid / MailerSend Solid
- Sigma Móvil (SMS) Solid
- Wompi Basic
AI & agents
5 / 5- Python 3.12 Solid
- FastAPI + Pydantic Solid
- LangGraph Solid
- OpenAI SDK Basic
- Pipedrive API Basic
Testing
4 / 4- JUnit 5 + MockMvc Advanced
- pytest + mypy strict Solid
- Vitest Solid
- Bruno Solid
Ideamosmas
I design, build, deploy and operate backend services, web frontends and AI agents for ecommerce, payments, promotions and messaging products.
Isolated tenants with a per-request TenantContext across the platform's services, with an enforcement flag rolled out service by service.
Ran and documented production deployments with verified images, traffic-controlled revisions and rollback.
Built the ePayco checkout: wallet, saved cards and a scheduled reconciler, backed by a broad test suite.
Moved the admin panel's authentication to a Nuxt BFF with httpOnly cookies and Keycloak JWTs.
Fixed in production the rejection of foreign customers' payments and sized the Postgres pool to the real connection budget.
Built a WhatsApp support agent with FastAPI and LangGraph, covered by automated tests.
Built the Gane web portal frontend and its backend integrations: wallet top-ups, checkout and session.
Built the campaign engine with Drools, the Nuxt panel and the reports over Postgres.
Migrated pipelines from Azure DevOps and Bitbucket to GitHub Actions with OIDC into Azure.
I measure before I claim.
Principles you can open and check: each one has a document, a commit or a runbook behind it.
Every deploy leaves evidence and a way back.
Image, digest, revision, verified startup and rollback plan, written before running it.
A check that cannot fail is not a check.
Every check carries a positive and a negative control.
Measured, assumed or not read.
I keep what I saw apart from what I inferred, in docs, tickets and reports.
Tenants are isolated in code and in the database.
Per-request tenant context, plus migrations and history tables per service.
AI executes; I direct and audit.
Agents with separate roles, evidence gates and a read-back of the values read back.
Secrets never touch the disk.
Tokens in the system keychain, out of the agent's context and the final image.
Where I applied it.
Production systems for Ideamos Más clients, live sites and one side project.
Gane web portal
Frontend and backend integrations: digital wallet top-ups, checkout, session handling and WhatsApp webview.
Visit siteMulti-tenant ecommerce
Hexagonal Spring Boot microservices, Nuxt storefront and admin panel, ePayco and Credibanco checkout.
Notifications platform
I designed and built both services on my own: an email and SMS gateway on SendGrid, MailerSend and Sigma Móvil with delivery webhooks, and an orchestrator with templates and Quartz-scheduled sends.
Exploreti
WhatsApp purchase flow, ePayco integration, provider-portal endpoint hardening and CI on GitHub Actions.
Visit siteWhatsApp agents
Support agent built on a state machine, plus a WhatsApp Business onboarding backend.
Promotions platform
Campaign rules engine, multi-site panel and business reports.
ideamosmas.com
Full redesign and migration to Nuxt, with a per-product brand color system.
Visit siteRaffle platform
Raffle organization with a payment validation panel.
Education and languages
Systems Engineering
Artificial Intelligence Bootcamp (Basic Level)
How do you want your website?
Portfolio, landing page, company site or a custom web app. Tell us the idea and we design it your way.
Portfolio
Your work presented clearly: fast, bilingual and easy to update.
Get a quoteLanding page
One focused page that turns visits into clients, with analytics.
Get a quoteCompany website
Several sections, multilingual and easy to manage.
Get a quoteWeb application
Dashboards, payments and integrations built for your business.
Get a quoteShall we build something that reaches production?
Java/Spring backends, Nuxt frontends, payment integrations or WhatsApp agents.
crsoto2003@gmail.com