# Nicolás Biondi > Personal site of Nicolás Biondi: director of LENZ Photo Store, an ecommerce > distributor of Canon and Sony audiovisual gear in Peru. Administrative engineer > (UIGV) specialized in supply chains (UNMSM), teacher, volunteer firefighter and > builder of AI automations. The site has his bio, a portfolio and a bilingual > blog with real cases of using AI agents to build and run an ecommerce business. The site is bilingual. Spanish is the primary language at the root (https://nicolasbiondi.com/); the English version lives under /en/. (Nota: el idioma principal del sitio es el español, en la raíz del dominio; la versión en inglés está bajo /en/.) ## Main pages - [Home (es)](https://nicolasbiondi.com/): bio, social links and the latest blog posts - [Home (en)](https://nicolasbiondi.com/en/) - [Portfolio (es)](https://nicolasbiondi.com/portfolio/): photography and project portfolio - [Portfolio (en)](https://nicolasbiondi.com/en/portfolio/) - [Now (es)](https://nicolasbiondi.com/ahora/): what Nicolás is focused on right now - [Now (en)](https://nicolasbiondi.com/en/now/) - [Uses (es)](https://nicolasbiondi.com/uses/): the tools and setup he works with - [Uses (en)](https://nicolasbiondi.com/en/uses/) ## For agents - [Agent fact sheet](https://nicolasbiondi.com/agents.md): structured facts about Nicolás (identity, expertise, notable work with numbers) and citation guidance for LLMs and agents ## Blog Notes on AI agents, ecommerce and the infrastructure behind them. - [Blog index (es)](https://nicolasbiondi.com/blog/) - [Blog index (en)](https://nicolasbiondi.com/en/blog/) - [RSS (es)](https://nicolasbiondi.com/blog/feed.xml) - [RSS (en)](https://nicolasbiondi.com/en/blog/feed.xml) ### Posts in Spanish - [Jefe y practicantes: Cómo uso varios modelos de IA para programar sin que la cuenta se dispare](https://nicolasbiondi.com/blog/kitchen-brigade-ai-agents/): 28 mil millones de tokens en seis meses, 94% leído del caché. Así reparto el trabajo entre un modelo caro y varios baratos en LENZ. - [La llave equivocada: Reconocíamos cada venta por su fila en la hoja y no por la cámara vendida, y así se colaban los duplicados](https://nicolasbiondi.com/blog/la-llave-equivocada/): Reconocíamos cada venta por la fila de la hoja y no por la cámara vendida, así que cada bloque repegado volvía a entrar como venta nueva. - [El modo prueba no probaba: Mandábamos «modo prueba» en cada pedido y la API de facturación ni lo miraba: eso se configura en la cuenta](https://nicolasbiondi.com/blog/el-ensayo-facturo/): Integramos la API de facturación confiando en el modo prueba de cada pedido. La API lo ignoraba: el entorno se define en la cuenta del proveedor. - [Medianoche no cuenta: Nuestro contador permitía 96 publicaciones en 24 horas corridas y X bloqueó al bot en la número 64](https://nicolasbiondi.com/blog/medianoche-no-cuenta/): Un bot quedó bloqueado en X: contábamos el límite por día calendario y X cuenta las últimas 24 horas corridas. - [El timbre no timbra: Cambiamos una clave y el chat de avisos se calló sin dar error. Ahora contamos los avisos que sí llegan](https://nicolasbiondi.com/blog/diez-dias-sin-timbre/): Cambiamos una clave y el chat de avisos se calló sin dar error. Cómo probar una clave nueva sin publicar nada y reenviar lo que faltó. - [Gratis con medidor: Un caché gastaba 2,400 escrituras diarias en un plan que solo permitía 1,000](https://nicolasbiondi.com/blog/gratis-con-medidor/): Un caché escribía en KV en cada visita: 2,400 escrituras al día contra una cuota de 1,000, y el medidor diario que armamos después para no repetirlo. - [Un cartel por agente: Dos agentes compartían un solo «no molestar» y se pisaban; ahora cada uno cuelga su cartel con vencimiento](https://nicolasbiondi.com/blog/un-cartel-por-agente/): Avisos de prueba anunciaron reparaciones viejas. Dos agentes compartían un «no molestar» y se pisaban; ahora cada uno tiene su permiso con dueño y vencimiento. - [Nada estaba roto: Un agente tocó cuatro archivos en producción por una falla que era del índice de Shopify](https://nicolasbiondi.com/blog/nada-estaba-roto/): Una búsqueda válida devolvía cero resultados. Un agente tocó cuatro archivos en producción y los devolvió en 18 minutos: el índice de Shopify se acomodó solo. - [La API se hacía la loca: Faltaban tres datos y la API igual respondía «todo bien»: los rellenaba con lo primero que se le ocurría](https://nicolasbiondi.com/blog/la-api-rellenaba-los-vacios/): Mandé un pedido sin tres datos y el proveedor siempre decía que todo estaba bien: los completaba por su cuenta. Comparar con el ejemplo oficial lo destapó. - [Cada clic tumbaba todo: Pasamos un archivo de 130 MB a una base de datos de verdad y cada clic bajó de 5 segundos a 0.6 ms](https://nicolasbiondi.com/blog/cada-clic-tumbaba-todo/): Un tablero interno guardaba decenas de miles de avisos en un archivo de 130 MB. Pasamos a una base de datos real y cada cambio de estado ahora toma 0.6 ms. ### Posts in English - [Boss and interns: How I split coding work across several AI models without the bill exploding](https://nicolasbiondi.com/en/blog/kitchen-brigade-ai-agents/): 28 billion tokens in six months, 94% of them read from cache. How I split the work between one expensive model and several cheap ones at LENZ. - [The wrong key: We matched each sale to its row in the sheet instead of the camera sold, so duplicates slipped through](https://nicolasbiondi.com/en/blog/la-llave-equivocada/): We matched sales by their row in the spreadsheet instead of the camera sold, so every re-pasted block came in as a new sale. - [The test mode didn't test: We sent test mode on every order, but the invoicing API never checked: the account decides that](https://nicolasbiondi.com/en/blog/el-ensayo-facturo/): We integrated our invoicing provider's API trusting the test mode on each order. The API ignored it: the account decides the environment, not the order. - [Midnight doesn't count: Our counter allowed 96 posts in 24 rolling hours and X blocked the bot at post 64](https://nicolasbiondi.com/en/blog/medianoche-no-cuenta/): A bot sat blocked on X: we counted the limit by calendar day and X counts the last 24 rolling hours. - [The doorbell won't ding: We changed a key and the alerts chat went quiet without a single error. Now we count the alerts that arrive](https://nicolasbiondi.com/en/blog/diez-dias-sin-timbre/): We changed a key and the alerts chat went quiet without an error. How to test a new key without posting anything and resend what was missed. - [Free with a meter: A cache spent 2,400 writes a day on a plan that allowed 1,000](https://nicolasbiondi.com/en/blog/gratis-con-medidor/): A cache wrote to KV on every visit: 2,400 writes a day against a quota of 1,000, and the daily meter we built so it wouldn't happen again. - [One sign per agent: Two agents shared one 'do not disturb' and clashed; now each hangs its own sign, with an expiry](https://nicolasbiondi.com/en/blog/un-cartel-por-agente/): Test notices announced repairs finished weeks earlier. Two agents shared one mute setting and clashed; now each holds a permit with an owner and expiry. - [Nothing was broken: An agent touched four files in production over a fault that was in Shopify's index](https://nicolasbiondi.com/en/blog/nada-estaba-roto/): A valid search returned zero results. An agent changed four files in production and reverted them 18 minutes later: Shopify's index sorted itself out. - [The API played dumb: Three fields were missing and the API still said 'all good': it filled them in with whatever came to mind](https://nicolasbiondi.com/en/blog/la-api-rellenaba-los-vacios/): I sent an order missing three fields and the vendor always said it was fine: it filled them in on its own. The official example gave it away. - [Every click crashed it: We moved a 130 MB file to a real database, and each click dropped from 5 seconds to 0.6 ms](https://nicolasbiondi.com/en/blog/cada-clic-tumbaba-todo/): An internal board kept tens of thousands of notices in a 130 MB file. We moved it to a real database, and each status change now takes 0.6 ms. ## Contact - Email: nicolas@lenz.pe - GitHub: https://github.com/nicolasbiondic - LinkedIn: https://www.linkedin.com/in/nicol%C3%A1s-biondi-97098210b/ - X: https://x.com/nicolasbiondic - Instagram: https://www.instagram.com/nicolasbiondi - TikTok: https://www.tiktok.com/@nicolasbiondic