AI ENGINEER · TEAM LEAD · MEXICO CITY

Hola, I’m Lorenzo Orozco.

Bring me
the messy
problem.

I work with the people who need the software, figure out what’s getting in their way, and build it with them. I lead a team of five in Platform Engineering at L’Oréal Americas and run 2Sunrise ↗.

AI & FORWARD DEPLOYED ENGINEERING

HUMAN CONTEXT. CONNECTED SYSTEMS.↗ AGENT SYSTEMS{ } BACKEND✳ PRODUCT

Agents that remember context and take actions.

MOVE YOUR CURSOR. CONNECT THE DOTS.

01 / SELECTED WORK

Here’s what
I’ve been building.

Client projects at 2Sunrise.
Inventory and commission systems at L’Oréal.

FOUNDER / 2SUNRISE

/01

2Sunrise. From a client’s problem to a working product.

I started 2Sunrise to work directly with clients, write the software, and stay involved after launch. These are a few of the projects I’ve built through the studio.

FounderAI products5+ clients
WUF

A WhatsApp pet-care agent that can pick up where the conversation left off.

10-5-3

Reads the monthly reports from 40+ branches and gets a review ready for the director.

Engineering framework

Keeps client work tied to agreed requirements and evidence that it is done.

A little more about the studio +

Working with clients

I work with clients from the first conversation through the build and into ongoing operation. The studio has worked with 5+ clients in Discovery, Build, and Operate engagements.

How we keep track of the work

I created our engineering framework so each ticket has agreed acceptance criteria and evidence that those criteria were met. CI checks, git hooks, skills, and automations help us keep that standard as we build.

Other studio projects

The studio’s work also includes a purchase flow with Lockton for Costco members and an AGSA pilot to recover accounting data from scanned records.

2SUNRISE / WUF / PRODUCTION

/02

A chat that remembers your pet.

I built WUF’s WhatsApp agent so a pet owner can come back to the conversation without starting over. It keeps context and can follow up or take action.

LangGraphNode.jsWhatsApp API

L’ORÉAL / SALONCENTRIC / QA

/03

Stock the warehouse can actually ship.

Showing stock you can’t ship means cancelled orders. I built three services to keep the numbers accurate across seven distribution centers. In QA: 7,279 SKUs and 98.8% job coverage.

PythonKafkaAzureCosmos DB
Why getting stock right was tricky +

What was going wrong

SAP reported stock in locations that could not ship orders. Adding it all together made too much stock look available. There were also products sharing a barcode, and warehouses that disappeared from SAP while their old stock stayed visible in OMS.

What I changed

I built and supported two Kafka consumers and a scheduled Python job through QA. The services now count the shippable location, re-read every SKU sharing a barcode before publishing the total, and send zero when a warehouse disappears. I confirmed that last rule with the product owner. An outbox keeps event ingestion separate from the slower work of resolving and publishing stock.

What the QA runs showed

A read-only check of 150 SKUs found 500 stale warehouse positions. The nightly load processed 7,279 SKUs in about 2 min 24 s. The job has 400 tests and 98.8% coverage, with parity tests that replay real QA data to check refactors.

QA results, September–October 2026.

INDEPENDENT BUILD / IOS / PRE-LAUNCH

/04

Tracksip, for a clearer picture of a night out.

I’m building Tracksip to make it easier to look back on a night out: what you drank, your calories, and your hydration. It’s a native iOS app, preparing for App Store launch.

SwiftUIStoreKit 2Supabase

2SUNRISE / COMMERCIAL OPERATIONS

/05

Forty branches, one monthly review.

Someone has to read the monthly reports and spot what’s missing. I built 10-5-3 to compare months, check compliance, and get the review ready for the commercial director.

AI agents40+ branchesReporting

L’ORÉAL / SALES & FINANCE / QA

/06

A clear reason for every commission.

When a commission doesn’t pay, finance needs a reason. I built the allocation job and recalculation API so each order line has an explainable decision. Kafka ingestion was a shared contribution.

PythonFlaskDecision engines
How the commission decisions work +

Giving finance an answer

Sales reps need the right credit, and finance needs a reason for every line that does not pay. Territory changes make this harder: the system has to use the rep who owned the territory on the order date. Missing master data also needs to reach someone who can fix it.

The part I owned

I built the allocation job and the Flask API for recalculating a date window, and contributed to Kafka ingestion. The core is a six-step Python rule engine with no I/O. It records each decision, uses territory history, and sends files to Xactly and the finance warehouse over SFTP. Locking and delivery tracking keep recalculations under control.

A QA example

One typical run processed 87 orders in 75 seconds: 75 decisions, 12 exceptions, and zero errors. It delivered 60 commission rows, 87 reporting rows, and a 90-territory history file. The allocation suite has about 300 tests and 88.9% coverage.

QA results, September–October 2026.

L’ORÉAL / PLATFORM ENGINEERING / OMS

/07

A shared toolbox for the OMS developers.

I led 10 vendor developers in building a shared engineering framework and toolbox for L’Oréal’s OMS teams. My work also includes QA agents and four testing skills.

Platform Engineering10 vendor developersClaude Code
The OMS toolbox and my QA work +

Tools for the OMS teams

In Platform Engineering, I led 10 vendor developers in building a shared engineering framework and developer toolbox for L’Oréal’s order management systems (OMS) teams.

Making the QA handoff easier

Writing the code is one part of finishing a story. Someone still needs to check that it does what the business asked for and leave evidence another person can review.

The agents I built

I contributed to L’Oréal’s internal AI-assisted delivery framework. I designed and built QA Analyst and QA Tester agents plus four skills that turn acceptance criteria into use cases, Gherkin tests, and an Excel evidence workbook. Each case points back to a requirement. The execution rules keep runs out of production, redact secrets, and require confirmation before writes.

Where I used the framework

I used the delivery framework across five inventory stories and extended its planning, debugging, and project documentation. The QA role itself is built on a feature branch.

MONICO / APPLIED AI

/08

The answer, with somewhere to point.

At Monico, I built retrieval that connects a question to the relevant passage in a legal document. The work brought together OCR, hybrid search, LangGraph, and evaluation on Azure.

RAGLangGraphAzure AI

IBERO / PHYSICS-INFORMED ML

/09

Where the physics comes in.

At IBERO, I used neural networks to model solar absorption and checked the predictions against experimental data. Research evaluation: 1,710 curve comparisons, R² 0.92, and MAE 0.00065.

Scientific MLPINNsPython

Project visuals are illustrative interface and system sketches. L’Oréal measurements are from September–October 2026 QA.

⌘
Curious how the pieces connect?Open the interactive L’Oréal system sketches.
+
L’ORÉAL / SALONCENTRIC

The right stock.
In the right place.

7,279SKUs validated across
7 distribution centers in QA

Three services. 15-minute deltas. A nightly resync.
QA measurements · September–October 2026.

SAP stockwarehouse movements
Product mastercatalog & identifiers
Python + Kafkaresolve · aggregate · validate
Sellable inventoryFluent Commerce OMS

02 / HOW I WORK

The code comes
after the conversation.

I want to understand the work
before I decide what the software should do.

01 / UNDERSTAND

Understand the job.

I ask people to walk me through the job they need to do. That’s usually where the missing rules and awkward handoffs become clear.

02 / BUILD

Build something we can try.

I build a working slice early, so we can test the idea before we commit to the whole thing.

03 / PROVE

Leave it in good shape.

I care about what happens after the first demo. The tests need to check the business rules, and the next person needs to understand the decisions.

03 / ABOUT ME

Physics was
the starting point.

I studied Physics Engineering at IBERO and got into machine learning through research on solar cells. I liked being able to test an idea against real data.

That curiosity took me into document AI, backend systems, and eventually building products with clients. Today I lead a team of five in Platform Engineering at L’Oréal Americas and run 2Sunrise.

Outside work, I’m usually playing football, swimming, gaming, or working on my Chinese.

Hola. Hello. 你好.Spanish · English · learning Chinese

04 / THE TOOLKIT

What I
reach for.

AI & ML

LangGraph · RAG · Claude Code · PyTorch · TensorFlow · Evaluation

Systems

Python · Node.js · TypeScript · Kafka · Azure · Cosmos DB · FastAPI

Products

React · SwiftUI · React Native · Supabase · StoreKit 2

Where I’ve used these ↗

LET’S TALK

Tell me what
you’re building.

Tell me about the role you’re hiring for, or a problem your team is stuck on. That’s enough to start a conversation.

Send me an email ↗

Or call +52 55 4443 8222 ↗