
Pila
Pila reads Apple Health and recommends how much to train based on your own history, calculated on the phone rather than against averages.
As a Tech Lead, I work across web, mobile, and AWS, use AI coding agents to deliver, and help teams adopt AI through clear rules.

Projects change. These are the skills I bring to each one.
I set up AI practices that are part of the daily work, and that people can follow and review.
I design systems that can change without breaking what clients depend on, and I plan migrations so they do not cause downtime.
Before building, I compare options and their tradeoffs. I make the assumptions explicit and validate decisions with the people involved.
I work with TDD and check edge cases.
I split work into clear steps, estimate each one, and mark where a person needs to review. If a question is still open, I write down the assumption.
In interviews, I look at how people reason about systems and how they review generated code. I am the tech lead of one team, and I helped development, design, product, and QA start working with AI.
2026 - present
2021 - 2026
2019 - 2021
I validate the design of each solution before building it, and I build it with TDD and planned edge cases. Agents do much of the work, and the decisions stay with me. This is the process I follow, and I write it into the briefs I give the agents.
MeI define what is in scope and what is not.
The agentsThe agents read the request, search every involved repository, and return the open questions.
MeI spend the most time here. I challenge options, validate product decisions with the PM, and remove assumptions before code is written.
The agentsThe agents propose options with tradeoffs and list every assumption they made. They help turn the selected approach into a spec.
MeI define the files, tests, exclusions, and contracts between repositories. I set the permissions and TDD requirements for each workstream.
The agentsThe agents work from repository briefs in their own worktrees. They follow the agreed API and database contracts.
MeI require every piece to start with a failing test for the right reason. I make edge cases part of the plan, including empty, zero, negative, duplicate, limit, and error paths.
The agentsThe agents implement and review each task separately. They do not change a test just to make it pass.
MeI check the evidence against the plan and decide whether the result is ready.
The agentsThe agents run the test suite and end-to-end checks in QA, and leave the command output, logs, and database state as evidence.
MeI authorize each merge explicitly and decide whether a rollback is needed after reviewing logs.
The agentsThe agents perform an exhaustive review before human review and monitor logs after the merge.
Hooks run on every agent command to enforce the rules before mistakes reach shared environments.
agent $ git push origin main
BLOCKED: git push to 'main' (current branch 'main'). Changes to master/main need explicit authorization from the human. Ask the user to run this command themselves with `!`.
agent $ npx jest
Blocked: test runner without a concurrency limit or above the maximum (free memory 37%, 0 test processes already running; maximum right now: 1 worker). - jest has no concurrency limit -> add `--maxWorkers=1` Run the command again with that limit.
agent $ git commit -m "fix login redirect"
commit-ticket: blocked The branch feature/ABC-12-login-redirect has the ticket ABC-12, so the message must be "[TICKET] description". Use: [ABC-12] fix login redirect
agent $ gh run rerun 4821 --failed
guard-actions: blocked Every rerun or wait for CI uses GitHub Actions minutes, and many organizations pay for them. Run locally the same checks that CI runs (tests, linter, scanners), and push only once for each batch of fixes.
agent $ git worktree list
~/app a1b2c3d [main] ~/worktrees/app/ABC-12 d4e5f6a [feature/ABC-12-login-redirect] ~/worktrees/app/ABC-14 9f8e7d6 [feature/ABC-14-export-csv]
I do the design, the backend, and the app myself, and I use these products to test ideas before I bring them to a team.

Pila reads Apple Health and recommends how much to train based on your own history, calculated on the phone rather than against averages.

PadelBump brings live professional padel to iPhone through Live Activities, with a backend that checks matches every 10 seconds.

TorneosPadelUy covers amateur padel tournaments across Uruguay, with one Expo and React Native codebase for iPhone and web.
I use these tools every day. Several of them enforce rules from the AI standard I contributed to.
I live in Montevideo, where I play padel and run. Padel led me to build TorneosPadelUy for amateur tournaments in Uruguay and PadelBump for live professional padel. Running inspired Pila, an app that reads Apple Health and helps me decide how much to train.
I am open to conversations about AI adoption, architecture, and technical leadership.
[email protected]LinkedInGitHub
Most of my work lives in private client repositories. © 2026 Santiago Hernández