<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Web on Post a Post</title><link>https://hernan941.com/en/tags/web/</link><description>Recent content in Web on Post a Post</description><generator>Hugo -- gohugo.io</generator><language>en-US</language><managingEditor>hrwgallardo@gmail.com (Hernán)</managingEditor><webMaster>hrwgallardo@gmail.com (Hernán)</webMaster><copyright>Hernán Gallardo Palma (CC BY-NC 4.0)</copyright><lastBuildDate>Tue, 30 Jun 2026 11:00:00 -0300</lastBuildDate><atom:link href="https://hernan941.com/en/tags/web/index.xml" rel="self" type="application/rss+xml"/><item><title>I'm Using Claude Code</title><link>https://hernan941.com/en/posts/estoy-usando-claude/</link><pubDate>Tue, 30 Jun 2026 11:00:00 -0300</pubDate><author>hrwgallardo@gmail.com (Hernán)</author><guid>https://hernan941.com/en/posts/estoy-usando-claude/</guid><description>&lt;p&gt;For the last two months I&amp;rsquo;ve used Claude Code every day, shipping features from the terminal with zero shame, writing code powered by tokens and learning quite a bit along the way. I had already used agents for development before, Copilot in particular, but this time I took it to a completely different level of intensity.&lt;/p&gt;&#10;&lt;p&gt;The task and the goal was to be more productive, to be able to reach targets in impossible timeframes. To use modern technologies at a competitive pace without losing quality along the way, and without ceasing to build solid, scalable solutions. Do more with less. High cohesion and low coupling.&lt;/p&gt;</description><content:encoded><![CDATA[<p>For the last two months I&rsquo;ve used Claude Code every day, shipping features from the terminal with zero shame, writing code powered by tokens and learning quite a bit along the way. I had already used agents for development before, Copilot in particular, but this time I took it to a completely different level of intensity.</p>
<p>The task and the goal was to be more productive, to be able to reach targets in impossible timeframes. To use modern technologies at a competitive pace without losing quality along the way, and without ceasing to build solid, scalable solutions. Do more with less. High cohesion and low coupling.</p>
<p>On top of that, for my part, there was the challenge of keeping the attitude of the craftsman, the blacksmith, even when industrial machinery is at hand. A task that turns into a paradox: how to see beyond what merely &ldquo;works&rdquo; thanks to sheer mass production and keep the passion for the craft. How to transfer this intrinsic concern for the work to a stochastic model.</p>
<p><img src="https://dojiw2m9tvv09.cloudfront.net/29535/product/img_90495118.jpg" alt="Illustration of the blacksmith"></p>
<h1 id="first-month">First month</h1>
<p>To resolve this paradox, in the first few weeks I had to learn in detail what I was dealing with. And maybe this is the best moment to get into the subject and tell you about Claude Code. A programming agent used through the terminal, which has access to different actions inside your computer.</p>
<p>At its core, &ldquo;Claudito&rdquo; works with the concept of context. Imagine a room with defined walls and square meters, where light comes in, along with the furniture, table and chairs, people and pets: like a finite space of information that gives meaning and limits to our reality. And this is important: you have to keep in mind the limitations and how many things fit in the room. The context must contain everything needed for the solutions Claude delivers to be valid and accurate. MCPs, for example (the tools or extended functions, for instance to simulate a browser or access Google Drive), take up a significant amount of space in your context, and can leave you without enough room to give the agent the key background of the problem, inevitably making it lose track of the solution.</p>
<p>I started using it with these concepts in mind, the way its own creators suggest. A sequence of explore - plan - code - commit, but as the weeks went by I felt I was repeating my own flows. So I looked for the other ways people were using this tool. And I
discovered the concept of the harness and how to customize it.</p>
<h1 id="second-month">Second month</h1>
<p>The harness comes by default, and although it isn&rsquo;t the most optimal for every problem or technology, it works. The agentic harness is defined as the set of tools, context management and execution environment that turns a language model into an agent.</p>
<p>In other words, it could be translated as the harness that holds a climber on the mountain. In climbing (unless it&rsquo;s free solo), you need gear. Otherwise, you have nothing to hold on to; you have no protection. The harness is the safety equipment that connects you to the mountain. It gives you the ability to act, to be there and to move forward. And what better than having your own tools and adjusting them day by day.</p>
<p><img src="https://images.unsplash.com/photo-1684055301990-08b447719a89?q=80&amp;w=900&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" alt="Climber on the mountain"></p>
<p>Without this, the solution takes a bit longer, or you find yourself telling it the same things over and over. So, from the second month on, I added dedicated skills and commands for the patterns and technologies I use, taking inspiration from a repository (ECC, winner of Anthropic&rsquo;s hackathon). All of this always implemented from a TDD (Test-Driven Development) perspective from day one. Tests here are vital, both to validate your code and to serve as a path for the models to understand it as the solution keeps growing. They are path and validation. Having the right patterns in every new plan secures my solution, but it isn&rsquo;t free: there is a context and token cost attached to every plan. Although, in my opinion, it&rsquo;s completely worth it.</p>
<p>And to make this harness work without running out of space, I leaned on persistent context, or memory. Since the session space is limited, per project you can have a CLAUDE.md file and various other .md files. These work as a usage guide; base instructions that Claude reads when starting inside a folder so it knows, beforehand, what the rules of your project are. The interplay between context and these files when working with Claudito also makes the difference.</p>
<h1 id="in-my-opinion">In my opinion</h1>
<p>With these techniques, Claude has become a snowball of productivity. It&rsquo;s what it promises: things that once took me weeks now take me a couple of minutes. Analyses that might take me months, Claude solves in one well-run session with the right questions. It&rsquo;s hard to look competitive in this industry without Claude as a copilot. Now, Claude doesn&rsquo;t get distracted and doesn&rsquo;t doubt. And it&rsquo;s at your command like an army of one. Army of one.</p>
<p>I know I can still apply techniques to reduce token spend, and even use that crazy learning skill where Claude recognizes my workflows. I dream of the day when you just talk to the computer and interact with a machine of peculiar personality; as of today, this is the closest thing to what I once imagined. And I also know how different Claude is working on existing code and its tendency to create rather than maintain. That its way of maintaining is adding and adding code. That it has strong preferences and that if you get careless you end up creating a swarm. Its swarm, one you don&rsquo;t understand. So my advice is to be careful and always keep understanding the moves toward the summit.</p>
<p>On the other hand, and with all that said, it&rsquo;s hard to keep seeing myself as the craftsman forging the rings of power, devoted to one single, specific and spectacular task. The day-to-day shifted more toward that of a strategist, drawing routes and plans, swapping weapon types and pulling the king&rsquo;s tokens as if it were war. Using the terminal and writing natural language to get what I want instead of flowing through logic gates.</p>
<table>
	<thead>
			<tr>
					<th style="text-align: center"><img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSM2p9ATlvf-1LcnPTn4c3W2iOPLE0OXI204NL5I_06wQ&amp;s=10" alt="Visual closing of the article"></th>
			</tr>
	</thead>
	<tbody>
	</tbody>
</table>
]]></content:encoded></item><item><title>Rambling Between Django and FastAPI</title><link>https://hernan941.com/en/posts/divagando-sobre-frameworks/</link><pubDate>Thu, 04 Jun 2026 11:00:00 -0300</pubDate><author>hrwgallardo@gmail.com (Hernán)</author><guid>https://hernan941.com/en/posts/divagando-sobre-frameworks/</guid><description>&lt;p&gt;Django is one of the frameworks with the longest presence over time, while FastAPI is the framework with the fastest adoption. Choosing one over the other just because of that is absurd, so let&amp;rsquo;s understand the perspectives and features of both.&lt;/p&gt;&#10;&lt;h1 id="architecture-today"&gt;Architecture today&lt;/h1&gt;&#10;&lt;p&gt;For a while now, microservices seem to dominate everything, and with them, FastAPI in Python. The adoption of the cloud as infrastructure in almost every company points in that direction. However, the most obvious downside of this approach is managing and orchestrating those microservices; you have to be very careful with the dependencies between them so you don&amp;rsquo;t &amp;ldquo;cross the wires&amp;rdquo;. You need highly skilled people to keep these operations running.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Django is one of the frameworks with the longest presence over time, while FastAPI is the framework with the fastest adoption. Choosing one over the other just because of that is absurd, so let&rsquo;s understand the perspectives and features of both.</p>
<h1 id="architecture-today">Architecture today</h1>
<p>For a while now, microservices seem to dominate everything, and with them, FastAPI in Python. The adoption of the cloud as infrastructure in almost every company points in that direction. However, the most obvious downside of this approach is managing and orchestrating those microservices; you have to be very careful with the dependencies between them so you don&rsquo;t &ldquo;cross the wires&rdquo;. You need highly skilled people to keep these operations running.</p>
<p>That said, microservices have become the standard. Tools have emerged to make them easier to use, like containers, Kubernetes or Prometheus, and they offer a ton of advantages that can leave a technology like Django behind. It&rsquo;s slow, or at least on the surface, whereas FastAPI is fast, both when processing requests and when developing with it. It also includes typing almost &ldquo;for free&rdquo; (something Python really benefits from, like JavaScript needed it) and has an extremely robust dependency system.</p>
<p>On the other hand, Django has been around since 2005; it&rsquo;s almost as old as Facebook. It stays relevant thanks to a well-organized community that is passionate about web development. As a result, a large share of the usual problems of programming for the web are already thought through and solved. It comes with &ldquo;batteries included&rdquo;, a term that means a big part of your solution is ready from the start (authentication, admin panel, ORM, security, templates and routing). The problem is that its philosophy doesn&rsquo;t align as well with this microservices trend, since it comes from an era when the monolith shined: the application as a centralized whole, with a server-side orientation.</p>
<p>Still, Django has important downsides. It looks slow and, back in the day, there was no way to make asynchronous calls (something that would seem crazy today). In terms of scalability it can fall behind, even with its modular monolith structure and per-app deployment. Also, Django has a strict, opinionated way of working. It can be overkill for small projects. All of this leads us to its learning curve, which is steeper than that of its alternative.</p>
<p>With that said, I&rsquo;d like to dig deeper and analyze the different dimensions from the business perspective, which are what will ultimately lead us to decide between one tool or the other.</p>
<h1 id="time-to-market">Time To Market</h1>
<p>We need to be clear about the business priority when launching the MVP: What is the product about? Does it need to manage users, roles or some kind of common administration? Or, on the contrary, is the execution speed of each call in a specific service more important? These questions guide us. If the solution requires managing users, passwords, moderating content or having some kind of administrative support, with FastAPI you&rsquo;ll have to build all of this from scratch and timelines will increase significantly.</p>
<p>On the other hand, if you need to stay in sync with frontend or mobile teams, FastAPI will give you the smoothness. Its interactive documentation and how quickly you can prototype routes ready for the frontend team to consume speed things up incredibly.</p>
<p>It&rsquo;s also ideal for validating ideas and exploring markets with a very specific tech service. We&rsquo;re talking about something so concise that Django&rsquo;s robust infrastructure would only get in the way.</p>
<h1 id="budget-and-team">Budget and Team</h1>
<p>With no team and no budget, Django shines. With very little, we can do a lot. And if you add AI agents on top of that&hellip; in the same codebase and practically natively. A single developer can handle a big solution, moving from the database all the way to the visualization and the interface.</p>
<p>However, we have to remember: jack of all trades, master of none.</p>
<p>The story changes if you have a structured development department, with at least one team dedicated purely to the frontend, several developers and the resources to invest the time it takes to &ldquo;reinvent the wheel&rdquo; again. Although, let&rsquo;s be honest, it will be a much more specific and faster wheel. At the end of the day, if we&rsquo;re competing in Formula 1, I wouldn&rsquo;t recommend driving a pickup truck.</p>
<h1 id="product-vision">Product vision</h1>
<p>Are we building a heavy, centralized platform, or a product that will be part of an ecosystem of services? If the business value lies in convoluted rules and in managing structured data, Django is most likely the right direction. On the other hand, if the value lies in processing speed, concurrency and independence, maybe it isn&rsquo;t. You have to stop and think: how do I see this solution in 2 or 3 years? Things to keep in mind:</p>
<ul>
<li>Relational complexity</li>
<li>Centralization</li>
<li>Technical specialization</li>
<li>Interface independence</li>
</ul>
<h1 id="scalability">Scalability</h1>
<p>At first glance, this fight comes down to synchronous vs. asynchronous. FastAPI is async by default, and microservices grow much better than monoliths. However, in reality, giants like Instagram, Pinterest and Patreon started (and to a large extent still operate) with Django. Saying that Django can&rsquo;t handle large numbers of users is simply not true.</p>
<p>The real question is: does that massive traffic happen at exactly the same moment? If the challenge goes beyond just &ldquo;holding up&rdquo; under more users and centers on real-time interaction between them (like a live chat or a multiplayer game), FastAPI is the right call so the architecture doesn&rsquo;t wobble.</p>
<h1 id="agility">Agility</h1>
<p>In these terms, a few years ago Django was an undisputed star; it saved us a lot of time by letting us do more with less code. Today, with AI agents spitting out code like machines, this &ldquo;batteries included&rdquo; feature loses a bit of weight. Now we can achieve the same thing using smaller tools.</p>
<p>However, Django has evolved and found a new niche of value: standardization and keeping chaos under control.</p>
<p>A less experienced engineer is much more likely to end up with a chaotic, incomprehensible codebase using a tool like FastAPI than using Django, since the latter tells you step by step how to structure things. Many frameworks do this (like Ruby on Rails or NestJS): they put up &ldquo;guardrails&rdquo; so you don&rsquo;t go off the road. Writing code with AI means that today, more than ever, we have to care about maintainability and technical debt.</p>
<h1 id="kiss">KISS</h1>
<p>At the end of the day, to choose correctly we can narrow it down to knowing where we are, who we are and where we&rsquo;re headed.</p>
<p><img src="https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&amp;fit=crop&amp;w=1600&amp;q=80" alt="Reflective image"></p>
]]></content:encoded></item></channel></rss>