Production and Data Engineering.
My vision of technology is forged in the trenches. I have spent over a decade operating critical platforms and designing analytical ecosystems where fault tolerance and SLA compliance are non-negotiable. FSdata is my logbook on data governance, high-performance architectures, observability, and applied artificial intelligence (LLMOps).
Writings
-
AIOps in Production: DevOps Guru, CloudWatch Anomaly Detection, and Dynatrace Davis
Technical analysis of AIOps tools for critical environments. Comparison between Amazon DevOps Guru, CloudWatch Anomaly Detection, and Dynatrace Davis AI.
⏱️ 4 min read -
Evaluating the SpaceX IPO: An Autopsy of Capital
Financial and praxeological analysis of the SpaceX IPO. Evaluating the IPO price against its intrinsic value based on cash flows and competitive moats.
⏱️ 5 min read -
Billing Shock and the Limit of Autonomous CI/CD
Why AWS and Azure have introduced billing circuit breakers to stop the cost overruns generated by AI agents caught in infinite CI/CD loops.
⏱️ 3 min read -
DORA breaks MTTR: Human-MTTR vs Agent-MTTR in the agentic era
DORA updates DevOps performance metrics by splitting the classic MTTR into Human-MTTR and Agent-MTTR to measure autonomy in incident resolution.
⏱️ 3 min read -
WebAssembly Takes the Crown as the Standard Sandbox for AI Agents
We analyze why WebAssembly is the CNCF's proposed sandbox to isolate autonomous AI agents and protect the local developer environment from malicious code.
⏱️ 2 min read -
Beyond log summarization: the year AI agents took over the pager
Analysis of the 2026 paradigm shift in incident management with autonomous AI agents that isolate networks and propose hotfixes.
⏱️ 4 min read -
Autonomous Agents or Glorified Orchestration? My Take on Cloud AI Live Madrid 2026
A critical analysis of Google Cloud’s agentic era, dissecting the keynote and live demos at IFEMA and providing a secure SQL execution pattern.
⏱️ 5 min read -
The Cantillon Effect and the Gold Rush: Why New Money Doesn’t Reach Everyone at Once
Explaining the Cantillon effect through a real gold rush story. How localized monetary injections distort prices and resource allocation.
⏱️ 6 min read -
The agent debate: Qwen3.7 Max, Linux, and the code that writes itself
Technical analysis on agentic workflows, Qwen3.7 Max autonomy, and the use of Google-managed Linux environments for development.
⏱️ 3 min read -
DevOps Agents on call: when AI wakes up before you do
How the Commonwealth Bank of Australia uses DevOps AI Agents to investigate incidents at 2 a.m., drastically reducing downtime.
⏱️ 3 min read -
Gemini Goes Agentic: From toy chat to compiling Android in the browser
Technical analysis of Gemini's agentic capabilities and Google AI Studio's new Build Mode for developing native Android apps.
⏱️ 5 min read -
Demand for AI Developers
Analysis of how the reduction in code production costs thanks to AI is multiplying the volume of software and skyrocketing the demand for developers.
⏱️ 2 min read -
Multi-agent Coordination and Evaluation
How the Supervisor-Worker pattern optimizes multi-agent orchestration, reducing hallucinations and making evaluation easier in LLM pipelines.
⏱️ 2 min read -
Tool Integration and the MCP Protocol
Technical introduction to the Model Context Protocol (MCP). Learn how to expose local tools to equip LLMs with real capabilities through servers.
⏱️ 2 min read -
Antigravity 2.0: The Evolution Toward "Agent-First" Development
Technical analysis of Antigravity 2.0 and its Agent-First approach. How this tool orchestrates dynamic subagents to automate complex architectures.
⏱️ 7 min read -
Artificial productivity and technical debt
Analysis on the risks of blind adoption of generative AI in software development. How AI slop skyrockets corporate technical debt in the long run.
⏱️ 3 min read -
Governance and Guardrails in Production
Implementation of guardrails and human-in-the-loop barriers to govern AI agents in production, preventing destructive actions from compromising your software.
⏱️ 2 min read -
Agent Fundamentals and State Management
Explores the technical fundamentals of AI agents. How ReAct decision loops work and memory management strategies to prevent hallucinations.
⏱️ 3 min read -
Why dashboards aren't enough: the need for raw data
Why business users ask to download in Excel and how transaction-level exploration solves the limitations of rigid BI dashboards.
⏱️ 3 min read -
Does building more housing help lower the price?
Economic analysis on whether the increase in new construction permits and the building of homes manage to mitigate the rise in prices in Spain.
⏱️ 5 min read -
Knowledge bases governed by LLMs
Technical workflow for using LLMs as autonomous librarians that process raw documents and maintain a knowledge base in Markdown.
⏱️ 4 min read -
From Zero to Production: My Own Static Generator in Python
Architectural guide on how to replace complex frameworks with a minimalist static generator in Python, using Markdown, Jinja2, and GitHub Pages.
⏱️ 2 min read -
Why single-agent workflows are dead
Discover why single-agent workflows saturate LLMs. A practical guide to designing specialized agent teams with immutable state and fault tolerance.
⏱️ 4 min read -
Agent Payment Protocol (AP2): Autonomous and secure payments in the age of agents
The Agent Payment Protocol (AP2) acts as a security layer to delegate purchases to artificial intelligences using digital mandates, without exposing your credit card.
⏱️ 4 min read -
The end of the "Senior" wildcard: Why system architecture matters now more than ever
Reflection on the role of the Senior developer in the era of generative AI. Why system design and software architecture are now more critical than writing code fast.
⏱️ 2 min read -
My First Local Open Source Model: Running Llama 3 on My Own Laptop
Technical analysis of how to run Large Language Models (LLMs) like Llama on local hardware. The impact of quantization (GGUF) and Ollama in democratizing AI without relying on third-party APIs.
⏱️ 2 min read -
RAG (Retrieval-Augmented Generation): AIs can finally query the enterprise database
Implementation of the RAG (Retrieval-Augmented Generation) architecture to provide private enterprise context to LLMs using vector databases.
⏱️ 2 min read -
Prompt Engineering and the LangChain ecosystem
Introduction to LangChain and Prompt Engineering. How to orchestrate chains of Language Model (LLM) calls to build complex applications that go beyond simple chat.
⏱️ 2 min read -
From microservices back to the monolith: The Amazon Prime Video case and the cost of the network
Rigorous analysis of the Amazon Prime Video case, which reduced its infrastructure costs by 90% by migrating from serverless microservices to a monolithic architecture.
⏱️ 2 min read -
ChatGPT changes everything: The day the conversational interface dethroned the classic search engine
Technical analysis of the ChatGPT launch. How fine-tuning via RLHF has transformed a language model into a conversational assistant that threatens traditional web search.
⏱️ 2 min read -
Web3, NFTs, and why data engineers view the blockchain with skepticism
Technical critique of the Web3 and NFT bubble. Analysis of the inefficiency of the blockchain as a database compared to traditional centralized transactional solutions.
⏱️ 2 min read -
GitHub Copilot and my first days doing pair programming with an AI
First impressions using GitHub Copilot (Codex) to program. Technical reflection on how language models will transform developers into code reviewers.
⏱️ 2 min read -
Snowflake vs BigQuery: The war for the cloud Data Warehouse
Architectural comparison between Snowflake and Google BigQuery. Analysis of compute and storage separation, and cost management (FinOps) in cloud analytical databases.
⏱️ 2 min read -
The pandemic, forced remote work, and how corporate VPNs weren't ready
Technical lessons from the forced migration to remote work during the lockdown. The collapse of traditional VPNs (Hub and Spoke) and the acceleration toward Zero Trust architectures.
⏱️ 2 min read -
GPT-2 and OpenAI's fear of releasing the full model: Marketing or technical prudence?
Technical analysis of GPT-2 and the "Decoder-only" Transformer architecture. Reflection on OpenAI's decision to withhold the model claiming it is dangerous and the future of AI-generated text.
⏱️ 2 min read -
From Monoliths to Microservices: When It Makes Sense and When It's a Suicide
Critique of the blind adoption of microservices architectures. Technical analysis of network latency and transactional complexity versus the simplicity of the classic monolith.
⏱️ 2 min read -
GDPR goes into effect this week: Why anonymizing legacy databases is a nightmare
The technical and architectural challenges of the GDPR. The nightmare of applying the right to be forgotten and pseudonymization in legacy relational databases.
⏱️ 2 min read -
Cloud Data Warehouses: Comparing Redshift and BigQuery after using both in production
Technical comparison of cloud analytical databases. Production experience managing Amazon Redshift clusters versus Google BigQuery's serverless architecture.
⏱️ 2 min read -
It took me a month to understand it, but the "Attention Is All You Need" paper is brilliant
Technical analysis of the paper "Attention Is All You Need". How the Self-Attention mechanism of Transformers is revolutionizing Natural Language Processing.
⏱️ 2 min read -
Data Lakes: The future or a "Data Swamp"?
Critique of the Data Lakes trend. Risks of dumping raw data without governance and the fundamental difference between Schema-on-read and Schema-on-write.
⏱️ 2 min read -
Introduction to Apache Kafka: The central nervous system of your data
Introduction to Apache Kafka as a distributed commit log. Why real-time processing (streaming) is replacing traditional batch ETL processes.
⏱️ 2 min read -
AlphaGo defeats Lee Sedol: Watching the games live and understanding that this has moved faster than we thought
Technical analysis of AlphaGo's victory over Lee Sedol. Differences between classic brute force (Deep Blue) and Deep Reinforcement Learning.
⏱️ 2 min read -
Wrestling with TensorFlow: My first ML scripts a month after Google released it
First experiences programming neural networks with TensorFlow after its release by Google. Analysis of static computational graphs and its learning curve.
⏱️ 2 min read -
The Hadoop ecosystem: HDFS, YARN and Apache
Survival guide in the complex Apache Hadoop ecosystem. Technical explanation of the separation between storage (HDFS) and compute resource management (YARN).
⏱️ 2 min read -
The performance wall: When your Data Warehouse no longer scales
Technical analysis of the physical limit of traditional Data Warehouses. Differences between SMP (Scale-up) and MPP (Scale-out) architectures, and the introduction of columnar storage.
⏱️ 2 min read -
Tinkering with Apache Spark 1.0 locally: Will this kill my MapReduce jobs?
Technical analysis of Apache Spark 1.0. Why its in-memory processing paradigm (RDDs) means the imminent end for slow disk-based Hadoop MapReduce jobs.
⏱️ 2 min read -
Integrating image scripts into corporate data flows
How to integrate massive image processing and compression (ImageMagick/Python) into data flows (ETL) to automate e-commerce catalogs.
⏱️ 2 min read -
My Kickstarter Pebble has arrived: Hacking in pure C to make my Watchface
First impressions of the Pebble smartwatch. Technical experience programming a custom watchface using its SDK in pure C.
⏱️ 2 min read -
R.I.P. Google Reader (2005 - 2013): Closes today and the web loses a bit of its soul
A tribute to Google Reader after its definitive shutdown on July 1, 2013. Technical analysis of RSS technology versus the rise of closed feeds and social media algorithms.
⏱️ 2 min read -
The Snowden case: Encryption, databases, and our ethical responsibility as computer scientists
Technical and ethical reflection following Edward Snowden's leaks about the PRISM program. The importance of encryption at rest and our responsibility over data.
⏱️ 2 min read -
Enterprise report automation: Letting Excel die
Technical critique of the abusive use of Excel as a database in companies. How to automate fragile reports using Python and SQL to prevent data corruption disasters.
⏱️ 2 min read -
The impact of AlexNet on ImageNet: Reading about how neural networks just destroyed classic vision algorithms
Technical analysis of the impact of the AlexNet paper on the ImageNet competition. How Convolutional Neural Networks (CNNs) and GPUs are revolutionizing computer vision.
⏱️ 2 min read -
Evaluating visualization tools: QlikView vs Tableau in a real-world setting
Technical comparison between QlikView 11 and Tableau Desktop 7. Evaluating the associative in-memory engine versus the visual query engine (VizQL) for Business Intelligence.
⏱️ 2 min read -
15 May 2012 - Migrating my files to Google Drive: The war against Dropbox has begun
Experience migrating files to Google Drive after its launch. Technical analysis of file synchronization algorithms (delta sync) compared to Dropbox.
⏱️ 2 min read -
28 Feb 2012 - OLAP Cubes: Why your aggregate queries now fly
Explanation of the inner workings of OLAP cubes (MOLAP). Why pre-aggregating massive data is the key to instantaneous response times in dashboards.
⏱️ 2 min read -
Analytical SQL: Discovering the power of Window Functions
Practical introduction to Window Functions in SQL. How to simplify complex analytical queries in Business Intelligence projects.
⏱️ 2 min read -
WhatsApp: The app that killed my SMS bills
Technical analysis of WhatsApp, the app that is killing SMS. Exploring its use of the XMPP protocol and Erlang, and its serious initial security flaws.
⏱️ 2 min read -
Star vs Snowflake Schemas applied to SSAS
Technical debate and examples on dimensional modeling in Business Intelligence. Comparison between the Star Schema and the Snowflake Schema using SQL Server Analysis Services (SSAS).
⏱️ 2 min read -
20 Mar 2011 - IBM Watson wins Jeopardy!: Is natural language processing the next great frontier?
Technical analysis of IBM Watson's victory on Jeopardy. Exploring the challenges of Natural Language Processing (NLP) versus traditional computing.
⏱️ 2 min read -
05 Feb 2011 - Leaving CRUD behind: My first serious approach to BI
Technical reflection on the transition from traditional CRUD development to Business Intelligence (BI) projects, differentiating OLTP and OLAP environments with ETL examples.
⏱️ 2 min read -
Tinkering with my new Samsung Galaxy S and compiling a custom Android kernel
Tutorial and technical experience compiling a custom kernel for the Samsung Galaxy S. How to fix performance issues by migrating the file system from RFS to ext4.
⏱️ 3 min read -
I Managed to Buy the iPad: My Experience After a Month of Use
Technical analysis of the first iPad after its launch. The impact of the absence of Flash on the web and how to adapt sites with CSS3 Media Queries.
⏱️ 3 min read -
NoSQL Databases: A passing fad or the future of storage?
Technical analysis and early experiments with NoSQL databases like MongoDB in 2010. Evaluating if the schema-less nature is a real advantage in production.
⏱️ 3 min read -
The art of profiling slow queries in MySQL
Practical guide on how to profile slow queries in MySQL using SHOW PROFILES and EXPLAIN to detect real bottlenecks in production.
⏱️ 3 min read -
Taking a look at "Bitcoin": Analyzing the source code of this curious P2P network
I analyze the C++ code and the database of Bitcoin, a curious P2P electronic cash network that has just appeared.
⏱️ 4 min read -
Trying Google Chrome: The V8 JavaScript engine is a missile
Technical analysis of Google Chrome and its V8 engine, exploring how JIT compilation is changing the execution speed of JavaScript in the browser.
⏱️ 3 min read -
Image processing II: Edge detection with Canny in C
Practical guide to applying the Canny algorithm for edge detection using C. Step-by-step explanation from Gaussian smoothing to hysteresis.
⏱️ 4 min read -
What is Facebook and why is everyone around me suddenly registering with their real name?
Technical analysis of Facebook in 2008 and the architecture of its social graph. Why have we abandoned pseudonyms in favor of our real identity on the net?
⏱️ 3 min read -
PHP Frameworks: My Experience After Migrating a Legacy Project to CodeIgniter
Goodbye to spaghetti code. Migrating to CodeIgniter and the MVC pattern has brought my sanity back when working with PHP. Technical analysis and practical example.
⏱️ 3 min read -
Database normalization: When to break 3NF to gain speed
Breaking the Third Normal Form (3NF) in relational databases can be the only way out when JOINs crash your disks. Real cases of denormalization.
⏱️ 3 min read -
Wi-Fi network auditing: Cracking WEP in 10 minutes
Practical and technical guide to audit Wi-Fi networks and crack WEP encryption in under 10 minutes using Aircrack-ng and BackTrack 2.
⏱️ 3 min read -
iPhone: Why a Screen Without a Physical Keyboard Will Change Web Development
Technical analysis following the iPhone announcement. Why a multi-touch device without a keyboard or mouse will force us to rethink web design and development.
⏱️ 4 min read -
Semantic Web and Web 3.0: Understanding RDF, OWL, and SPARQL
Discover what the Semantic Web (Web 3.0) is. A technical explanation for developers on RDF, OWL, and querying graphs using SPARQL in 2006.
⏱️ 4 min read -
I've spun up my first server on AWS EC2: Renting by the hour with an API? This changes everything
My first experience deploying a virtual server on the Amazon EC2 beta. Thoughts on per-hour virtualization and the end of traditional dedicated server hosting.
⏱️ 4 min read -
MySpace and the horror of spaghetti code: Injecting CSS into my profile
I analyze the technical chaos behind MySpace profile customization using CSS injection and its implications for web development.
⏱️ 3 min read -
Homemade Buffer Overflow: Dissecting a classic C exploit
Technical analysis of a buffer overflow vulnerability in C. Discover how to overwrite the stack and redirect execution with a classic exploit.
⏱️ 3 min read -
Informatica PowerCenter 8: First impressions with the data heavyweight
Technical analysis and first impressions of Informatica PowerCenter 8 in production environments. How visual data integration changes development.
⏱️ 3 min read -
Step-by-step guide: Centralizing my digital life: I've been using Google Reader for a month and it's the ultimate RSS reader
After a month of testing Google Reader, I analyze why this web and AJAX-based RSS feed reader has replaced my usual desktop clients.
⏱️ 4 min read -
Step-by-step guide: How to capture, compress and upload videos to that new website called "YouTube"
Technical guide to capture, compress videos with Xvid using mencoder and upload them to the new YouTube platform, surviving current ADSL connections.
⏱️ 3 min read -
SQL Injection Vulnerabilities: How to break your database
Practical analysis on SQL Injection vulnerabilities in PHP and MySQL. How to prevent them from blowing up your database with single quotes.
⏱️ 3 min read -
Google Earth: I've spent all summer flying over my city from the PC
Late-night reflections at 2 AM tinkering with Google Earth, suffering through textures over ADSL, and messing around with KML files in XML.
⏱️ 3 min read -
PHP 5 turns one: OOP begins to mature and I finally dare to use it
Analysis of PHP 5's first year. Finally leaving behind the limitations of PHP 4 and starting to use real object-oriented programming with Zend Engine II and mysqli.
⏱️ 3 min read -
Migrating to WordPress 1.5: Gutting the New Theme System (and Surviving the Attempt)
Technical analysis and migration experience to WordPress 1.5 in 2005. Discover how the new PHP template system, the Loop, and CSS layout challenges against Internet Explorer 6 work.
⏱️ 3 min read -
Understanding the damn Call Stack in x86 Assembly
A practical and straightforward explanation of how the Call Stack works in x86 Assembly, ideal for debugging Segmentation Faults.
⏱️ 4 min read -
Sleepless nights: Scripting bots and channels on IRC Hispano
Sleepless nights writing code in mIRC and configuring Eggdrops to keep a channel afloat on IRC Hispano. Pure nostalgia and technical headaches.
⏱️ 3 min read -
A definitive goodbye to Internet Explorer: My first week using Firefox 1.0
Technical analysis and user experience after the first week with Mozilla Firefox 1.0. Goodbye to CSS bugs in IE6 and hello to web standards.
⏱️ 3 min read -
Pixel Manipulation: Reading and Modifying BMP Image Headers in C
Practical guide and late-night anecdotes on how to read and modify BMP image headers in C at the byte level, dealing with structure padding.
⏱️ 3 min read -
I finally got a Gmail invite! Why 1 Gigabyte of space is absolute madness
My experience after getting an invite to the Gmail beta and why 1GB of space and its interface based on DHTML and XMLHttpRequest (without reloading the page) represent a paradigm shift in web development.
⏱️ 3 min read -
Prolog: When programming means declaring truths and not writing instructions
Discover how Prolog's declarative programming can save you from writing hundreds of lines of spaghetti code by separating logic from control.
⏱️ 3 min read -
Testing WordPress: The b2 fork that promises to make our lives easier
Technical analysis of the first version of WordPress, the free fork of b2/cafelog. Installation, wp-config.php configuration and PHP templates.
⏱️ 3 min read -
The Slammer worm: Anatomy of the buffer overflow that collapsed the internet last week
Technical analysis of the Slammer worm, the 376-byte buffer overflow in SQL Server 2000 that took down the internet. Why it's vital to apply patches.
⏱️ 4 min read -
Playing with Java 1.4: Native Regular Expressions at Last
Technical analysis of native regular expression integration in Java 1.4 (java.util.regex package), performance advantages, and practical use examples.
⏱️ 3 min read -
Dealing with the aftermath: Why register_globals=off in PHP 4.2 broke my early projects
How to adapt your code to PHP 4.2 after the change of register_globals to Off. Technical guide to prevent your forms and sessions from breaking.
⏱️ 3 min read -
The nightmare of pointers in C and how to survive 'Segmentation Faults'
How to survive Segmentation Faults in C: survival guide for students and junior programmers fighting with pointers and RAM.
⏱️ 3 min read