Available for new projects Cali, Colombia · UTC−5

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.

Portrait of Cristhian Francisco Soto Portilla
Backend
Java · Spring Boot
hexagonal architecture
Frontend
Nuxt · Vue
secure BFF
Cloud
Azure
Container Apps · CI/CD
Multi-tenant
Per-client isolation
code and database
Payments
ePayco · Credibanco
OpenPay · Wompi
AI
WhatsApp agents
Python · LangGraph
01 / stack

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
02 / experience

Ideamosmas

Full Stack Developer
Jan 2024 — present · Colombia

I design, build, deploy and operate backend services, web frontends and AI agents for ecommerce, payments, promotions and messaging products.

JavaSpring BootNuxtVueTypeScriptPythonMySQLPostgreSQL
01Architecture

Consolidated a Spring Boot microservice architecture into fewer deployable units with hexagonal Maven modules.

spring boot · maven · hexagonal
02Multi-tenant

Isolated tenants with a per-request TenantContext across the platform's services, with an enforcement flag rolled out service by service.

spring security · flyway · mysql
03Operations

Ran and documented production deployments with verified images, traffic-controlled revisions and rollback.

container apps · acr · netlify
04Payments

Built the ePayco checkout: wallet, saved cards and a scheduled reconciler, backed by a broad test suite.

epayco · junit · mockmvc
05Security

Moved the admin panel's authentication to a Nuxt BFF with httpOnly cookies and Keycloak JWTs.

nuxt · nitro · keycloak
06Incidents

Fixed in production the rejection of foreign customers' payments and sized the Postgres pool to the real connection budget.

postgres · epayco · azure
07AI

Built a WhatsApp support agent with FastAPI and LangGraph, covered by automated tests.

python · langgraph · openai
08Frontend

Built the Gane web portal frontend and its backend integrations: wallet top-ups, checkout and session.

nuxt · pinia · spring boot
09Promotions

Built the campaign engine with Drools, the Nuxt panel and the reports over Postgres.

spring boot · drools · nuxt
10CI/CD

Migrated pipelines from Azure DevOps and Bitbucket to GitHub Actions with OIDC into Azure.

github actions · oidc
03 / how i work

I measure before I claim.

Principles you can open and check: each one has a document, a commit or a runbook behind it.

01

Every deploy leaves evidence and a way back.

Image, digest, revision, verified startup and rollback plan, written before running it.

↳ deployment runbook
02

A check that cannot fail is not a check.

Every check carries a positive and a negative control.

↳ program doctrine
03

Measured, assumed or not read.

I keep what I saw apart from what I inferred, in docs, tickets and reports.

↳ MEASURED / ASSUMED marks in every runbook
04

Tenants are isolated in code and in the database.

Per-request tenant context, plus migrations and history tables per service.

↳ tenant context in every service
05

AI executes; I direct and audit.

Agents with separate roles, evidence gates and a read-back of the values read back.

↳ architect's guide
06

Secrets never touch the disk.

Tokens in the system keychain, out of the agent's context and the final image.

↳ token verified out of the image
04 / projects

Where I applied it.

Production systems for Ideamos Más clients, live sites and one side project.

web · betting & paymentsLive
G

Gane web portal

Frontend and backend integrations: digital wallet top-ups, checkout, session handling and WhatsApp webview.

Nuxt 3PiniaSpring BootJWT
Visit site
platform · B2BLive
{ }

Multi-tenant ecommerce

Hexagonal Spring Boot microservices, Nuxt storefront and admin panel, ePayco and Credibanco checkout.

Java 21Spring BootNuxtKeycloakAzure
infra · built soloLive
@

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.

Java 21Spring BootQuartzSendGridMailerSendSigma Móvil
web · tourism bookingsLive
E

Exploreti

WhatsApp purchase flow, ePayco integration, provider-portal endpoint hardening and CI on GitHub Actions.

Nuxt 4DrizzlePostgreSQLePayco
Visit site
AI · messagingLive
>_

WhatsApp agents

Support agent built on a state machine, plus a WhatsApp Business onboarding backend.

PythonFastAPILangGraphPostgreSQL
web · subscriptions & paymentsLive
P

Movid parking web

Parking subscriptions and card payments with Credibanco and OpenPay.

Nuxt 3Nuxt UICredibancoOpenPay
Visit site
campaigns · reportsLive
%

Promotions platform

Campaign rules engine, multi-site panel and business reports.

Spring BootDroolsNuxt 3Cloudflare
web · company siteLive
I

ideamosmas.com

Full redesign and migration to Nuxt, with a per-product brand color system.

Nuxt 4Tailwind CSS 4Netlify
Visit site
web · SaaSLive
C

Controlo

Contributions to the Nuxt app and the Astro landing pages.

NuxtAstroNetlify
Visit site
web · contributionLive
M

Parking Mobile

Lead-conversion analytics event on the thank-you page.

AstroAnalytics
Visit site
personalSide project
#

Raffle platform

Raffle organization with a payment validation panel.

Next.jsPrismaSupabaseNextAuth
05 / education

Education and languages

2020 — 2024

Systems Engineering

Universidad de San Buenaventura Cali
2025

Artificial Intelligence Bootcamp (Basic Level)

Machine Learning
Languages
SpanishNative speaker
EnglishB2
06 / made for you

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 quote

Landing page

One focused page that turns visits into clients, with analytics.

Get a quote

Company website

Several sections, multilingual and easy to manage.

Get a quote

Web application

Dashboards, payments and integrations built for your business.

Get a quote
07 / contact

Shall we build something that reaches production?

Java/Spring backends, Nuxt frontends, payment integrations or WhatsApp agents.

crsoto2003@gmail.com