Pinned Tweet
I am Emilio. I build systems, then write down what breaks.
Córdoba → Rome → Amsterdam → Barcelona. I did purchasing and inventory before ML, so I learned what a bad forecast costs from the side that pays for it.
Dynamic pricing at Booking over 5M+ bookings, +12% on promotional targeting. ETL at 2M+ transactions a day at Accenture. Now Ranuk IT Solutions: 28+ projects in four countries.
The lab is a Mac mini M4 in my apartment. 48 launchd daemons, a local model doing the boring calls, $0 cloud bill. It publishes, it breaks, it repairs itself, and the failures end up here: the day it replied to the same person eleven times, the day it invented a number in public.
This account is that notebook. Mechanisms, numbers I can show, and what broke. Portfolio, code and profile in the reply.
DeepInfer shaves a few milliseconds per token, but the real win is deterministic kernel selection. When you control the exact BLAS path you can lock latency, avoid jitter, and finally treat inference like any other microservice, not a black-box.
DeepSeek open-sourcing its inference engine is a rare gift for engineers: now we can inspect the kernels, serving details, and trade-offs instead of worshipping a polished API demo.
SQLite WAL on a local SSD and a single-binary daemon launched by launchd beats a sprawling Kubernetes stack for any job that just needs durability and low latency. Over-engineered cloud adds latency, moving parts, and failure modes you never wanted.
I built Ranuk-Profit-Bot to escape the 5-minute latency trap of ccxt's REST API. Trading on Binance's testnet, I hit the 1200ms round-trip delay for each order. The fix? ccxt.pro's WebSocket streams. github.com/RanuK12/Ranuk-Pro…
Anniversaries, birthdays, and historic events: own a permanent day on the web registry. Zero renewal fees, permanent ownership on Cloudflare D1. nameaday.ranuk.dev
We designed a zero-latency multiplayer canvas of 2500 tiles on the edge where every tile is purchased permanently with Stripe. Inspect the live state. reveal.ranuk.dev
Tired of airlines bumping fares when you refresh. Built an autonomous radar polling 48 carriers 24/7. When fares drop >40%, it pushes an instant Telegram alert with booking links. Open source. github.com/RanuK12/Flight-Pr…
Neural networks are not clean. Vanishing gradients, overfitting and a single NaN in the loss can eat a whole afternoon. Log the loss every step and stop the run on the first NaN.
A pricing model that scores well offline can still drift in production. Monitor the input distributions, not only the error metric, or the business will notice before you do.
Before adding another service, check what the extra network hop buys you. One well-tested process with clear module boundaries is easier to deploy, monitor and debug than a chain of small containers.
When an asyncio coroutine can hang, give it a deadline with asyncio.wait_for. An await with no timeout is a bug that only shows up in production. docs.python.org/3/library/as…
Running agents on a home machine taught me one rule: every job that touches the outside world needs a dedupe key and a lock. Two machines running the same cron will happily post twice, email twice, or announce income that never happened.
Persistent connections waste sockets under high concurrency and amplify idle‑time latency, while a well‑tuned connection pool reuses a limited set of connections, caps resource usage and keeps query response times stable.
Before you depend on a GitHub repo, check three things: is it archived, does it have a license, and when did a maintainer last ship. I packaged that check as an Apify actor: pass a list of repos, get each risk with a code and an explanation. $0.01 per repo; failed repos aren't billed the $0.01.
apify.com/emilio_ranucoli/gi…
Read the barriers in the latest ADA complaints: links with no text, unlabeled inputs, low-contrast step labels, missing alt. None of that needs a redesign. A label, an aria-label and a contrast fix in the checkout cover most of the list.
micourtsdaily.com/blind-cons…
ChatGPT plugins can now own a sidebar, panels and file viewers over MCP. If you build one, version-gate early: OpenAI-registered servers need MCP 2026-07-28 for multi-round forms, older connections still use the legacy flow. Negotiate, don't assume.
developers.openai.com/plugin…
Good read from Cloudflare on D1: keep management work off the hot path so queries never wait on it. Same rule in a Worker: the request path writes one row and returns; reconciliation, emails and reports run later.
blog.cloudflare.com/d1-contr…
Stripe made thin events GA for v1. Good default: the webhook only says "something changed", you fetch current state from the API, then write it keyed on the object id. Retries and out-of-order deliveries stop being your problem.
docs.stripe.com/changelog/en…
