Mission log · 2013 — now
BrunoTagliani
I build agents that do real work, and the reliable systems underneath them.
Senior Software Engineer · Applied AI · Uruguay
Circle
circle.so ↗CircleAI: an in-product agent that runs real communities.
- Role
- Senior Software Engineer, Applied AI
- Dates
- March 2025 – Present
- Base
- Remote
Circle is an all-in-one platform for creators and brands to run communities, courses, and memberships. I work on CircleAI, the assistant community admins use to change real data: spaces, members, workflows, paywalls, events, and courses.
- Designed the human-in-the-loop layer for CircleAI’s tools. One declarative rule decides when an action needs approval, and the same approval card works for the main agent, the planner, and background subagents. Teammates have since adopted it across about a hundred tools.
- Hardened and extended the multi-step planner: Stop mid-execution, one approval card for parallel actions, idempotent decisions under row locks, and side effects moved out of database transactions.
- Gave an agent with hundreds of tools a lifecycle: tools persist per conversation, unload with their skill, and a small subagent prunes the ones a conversation no longer needs during compaction.
- Built CircleAI’s memory layers: community enrichment, structured fields, searchable past conversations, and “Dreaming,” a background process that consolidates what support tickets and sales calls reveal.
- Measured changes against real models before shipping them. A replayed planner failure went from 5/10 to 10/10; internal-ID leaks in replies went from 9 of 10 runs to none.
- Ruby on Rails
- React
- TypeScript
- Sidekiq
- Redis
- PostgreSQL + pgvector
- Elasticsearch
- Anthropic & OpenAI APIs
- ORBIT
- 07 · FRONTIER
- PAYLOAD
- APPLIED AI
- STATUS
- ACTIVE
CIRCLEAI · THE AGENT ENGINE
An agent that does real work
CircleAI isn’t a chat window over a model. It discovers the tools it needs, plans multi-step changes, asks before it touches anything risky, remembers what matters, and gets measured before it ships. These are the parts I built or hardened.
Component 01 / 07
Agent loop
A frontier model reads the admin’s request with enrichment, memory, and loaded skills, then calls tools. I made the loop self-healing: out-of-order tool results are re-paired before every request, and Stop now aborts mid-stream instead of 20 seconds later.
Select a component to inspect it
HUMAN IN THE LOOP
Ask first. Then do it right.
The confirmation belongs to the tool framework, not to individual tools. That one decision is what let approvals work the same everywhere, including inside plans and background jobs.
- One card for parallel actions: “Approve 3 actions?”, never three cards.
- Decisions carry the exact set of tool-call IDs. Double-clicks and second tabs can’t run a destructive tool twice.
- Claim under lock, execute outside it, reconcile under lock. No broadcasts or jobs inside a transaction.
- Stop works mid-plan and mid-stream, between tool calls and between tokens.
Illustration of the confirmation framework I built for CircleAI. Data is simulated.
CONTEXT & MEMORY
Context that compounds
Community admins shouldn’t have to repeat themselves, and an agent shouldn’t remember what it has no business knowing. I built four layers and the guardrails between them.
- Enrichment
- Facts computed from the database each session, cached, and injected as data, not instructions.
- Structured memory
- Predefined fields with scopes derived from code, never from the model, and optimistic locking.
- Episodic memory
- Idle conversations become searchable episodes: member-scoped, with date filters and ownership checks.
- Dreaming
- Background consolidation from support tickets, sales calls, and weekly digests, with ledgers, precedence rules, redaction, and a daily budget.
EVALUATION
Measured, not guessed
Agents fail in ways unit tests don’t see. So every behavioral change gets a before/after run against real models, with the caveats written down.
Replayed planner failure after resolve-before-mutate
ShippedRuns leaking internal IDs to users after one guardrail
ShippedRouting accuracy of the analytics subagent; fastest model tested
Shipped“Finish the rename after an approved delete” in a planner rework
In reviewBest-fitting skill found, replaying 900 production searches
In reviewPortrait
portraitcare.com ↗Systems for the business of aesthetics.
- Role
- Lead Software Engineer
- Dates
- May 2024 – March 2025
- Base
- Remote
Portrait helps aesthetics entrepreneurs launch and grow medspa businesses. I led engineering for the platform, from team practices to a new backend.
- Led a team of ten developers.
- Introduced Rails design patterns and mentored the team on Interactors.
- Led a revamp of the scheduling system that improved operational efficiency by 30%.
- Strengthened the architecture with KrakenD and Keycloak, and added AppSignal logging and error reporting.
- Directed the design and development of a new Rails 8 backend.
- Ruby on Rails 8
- React
- KrakenD
- Keycloak
- AppSignal
- ORBIT
- 06
- CREW
- 10 ENGINEERS
- EFFICIENCY
- +30%
TuneCore
tunecore.com ↗Getting independent music everywhere.
- Role
- Senior Software Engineer
- Dates
- December 2022 – April 2024
- Base
- Remote
TuneCore distributes independent artists’ music to streaming services and stores worldwide. I worked across its Ruby, React, and Go services.
- Built and maintained Ruby applications and integrated third-party service APIs.
- Worked with product management on specifications and delivery.
- Resolved performance bottlenecks and bugs, and developed automated test suites.
- Mentored junior developers and took part in code reviews.
- Ruby on Rails
- React
- Go
- Third-party APIs
- ORBIT
- 05
- SIGNAL
- GLOBAL
- STACK
- RUBY · GO
Decisiv
decisiv.com ↗Six and a half years keeping fleets moving.
- Role
- Lead Ruby on Rails Developer
- Dates
- May 2016 – December 2022
- Base
- Remote
Decisiv builds cloud service relationship management software for commercial vehicle maintenance and repair. My longest mission: senior engineer and, often, team lead.
- Upgraded a large monolith from Rails 3.2 to 4.2 and then 5.1.
- Migrated an Angular frontend to React and worked on Rails microservices.
- Built a portal with Rails 5 and Phoenix/Elixir that made access 40% faster.
- Led and mentored four developers with Agile Scrum, BDD, and TDD, delivering within budget and timeline constraints.
- Ruby on Rails
- React
- Elixir / Phoenix
- Python
- Microservices
- ORBIT
- 04
- DURATION
- 6.5 YEARS
- ACCESS
- 40% FASTER
HomeLight
homelight.com ↗Connecting buyers and sellers with the right agents.
- Role
- Senior Backend Engineer
- Dates
- August 2015 – May 2016
- Base
- Remote
HomeLight is a real estate platform that matches buyers and sellers with agents using data. I led backend API work behind its React frontend.
- Improved throughput from 40 to 1,500 requests per second.
- Cut application load time by 70%, to under three seconds.
- Led backend API projects and built authentication and structured data solutions.
- Built tested Rails components with RSpec and Cucumber.
- Ruby on Rails
- React
- RSpec
- Cucumber
- ORBIT
- 03
- THROUGHPUT
- 40 → 1,500 RPS
- LOAD
- −70%
iSeatz
iseatz.com ↗Booking engines for the travel industry.
- Role
- Backend Engineer
- Dates
- March 2015 – August 2015
- Base
- Remote · Through BairesDev
iSeatz builds custom booking solutions for airlines, hotels, and financial services companies.
- Built backend systems with Rails, ZeroMQ, Protocol Buffers, Redshift, Redis, and Chef.
- Refactored legacy APIs with attention to security, performance, and scalability.
- Sped up development by 20% and reduced maintenance by 20% through better code quality.
- Ruby on Rails
- ZeroMQ
- Protocol Buffers
- Redshift
- Redis
- Chef
- ORBIT
- 02
- VIA
- BAIRESDEV
- DEV SPEED
- +20%
WyeWorks
wyeworks.com ↗Where it all started.
- Role
- Ruby on Rails Developer
- Dates
- July 2013 – March 2014
- Base
- Montevideo, Uruguay
WyeWorks is a Montevideo software studio specializing in Ruby on Rails and React. It’s where I shipped my first production Rails code, and where this whole journey starts.
- Joined a Rails consultancy in Montevideo and learned to ship production software for clients.
- Ruby on Rails
- ORBIT
- 01 · HOME
- COORDINATES
- 34°54′S 56°12′W
- LAUNCH
- JULY 2013
End of transmission
Still based on Earth.
In Uruguay. Open to building the next agent that does real work.
Planet imagery built from textures by Solar System Scope (CC BY 4.0) and NASA Visible Earth. Milky Way: NASA/Goddard Space Flight Center Scientific Visualization Studio; Gaia DR2: ESA/Gaia/DPAC. Stars: ESA Hipparcos catalogue. Black hole rendered in real time; no affiliation with any film. Company logos belong to their owners and identify former employers only.