Eduardo Zepeda's latests posts
Swiss Tables the superior performance hashmap
- software architecture
- databases
<h2 id="the-hash-map-got-a-swiss-army-knife-upgrade">The Hash Map Got a Swiss Army Knife Upgrade</h2><p>You've probably used hashmaps in the past, you normally use them but ignore everything about the internals, you limit your knowledge of hashmaps to getting and setti...
Read more
I Built a Bloom Filter Data Structure Simulator
- databases
- software architecture
<p>Suppose you want to check whether a piece of data belongs to a larger set. Let's say you're Google and you want to check if certain url has been marked as spam, the dumb approach would be to iterate over every url marked as spam to see if you can find it. Sure, may...
Read more
How to create a MCP server and MCP tools from scratch?
- artificial intelligence
- javascript
<h2 id="why-would-we-want-to-create-a-mcp-server">Why Would We Want to Create a MCP Server?</h2><p>Creating a MCP server allows us to connect an LLM or AI to real-time data, personal data, or other data sources.</p><p>I previously wrote a post where I explain ...
Read more
Zero Downtime Migrations: Shadow Table Strategy Explained
- databases
<p>Picture this: It's 2 AM, you're deploying a “simple” column type change to production, and suddenly your entire application is down because the table lock is taking forever. Your phone starts buzzing with angry Slack notifications, and you're fran...
Read more
My Bolt vs Lovable vs V0 Vercel Comparison
- artificial intelligence
- opinion
<p>All the tech influencers are spreading FOMO and talking about tools like Bolt, Vercel's V0, and Lovable. But I get it, <a class="markdown-link" href="https://coffeebytes.dev/en/artificial-intelligence/ai-is-overhyped-when-will-the-bubble-burst/">AI is overhyped...
Read more
AI-generated Art and AI-generated code are treated differently
- opinion
- artificial intelligence
<p>Today, while <em>doom scrolling</em> on Zuckerberg's social network, the algorithm recommended me an image of <strong>Sakura Card Captors</strong> in the style of the Spanish painter <strong>Remedios Varo</strong>.</p><a hx-boost="false" href="https://res.cloudinary...
Read more
My Curated Best Resources To Learn Python Programming Language
- python
- opinion
<h2 id="the-best-books-to-learn-python">The Best books to learn Python</h2><p>I used these curated resources to learn Python, most of them are books, since I read them, I can heartily recommend them to you. If this little guide can help you to not get lost in the sea of opti...
Read more
My Technical SEO Basics Checklist Only For Web Developers
- seo
- opinion
<p>Previously I told you how <a class="markdown-link" href="https://coffeebytes.dev/en/seo/my-technical-seo-mistakes-when-i-migrated-my-site-from-wordpress/">I made many mistakes in SEO</a> when I migrated my website from Wordpress to Hugo, after that I started wat...
Read more
I'll Help You Understand the Model Context Protocol or MCP
- artificial intelligence
- software architecture
<p>If you're struggling to understand the Model Context Protocol, I feel you, I watched a lot of videos on it, but I just couldn't understand it, so I took my notes about it and turned it into a post so you can understand it effortless, also I wrote a post where I tal...
Read more
The Easiest Way To Use Https In Localhost (my opinion)
- linux
- go
<p>How to use Localhost using https instead of http, fast and without having to issue certificates manually nor dealing with netstat?</p><h2 id="why-to-use-https-on-localhost-instead-of-http">Why to use https on localhost instead of http?</h2><p>It is quite common to pe...
Read more
Every worth-learning language has its own hashmap implementation, you know, the way it works under the hood, and most devs just don’t give a damn about it, which is fine, I support high level abstractions.
","datePublished":"Sun, 21 Sep 2025 00:00:00 +0000","dateModified":"Sun, 21 Sep 2025 00:00:00 +0000","author":{"@type":"Person","name":"Eduardo Zepeda"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://coffeebytes.dev/en/software-architecture/swiss-tables-the-superior-performance-hashmap/"}},{"@type":"BlogPosting","headline":"I Built a Bloom Filter Data Structure Simulator","description":"Suppose you want to check whether a piece of data belongs to a larger set. Let’s say you’re Google and you want to check if certain url has been marked as spam, the dumb approach would be to iterate over every url marked as spam to see if you can find it. Sure, maybe you think, “I’ll save the spammy sites in a hashmap”, but then, a hashmap of the gazillion sites that exists in the internet? There must be a way that uses less space.
","datePublished":"Fri, 05 Sep 2025 09:47:15 -0600","dateModified":"Fri, 05 Sep 2025 09:47:15 -0600","author":{"@type":"Person","name":"Eduardo Zepeda"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://coffeebytes.dev/en/databases/i-built-a-bloom-filter-data-structure-simulator/"}},{"@type":"BlogPosting","headline":"How to create a MCP server and MCP tools from scratch?","description":"Why Would We Want to Create a MCP Server?
Creating a MCP server allows us to connect an LLM or AI to real-time data, personal data, or other data sources.
I previously wrote a post where I explain how the Model Context Protocol (MCP) works internally ; you can check it out if you’re not satisfied with just a recipe and want to learn more.
In this post, I’ll detail how to create a MCP server. We’re going to make one that solves one of the most embarrassing LLM errors: not being able to count the number of r’s in variations of the word strawberry. For example: strawberrrry or strawberrrrrrry.
","datePublished":"Wed, 23 Jul 2025 18:00:32 -0600","dateModified":"Wed, 23 Jul 2025 18:00:32 -0600","author":{"@type":"Person","name":"Eduardo Zepeda"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://coffeebytes.dev/en/artificial-intelligence/how-to-create-a-mcp-server-and-mcp-tools-from-scratch/"}},{"@type":"BlogPosting","headline":"Zero Downtime Migrations: Shadow Table Strategy Explained","description":"Picture this: It’s 2 AM, you’re deploying a “simple” column type change to production, and suddenly your entire application is down because the table lock is taking forever. Your phone starts buzzing with angry Slack notifications, and you’re frantically trying to explain to your team why the “5-minute migration” has been running for 30 minutes.
What’s the Shadow Table Strategy?
The shadow table strategy is like having a stunt double for your database table. Instead of modifying your original table directly (and potentially bringing your application to its knees), you create a shadow clone new table with the desired structure, gradually copy data over, and then perform a lightning-fast switcheroo.
All the tech influencers are spreading FOMO and talking about tools like Bolt, Vercel’s V0, and Lovable. But I get it, AI is overhyped right and we could be in a bubble .
Despite their non-realistic valuation, I’m astonished about what these tools can do without needing REST APIs , nor Model Context Protocol integrations from the user.
Bolt vs Lovable vs V0 pricing
Let’s compare the pricing plans and features of each one, from V0, Lovable, and Bolt, focusing on aspects that may be relevant to those interested in creating vulnerable sites using AI.
Today, while doom scrolling on Zuckerberg’s social network, the algorithm recommended me an image of Sakura Card Captors in the style of the Spanish painter Remedios Varo.

Sakura Card Captors image in the style of Remedios Varo created with AI
When I checked the comments—I don’t even know what I gain from doing that—I noticed that the most liked ones expressed strong disdain for artificial intelligence. A normal behavior if you’re in the middle of AI overhype
","datePublished":"Sun, 25 May 2025 14:29:58 -0600","dateModified":"Sun, 25 May 2025 14:29:58 -0600","author":{"@type":"Person","name":"Eduardo Zepeda"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://coffeebytes.dev/en/artificial-intelligence/ai-generated-art-and-ai-generated-code-are-treated-differently/"}},{"@type":"BlogPosting","headline":"My Curated Best Resources To Learn Python Programming Language","description":"The Best books to learn Python
I used these curated resources to learn Python, most of them are books, since I read them, I can heartily recommend them to you. If this little guide can help you to not get lost in the sea of options out there I’ll be thrilled to share my experience learning Python with you.
Dive into Python 3
This book is my favorite of all, it starts from scratch and begins to teach you the syntax of the language by creating small simple programs that even a fool ,like me, can understand. The programs are basic but the author doesn’t stop there, throughout the book he delves into topics such as:
Previously I told you how I made many mistakes in SEO when I migrated my website from Wordpress to Hugo, after that I started watching a lot of videos about SEO, especially Romuald’s videos (He is one of the biggest SEO influencers in Spanish speaking countries), I’ve also read The art of SEO and I tried to summarize everything I learned from him and the book in a short post, just for you, before AI overhype explodes, taking SEO with it.
","datePublished":"Mon, 14 Apr 2025 00:02:21 -0600","dateModified":"Mon, 14 Apr 2025 00:02:21 -0600","author":{"@type":"Person","name":"Eduardo Zepeda"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://coffeebytes.dev/en/seo/my-technical-seo-basics-checklist-only-for-web-developers/"}},{"@type":"BlogPosting","headline":"I'll Help You Understand the Model Context Protocol or MCP","description":"If you’re struggling to understand the Model Context Protocol, I feel you, I watched a lot of videos on it, but I just couldn’t understand it, so I took my notes about it and turned it into a post so you can understand it effortless, also I wrote a post where I talk about how to create a MCP server and MCP tools from scratch .
Why was the Model Context Protocol created?
One of the most convenient uses of LLMs is to use them to analyse or process our own data, for which there are several options, such as LLM fine-tuning or RAG, or manually passing our data as context as part of the prompt.
","datePublished":"Mon, 31 Mar 2025 18:00:32 -0600","dateModified":"Mon, 31 Mar 2025 18:00:32 -0600","author":{"@type":"Person","name":"Eduardo Zepeda"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://coffeebytes.dev/en/artificial-intelligence/ill-help-you-understand-the-model-context-protocol-or-mcp/"}},{"@type":"BlogPosting","headline":"The Easiest Way To Use Https In Localhost (my opinion)","description":"How to use Localhost using https instead of http, fast and without having to issue certificates manually nor dealing with netstat?
Why to use https on localhost instead of http?
It is quite common to perform Oauth testing while performing integrations or some kind of integration with a third party application, the problem is that some third party providers are quite restrictive in this regard, they do not accept integrations or callbacks to URLs that do not use https.
","datePublished":"Wed, 26 Feb 2025 00:00:00 +0000","dateModified":"Wed, 26 Feb 2025 00:00:00 +0000","author":{"@type":"Person","name":"Eduardo Zepeda"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://coffeebytes.dev/en/linux/the-easiest-way-to-use-https-in-localhost-my-opinion/"}}]}