<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ikrame Ibn Hayoun</title>
    <description>The latest articles on DEV Community by Ikrame Ibn Hayoun (@ikrame-ih).</description>
    <link>https://dev.to/ikrame-ih</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4053573%2Fa2e9d409-dc13-4fd0-afc9-e02a5bfd6b19.jpeg</url>
      <title>DEV Community: Ikrame Ibn Hayoun</title>
      <link>https://dev.to/ikrame-ih</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ikrame-ih"/>
    <language>en</language>
    <item>
      <title>Vibecoding met 34-year-old railway software</title>
      <dc:creator>Ikrame Ibn Hayoun</dc:creator>
      <pubDate>Thu, 05 Nov 2026 15:30:00 +0000</pubDate>
      <link>https://dev.to/ikrame-ih/vibecoding-met-34-year-old-railway-software-5gjj</link>
      <guid>https://dev.to/ikrame-ih/vibecoding-met-34-year-old-railway-software-5gjj</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR.&lt;/strong&gt; After Urda, a four-hour Renfe map went viral beside 34-year-old signalling. We have reached an inflection point where a finished-looking demo can be believed as a real product, even next to safety-critical infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;What "legacy" means on a high-speed line&lt;/li&gt;
&lt;li&gt;What Vía Libre actually did&lt;/li&gt;
&lt;li&gt;The inflection point vibecoding just hit&lt;/li&gt;
&lt;li&gt;What the criticism actually said&lt;/li&gt;
&lt;li&gt;Human error or system error, through a legacy lens&lt;/li&gt;
&lt;li&gt;What juniors should take away&lt;/li&gt;
&lt;li&gt;Sources&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;On 28 October 2026, a Renfe AVE collided with a stationary Iryo train near Urda, in Toledo, Spain. Sixty-nine people lost their lives. My thoughts are with their families and with everyone affected. The investigation is still open, and nothing written here treats any cause as settled.&lt;/p&gt;

&lt;p&gt;Two days later, a different story went viral. Álvaro Hernández published &lt;strong&gt;Vía Libre&lt;/strong&gt;, a web map of Renfe trains built in about four hours from public GPS data. Colours marked delays. Screenshots travelled faster than the nuance.&lt;/p&gt;

&lt;p&gt;Those two stories sit on the same week for a reason juniors keep hitting at work: &lt;strong&gt;legacy systems look slow and ugly until you learn why they are hard to change&lt;/strong&gt;, and &lt;strong&gt;AI has made it so easy to ship something that looks finished that people can believe a demo can stand in for a real product&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This piece uses Urda and Vía Libre to hold both ideas at once, with Vía Libre as the heaviest example of that belief so far.&lt;/p&gt;

&lt;h2&gt;
  
  
  What "legacy" means on a high-speed line
&lt;/h2&gt;

&lt;p&gt;The Madrid-Seville AVE corridor still runs under &lt;strong&gt;LZB&lt;/strong&gt; (Linienzugbeeinflussung), a German continuous train-control system installed for the line's opening in 1992. That is 34-year-old railway software still sitting in the safety path.&lt;/p&gt;

&lt;p&gt;In plain words, the track and the train keep talking so the system can supervise speed and brake automatically if needed. When &lt;code&gt;LZB&lt;/code&gt; drops, traffic can fall back to &lt;strong&gt;BSL&lt;/strong&gt; (bloqueo de señalización lateral: the side signals that organise blocks of track) with &lt;strong&gt;ASFA&lt;/strong&gt; as onboard protection that reacts when the train passes beacons. That stack is old, layered, and certified for lives, not for demos.&lt;/p&gt;

&lt;p&gt;Press coverage after Urda repeated the same timeline: &lt;code&gt;LZB&lt;/code&gt; arrived because Europe's later standard, &lt;strong&gt;ERTMS&lt;/strong&gt;, was not ready in 1992; Adif has been migrating Madrid-Seville to ERTMS Level 2; the physical work finished, but putting the new system into service still needs tests and authorisation from the rail safety agency.&lt;/p&gt;

&lt;p&gt;A railway signalling engineer told La Tribuna de Ciudad Real that &lt;code&gt;LZB&lt;/code&gt; gear is robust and near the end of a useful life of about three decades. The former head of the State Agency for Railway Safety had already called &lt;code&gt;LZB&lt;/code&gt; obsolete in the Senate weeks before the crash. Replacement is underway. It is not a git merge.&lt;/p&gt;

&lt;p&gt;On top of that world sits a thinner layer: Renfe's &lt;strong&gt;open data&lt;/strong&gt;, including near-real-time vehicle positions in &lt;strong&gt;GTFS-RT&lt;/strong&gt;, updated every 15 seconds for AVE and long distance (20 for Cercanías), under a &lt;code&gt;CC BY 4.0&lt;/code&gt; licence. That feed is for passengers and builders. It is not the signalling stack. Confusing the two is how vibecoding stories start.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;What it is&lt;/th&gt;
&lt;th&gt;What it is not&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Signalling (&lt;code&gt;LZB&lt;/code&gt; / &lt;code&gt;ERTMS&lt;/code&gt; / &lt;code&gt;ASFA&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Safety path that supervises speed, routes, and braking&lt;/td&gt;
&lt;td&gt;A passenger map&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open data (&lt;code&gt;GTFS-RT&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Public positions for builders and riders&lt;/td&gt;
&lt;td&gt;A control desk or safety case&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  What Vía Libre actually did
&lt;/h2&gt;

&lt;p&gt;Álvaro said he wondered how long a Renfe monitor would take, noticed that each train's GPS position was public, and had something working in three to four hours. Vía Libre plots Renfe services on a map of Spain with a delay semaphore and Adif incident notices on one screen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flwrfir5flusi8jgdy0tz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flwrfir5flusi8jgdy0tz.jpg" alt="Vía Libre map with Renfe trains over Spain, marked green, yellow and red by delay" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Screenshot of Vía Libre. Source: &lt;a href="https://www.elespanol.com/omicrono/20261030/alvaro-creador-app-monitoriza-trenes-renfe-tiempo-real-van-retraso-locos/1003744440979_0.html" rel="noopener noreferrer"&gt;El Español / Omicrono&lt;/a&gt;, 30/10/2026.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffu0697giwyc7y5ajexxc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffu0697giwyc7y5ajexxc.jpg" alt="Mobile view of Vía Libre with 135 trains on the map and 99 delayed" width="606" height="1200"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Mobile view of Vía Libre shared on X, 30/10/2026. Post: &lt;a href="https://x.com/SinInyectar/status/2116271528396677542" rel="noopener noreferrer"&gt;x.com status 2116271528396677542&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That is a real win for open data and for fast prototyping. Anyone can see how far a public feed plus a clear UI can go in a morning.&lt;/p&gt;

&lt;p&gt;It is also where the new risk starts: a browser reading &lt;code&gt;GTFS-RT&lt;/code&gt; does not supervise braking curves, does not interlock routes, and does not carry a safety case, yet it can look finished enough that people treat it as more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2we0wvffhbnd491ppcbz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2we0wvffhbnd491ppcbz.jpg" alt="Screenshot of Álvaro Hernández's first X post about building a Renfe train monitor from public GPS data" width="800" height="1000"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Screenshot of Álvaro Hernández's original thread, reshared on X, 31/10/2026. Post: &lt;a href="https://x.com/GOLFY_ES/status/2116679379468120546" rel="noopener noreferrer"&gt;x.com status 2116679379468120546&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  The inflection point vibecoding just hit
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Vibecoding&lt;/strong&gt; means asking an AI for code and shipping what comes back while it "feels" right, without owning the failure modes. Readers already know a four-hour map cannot retire &lt;code&gt;LZB&lt;/code&gt; or finish &lt;code&gt;ERTMS&lt;/code&gt;. That part is settled.&lt;/p&gt;

&lt;p&gt;What is new is the inflection. AI has made it cheap enough to ship something that looks finished that a builder, or an audience watching screenshots travel, can honestly believe a demo-grade build can stand in for a real product. Not as a joke: as something that could run in a real business, or sit next to a system people already trust.&lt;/p&gt;

&lt;p&gt;Most vibecoding stories stop at a SaaS landing page or an internal tool. Vía Libre is the heaviest case yet, because the thing it seemed to rival, in the public conversation after Urda, was safety-critical railway infrastructure.&lt;/p&gt;

&lt;p&gt;That belief is the new risk. A map that paints delays in green, yellow, and red looks like monitoring. Screenshots travel like a product launch. The speed of the build can read as proof that the old stack was optional. None of that turns an open-data viewer into a control system, but the look of finish is strong enough that people can confuse the layers without trying.&lt;/p&gt;
&lt;h3&gt;
  
  
  Why legacy stays slow
&lt;/h3&gt;

&lt;p&gt;Legacy railway systems stay slow to change for boring, expensive reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Safety certification.&lt;/strong&gt; Every real change has to be re-tested and signed off before passengers ride on it. Think of a release process where "ship" means an outside auditor stamps the build, not a green CI job.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interlocking.&lt;/strong&gt; Trackside logic that stops two trains from claiming the same block of track at once. Like a lock or mutex on a shared resource, except the resource is a stretch of rail and the failure mode is a collision.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Layers added after earlier incidents.&lt;/strong&gt; Extra checks and fallbacks piled on over decades. Like patches nobody wants to delete, because nobody is sure which one still holds a crash path shut.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ageing kit and scarce spares.&lt;/strong&gt; Gear from the early 1990s eventually leaves the vendor catalogue. Replacing a board is not &lt;code&gt;npm update&lt;/code&gt;; it can mean hunting a part that is no longer made.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing on a live corridor.&lt;/strong&gt; A lot of the real proving has to happen on the actual line, often at night when passenger trains are not running. You cannot spin up a full high-speed clone in staging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AESF authorisation.&lt;/strong&gt; Spain's State Agency for Railway Safety (&lt;code&gt;AESF&lt;/code&gt;) has to authorise bringing a new or changed structural subsystem, including signalling, into service. Until that file is approved, the new stack does not carry passengers, no matter how ready it looks on paper.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That cost does not disappear because a morning build looks polished.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Álvaro drew the line himself. As quoted by El Español and La Razón, he did not want Spanish trains controlled by a "Paco-APP" built in a morning. His point was about political will to use what already exists for safety, not about swapping signalling for a weekend build.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Fair enough. The case still matters as evidence of the inflection: if even a careful builder's demo can travel as if it answered a railway, then the bar for "looks ready" has moved.&lt;/p&gt;

&lt;p&gt;A four-hour map like this can still prove the feed is readable, shame bad UX, and start a useful argument about transparency. Keep those. What changed is the gap: "looks finished" and "is a product" used to be obviously far apart. Vibecoding shrank that gap enough that the belief is now part of what you have to manage.&lt;/p&gt;


&lt;h2&gt;
  
  
  What the criticism actually said
&lt;/h2&gt;

&lt;p&gt;The pushback around Vía Libre clustered into a few themes. No need to pile onto individuals.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I do not question Álvaro's good faith in trying to help or put another solution on the table. Most of the criticism came from the sense that he had underestimated the infrastructure. My own take is milder: I think he simply had not informed himself well enough before framing it that way.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Already existed.&lt;/strong&gt; People said the map was not new: Renfe already had an official real-time viewer, and other private trackers existed. Putting open data on a map is not inventing the railway.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Front end, not signalling.&lt;/strong&gt; Others said it was mostly a nicer front end on a feed Renfe already publishes: useful to look at, not a monitoring or signalling product. A passenger map is not a control desk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read the numbers.&lt;/strong&gt; A third theme was about reading the numbers. Public feeds can lag or fail. Some trains are estimated from the timetable. Press pieces noted that "real time" on the site animates between updates, that operators such as Iryo and Ouigo are missing from that feed, and that the famous 93-of-119 delay count was one snapshot on a drivers' strike day, not an official punctuality score for the whole network.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There was praise too. People shared the site as a clear way to see delays, and some welcomed an independent view while still saying it should not replace the operators.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgw4z6rolfay8sjusv1bg.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgw4z6rolfay8sjusv1bg.jpg" alt="Official Renfe real-time viewer with long-distance trains on the map of Spain" width="800" height="507"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Official Renfe viewer (tiempo-real.largorecorrido.renfe.com). Source: &lt;a href="https://www.railwaygazette.com/operators/2026/03/12/renfe-displays-spanish-trains-in-real-time-map-and-unifies-geolocation-systems/" rel="noopener noreferrer"&gt;Railway Gazette&lt;/a&gt;, 12/03/2026, Renfe screenshot.&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Human error or system error, through a legacy lens
&lt;/h2&gt;

&lt;p&gt;After Urda, public debate often split into "human error" versus "system error." Through a legacy lens, that split is too thin.&lt;/p&gt;

&lt;p&gt;What official sources and the press have established so far:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Around 08:30 the &lt;code&gt;LZB&lt;/code&gt; failed on that stretch.&lt;/li&gt;
&lt;li&gt;The control centre authorised the AVE to run under "marcha normal" instead of "marcha a la vista", which caps speed at 40 km/h when you are running with degraded protection.&lt;/li&gt;
&lt;li&gt;The preliminary report from &lt;code&gt;AITAT&lt;/code&gt;, the body that investigates accidents, talks about a "chain of failures, instructions and actions" without the needed safety barriers kicking in.&lt;/li&gt;
&lt;li&gt;The technical and judicial investigations are still open. Every hypothesis still is.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is a human decision in that chain. That it is &lt;strong&gt;the&lt;/strong&gt; cause is not proven. Investigators also look at maintenance, protocols, and why backup layers did not stop the train.&lt;/p&gt;

&lt;p&gt;That is how you read a decades-old stack: a person acts inside procedures, fallbacks, and machines that age. Naming one person without the chain is the same mistake as celebrating one map without the stack.&lt;/p&gt;

&lt;p&gt;In software we call the careful version a &lt;strong&gt;blameless postmortem&lt;/strong&gt;: after an incident, ask which layer was missing, not only who typed the command. People fail. Good systems assume that and put nets underneath.&lt;/p&gt;

&lt;p&gt;Legacy railways already try to do that with continuous supervision, side-signal fallback, and automatic braking. When those nets tear, the lesson is to repair and replace the nets with the same seriousness that certified them, not to pretend a dashboard could have held them.&lt;/p&gt;


&lt;h2&gt;
  
  
  What juniors should take away
&lt;/h2&gt;

&lt;p&gt;If you are early in your career, this week is easy to misread. Either "one app exposed the state" or "one person's mistake caused the crash." Neither is enough.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Treat open data as a gift with limits. Credit the licence. Show how old each value is. Decide what the UI does when the feed dies.&lt;/li&gt;
&lt;li&gt;Respect legacy before you rewrite it. Ask what certification, interlocking, or incident history made it look "ugly."&lt;/li&gt;
&lt;li&gt;Use AI to learn and prototype. Notice when a finished-looking demo starts to feel like a product, to you or to your audience.&lt;/li&gt;
&lt;li&gt;When something breaks, look for the chain: inputs, fallbacks, monitoring, human procedures, and the layer that should have caught the mistake.&lt;/li&gt;
&lt;li&gt;Say out loud what your weekend build does not do. That sentence is part of the product, especially when the screenshots travel faster than the caveat.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vía Libre shows how fast a readable view can appear when the data is public, and how easy it is now for that view to travel as if it answered more than it does. Urda shows why the systems underneath move on a different clock.&lt;/p&gt;

&lt;p&gt;The useful junior skill is not dismissing legacy, and not treating vibecoding as a shortcut past it. It is learning to read both, and to name the gap between a finished-looking demo and a product that can carry real trust.&lt;/p&gt;


&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;p&gt;&lt;/p&gt;
  Full source list
  &lt;ul&gt;
&lt;li&gt;El Español / Omicrono, 30/10/2026: &lt;a href="https://www.elespanol.com/omicrono/20261030/alvaro-creador-app-monitoriza-trenes-renfe-tiempo-real-van-retraso-locos/1003744440979_0.html" rel="noopener noreferrer"&gt;Álvaro, creator of an app that monitors Renfe trains&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;La Razón, 30/10/2026: &lt;a href="https://www.larazon.es/sociedad/joven-denuncia-falta-voluntad-politica-mejorar-seguridad-montar-sola-manana-app-monitorizar-trenes-renfe-119-trenes-93-retraso-b50m_202610306ae49107004b78127aba189a.html" rel="noopener noreferrer"&gt;A young developer builds a train-monitoring app in one morning&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Pulso Diario, 30/10/2026: &lt;a href="https://pulsodiario.es/noticias/via-libre-mapa-trenes-renfe-retrasos-datos-publicos-2026/" rel="noopener noreferrer"&gt;What Vía Libre shows, and how to read the delays&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Diario de Alicante, 30/10/2026: &lt;a href="https://diariodealicante.net/web-retrasos-trenes-renfe-alicante/" rel="noopener noreferrer"&gt;New site to check Renfe delays&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Renfe Data: &lt;a href="https://data.renfe.com/dataset/posicion-vehiculos-av-ld-md" rel="noopener noreferrer"&gt;AV, LD and MD vehicle positions&lt;/a&gt; and &lt;a href="https://data.renfe.com/es/dataset/ubicacion-vehiculos" rel="noopener noreferrer"&gt;Cercanías vehicle locations&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Renfe, March 2026: &lt;a href="https://grupo.renfe.com/es/es/sala-de-prensa/noticias/2026/03/renfe-estrena-web-tiempo-real-trenes-alta-velocidad-larga-media-distancia" rel="noopener noreferrer"&gt;Renfe launches a real-time train location site&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Railway Gazette, 12/03/2026: &lt;a href="https://www.railwaygazette.com/operators/2026/03/12/renfe-displays-spanish-trains-in-real-time-map-and-unifies-geolocation-systems/" rel="noopener noreferrer"&gt;Renfe displays Spanish trains in real-time map&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Maldita.es, 28/10/2026: &lt;a href="https://maldita.es/desinfo/20261028/preguntas-respuestas-accidente-tren-urda/" rel="noopener noreferrer"&gt;Q&amp;amp;A on the Urda accident&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;laSexta, 29/10/2026: &lt;a href="https://www.lasexta.com/noticias/sociedad/informe-preliminar-tragedia-urda-69-muertos-colision-mas-160-kmh-raiz-cadena-averias-instrucciones-acciones_202610296ae3cd4c02501232156d48cb.html" rel="noopener noreferrer"&gt;AITAT preliminary report&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;RTVE, 31/10/2026: &lt;a href="https://www.rtve.es/noticias/20261031/por-reanudo-marcha-ave-fallo-sistemas-seguridad-incognitas-del-accidente-urda/17295123.shtml" rel="noopener noreferrer"&gt;Open questions on the Urda accident&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Ministry of Transport: &lt;a href="https://www.transportes.gob.es/organos-colegiados/ciaf/investigaciones-en-curso/expediente-1462026" rel="noopener noreferrer"&gt;Case 146/2026&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;elDiario.es, 29/10/2026: &lt;a href="https://www.eldiario.es/castilla-la-mancha/funcionan-sistemas-seguridad-fallaron-accidente-urda_1_13625371.html" rel="noopener noreferrer"&gt;How the safety systems that failed at Urda work&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;The Conversation, 30/10/2026: &lt;a href="https://theconversation.com/como-funcionan-los-sistemas-de-seguridad-ferroviaria-en-espana-295588" rel="noopener noreferrer"&gt;How railway safety systems work in Spain&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;El Economista, 30/10/2026: &lt;a href="https://www.eleconomista.es/transportes-turismo/noticias/14024565/10/26/los-sistemas-de-seguridad-que-utiliza-la-alta-velocidad-de-los-lzb-que-se-cayeron-en-el-accidente-de-urda-al-esperado-ertms.html" rel="noopener noreferrer"&gt;LZB, ERTMS and ASFA after Urda&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;El Correo, 29/10/2026: &lt;a href="https://www.elcorreo.com/politica/expresidenta-agencia-estatal-seguridad-ferroviaria-lzb-sistema-20261029131845-ntrc.html" rel="noopener noreferrer"&gt;Former AESF president on LZB as obsolete&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;La Tribuna de Ciudad Real, 4/11/2026: &lt;a href="https://www.latribunadeciudadreal.es/noticia/zb95958a1-67e1-4b3f-802832678e405f9c/202611/los-equipos-lzb-son-robustos-y-han-funcionado-muy-bien" rel="noopener noreferrer"&gt;LZB robust but near end of useful life&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;El Periodico, 2/11/2026: &lt;a href="https://www.elperiodico.com/es/economia/20261102/accidente-trenes-adif-gobierno-contrato-sistema-seguridad-retraso-lzb-ermts-135960101" rel="noopener noreferrer"&gt;ERTMS replacement delayed into 2027, AESF authorisation still required&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;AESF: &lt;a href="https://www.seguridadferroviaria.es/actividades/interoperabilidad/entrada-en-servicio-de-subsistemas" rel="noopener noreferrer"&gt;Entry into service of subsystems&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;RTVE, 29/10/2026: &lt;a href="https://www.rtve.es/noticias/20261029/sistema-seguridad-tren-lzb-ertms-accidente-urda/17288810.shtml" rel="noopener noreferrer"&gt;Why LZB on Madrid-Seville had not been renewed yet&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;X discussion examples (already existed / frontend not safety / data limits / praise), late Oct to early Nov 2026: &lt;a href="https://x.com/conHdeavion/status/2116074935634346370" rel="noopener noreferrer"&gt;2116074935634346370&lt;/a&gt;, &lt;a href="https://x.com/kurtizosuker/status/2116463739444531578" rel="noopener noreferrer"&gt;2116463739444531578&lt;/a&gt;, &lt;a href="https://x.com/jalekal/status/2116489069060632896" rel="noopener noreferrer"&gt;2116489069060632896&lt;/a&gt;, &lt;a href="https://x.com/tcpsheep/status/2116178060282146857" rel="noopener noreferrer"&gt;2116178060282146857&lt;/a&gt;, &lt;a href="https://x.com/PabloPradoM/status/2116227374568165831" rel="noopener noreferrer"&gt;2116227374568165831&lt;/a&gt;, &lt;a href="https://x.com/Flo183021/status/2116505621814001743" rel="noopener noreferrer"&gt;2116505621814001743&lt;/a&gt;, &lt;a href="https://x.com/JMiguelSala/status/2116499955829338210" rel="noopener noreferrer"&gt;2116499955829338210&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Forum summary, 30/10/2026: &lt;a href="https://www.burbuja.info/inmobiliaria/resumenes/app-para-monitorizar-los-trenes-de-renfe-hecha-en-4-horas.2376652/tramo-1" rel="noopener noreferrer"&gt;Burbuja.info, Vía Libre thread&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>api</category>
      <category>opendata</category>
      <category>beginners</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Ikrame Ibn Hayoun</dc:creator>
      <pubDate>Wed, 07 Oct 2026 00:46:14 +0000</pubDate>
      <link>https://dev.to/ikrame-ih/-2dno</link>
      <guid>https://dev.to/ikrame-ih/-2dno</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/ikrame-ih/an-introverted-dev-in-an-extroverted-world-4p04" class="crayons-story__hidden-navigation-link"&gt;An introverted dev in an extroverted world&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/ikrame-ih/an-introverted-dev-in-an-extroverted-world-4p04" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;Relates social burnout to API rate limits&lt;/p&gt;

&lt;/a&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/ikrame-ih" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4053573%2Fa2e9d409-dc13-4fd0-afc9-e02a5bfd6b19.jpeg" alt="ikrame-ih profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ikrame-ih" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ikrame Ibn Hayoun
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ikrame Ibn Hayoun
                
                
              
              &lt;div id="story-author-preview-content-4719494" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/ikrame-ih" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4053573%2Fa2e9d409-dc13-4fd0-afc9-e02a5bfd6b19.jpeg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ikrame Ibn Hayoun&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/ikrame-ih/an-introverted-dev-in-an-extroverted-world-4p04" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Sep 23&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/ikrame-ih/an-introverted-dev-in-an-extroverted-world-4p04" id="article-link-4719494"&gt;
          An introverted dev in an extroverted world
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/watercooler"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;watercooler&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/career"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;career&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/networking"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;networking&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/discuss"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;discuss&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/ikrame-ih/an-introverted-dev-in-an-extroverted-world-4p04" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;36&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;span class="crayons-story__favorited"&gt;
              &lt;span class="favorited-marker"&gt;
                &lt;span&gt;
                  

                &lt;/span&gt;
                &lt;span class="hidden"&gt;
                  

                &lt;/span&gt;
              &lt;/span&gt;
            &lt;/span&gt;
            &lt;a href="https://dev.to/ikrame-ih/an-introverted-dev-in-an-extroverted-world-4p04#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              32&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>career</category>
      <category>developer</category>
      <category>mentalhealth</category>
    </item>
    <item>
      <title>An introverted dev in an extroverted world</title>
      <dc:creator>Ikrame Ibn Hayoun</dc:creator>
      <pubDate>Wed, 23 Sep 2026 12:02:12 +0000</pubDate>
      <link>https://dev.to/ikrame-ih/an-introverted-dev-in-an-extroverted-world-4p04</link>
      <guid>https://dev.to/ikrame-ih/an-introverted-dev-in-an-extroverted-world-4p04</guid>
      <description>&lt;p&gt;&lt;em&gt;"Explain it to me in dev terms."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;My social battery has a &lt;strong&gt;rate limit&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The world isn't made for introverts: it's configured with &lt;strong&gt;extrovert defaults&lt;/strong&gt;. I realized that as a teenager, and it completely changed the way I saw everything and interacted with people.&lt;/p&gt;

&lt;p&gt;As strange as it sounds, realizing it made me more awkward, not less. Before, I simply talked, stayed quiet, left when I got tired. Then I started analyzing myself in every conversation, and analyzing everyone else too. Maybe that's where my overthinker side began: &lt;strong&gt;the constant monitoring consumes more resources than the interaction itself&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Being aware that I'm an introvert has also helped me manage myself much better: I know my &lt;strong&gt;rate limit&lt;/strong&gt;, I know I recharge alone, and I no longer see it as a &lt;strong&gt;bug&lt;/strong&gt;. I came without &lt;strong&gt;documentation&lt;/strong&gt;, so writing my own manual has taken me years.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Every time I walk out my front door, I carry the reminder with me: this world was built for a group of people that I don't belong to.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But wait, this isn't sad or a bad thing. Keep reading, will you?&lt;/p&gt;




&lt;p&gt;Even my interactions on social media feel more controlled. Social media is literally the place where you can be the freest version of yourself, and yet I still don't really post, speak up, or join in that much. I behave almost exactly as I do in real life.&lt;/p&gt;

&lt;p&gt;And you might be wondering: what does any of this have to do with being a developer? The truth is, the point I wanted to get to is networking. Especially in tech, I keep coming across people who are incredibly talented and just genuinely cool and kind. But I never get much further than the impulse to reply to one of their tweets or add a comment, let alone talk to them directly. And don't even get me started on events like hackathons.&lt;/p&gt;

&lt;p&gt;And honestly, I'm not shy. In fact, once I feel comfortable, I might just yappear non-stop about the interests i'm disgustingly well versed in&lt;/p&gt;

&lt;p&gt;Don't get me wrong: this isn't a complaint, and I'm not saying I'm uncomfortable being an introvert. Quite the opposite. I've always been someone who prefers to listen and observe, and not step in more than necessary. But I don't know, sometimes introverts get these sudden urges too. Sometimes we want a little while to role-play as extroverts.&lt;/p&gt;




&lt;p&gt;I don't know whether finding out was a gift or a burden; I suppose that, like almost everything, it was both at once.&lt;/p&gt;

&lt;p&gt;If your &lt;strong&gt;config&lt;/strong&gt; is the same, you already know what I mean.&lt;/p&gt;

&lt;p&gt;And now there's a question I would like to throw at you: is there any introvert or extrovert quality you don't have that you wish you did? Which one? Why?&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>career</category>
      <category>networking</category>
      <category>discuss</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Ikrame Ibn Hayoun</dc:creator>
      <pubDate>Thu, 17 Sep 2026 19:36:42 +0000</pubDate>
      <link>https://dev.to/ikrame-ih/-1go0</link>
      <guid>https://dev.to/ikrame-ih/-1go0</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf" class="crayons-story__hidden-navigation-link"&gt;Translating vs Localizing: what LLM agents get wrong about Spanish (and how I fixed it with a skill)&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/ikrame-ih" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4053573%2Fa2e9d409-dc13-4fd0-afc9-e02a5bfd6b19.jpeg" alt="ikrame-ih profile" class="crayons-avatar__image" width="736" height="736"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ikrame-ih" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ikrame Ibn Hayoun
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ikrame Ibn Hayoun
                
                
              
              &lt;div id="story-author-preview-content-4624915" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/ikrame-ih" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4053573%2Fa2e9d409-dc13-4fd0-afc9-e02a5bfd6b19.jpeg" class="crayons-avatar__image" alt="" width="736" height="736"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ikrame Ibn Hayoun&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Sep 10&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf" id="article-link-4624915"&gt;
          Translating vs Localizing: what LLM agents get wrong about Spanish (and how I fixed it with a skill)
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/showdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;showdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/i18n"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;i18n&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Ikrame Ibn Hayoun</dc:creator>
      <pubDate>Sun, 13 Sep 2026 11:38:19 +0000</pubDate>
      <link>https://dev.to/ikrame-ih/-32gm</link>
      <guid>https://dev.to/ikrame-ih/-32gm</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf" class="crayons-story__hidden-navigation-link"&gt;Translating vs Localizing: what LLM agents get wrong about Spanish (and how I fixed it with a skill)&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/ikrame-ih" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4053573%2Fa2e9d409-dc13-4fd0-afc9-e02a5bfd6b19.jpeg" alt="ikrame-ih profile" class="crayons-avatar__image" width="736" height="736"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ikrame-ih" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ikrame Ibn Hayoun
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ikrame Ibn Hayoun
                
                
              
              &lt;div id="story-author-preview-content-4624915" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/ikrame-ih" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4053573%2Fa2e9d409-dc13-4fd0-afc9-e02a5bfd6b19.jpeg" class="crayons-avatar__image" alt="" width="736" height="736"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ikrame Ibn Hayoun&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Sep 10&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf" id="article-link-4624915"&gt;
          Translating vs Localizing: what LLM agents get wrong about Spanish (and how I fixed it with a skill)
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/showdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;showdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/i18n"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;i18n&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Ikrame Ibn Hayoun</dc:creator>
      <pubDate>Sat, 12 Sep 2026 12:06:00 +0000</pubDate>
      <link>https://dev.to/ikrame-ih/-1o8a</link>
      <guid>https://dev.to/ikrame-ih/-1o8a</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf" class="crayons-story__hidden-navigation-link"&gt;Translating vs Localizing: what LLM agents get wrong about Spanish (and how I fixed it with a skill)&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/ikrame-ih" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4053573%2Fa2e9d409-dc13-4fd0-afc9-e02a5bfd6b19.jpeg" alt="ikrame-ih profile" class="crayons-avatar__image" width="736" height="736"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ikrame-ih" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ikrame Ibn Hayoun
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ikrame Ibn Hayoun
                
                
              
              &lt;div id="story-author-preview-content-4624915" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/ikrame-ih" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4053573%2Fa2e9d409-dc13-4fd0-afc9-e02a5bfd6b19.jpeg" class="crayons-avatar__image" alt="" width="736" height="736"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ikrame Ibn Hayoun&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Sep 10&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf" id="article-link-4624915"&gt;
          Translating vs Localizing: what LLM agents get wrong about Spanish (and how I fixed it with a skill)
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/showdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;showdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/i18n"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;i18n&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Ikrame Ibn Hayoun</dc:creator>
      <pubDate>Sat, 12 Sep 2026 10:33:05 +0000</pubDate>
      <link>https://dev.to/ikrame-ih/-3k62</link>
      <guid>https://dev.to/ikrame-ih/-3k62</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf" class="crayons-story__hidden-navigation-link"&gt;Translating vs Localizing: what LLM agents get wrong about Spanish (and how I fixed it with a skill)&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/ikrame-ih" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4053573%2Fa2e9d409-dc13-4fd0-afc9-e02a5bfd6b19.jpeg" alt="ikrame-ih profile" class="crayons-avatar__image" width="736" height="736"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ikrame-ih" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ikrame Ibn Hayoun
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ikrame Ibn Hayoun
                
                
              
              &lt;div id="story-author-preview-content-4624915" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/ikrame-ih" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4053573%2Fa2e9d409-dc13-4fd0-afc9-e02a5bfd6b19.jpeg" class="crayons-avatar__image" alt="" width="736" height="736"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ikrame Ibn Hayoun&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Sep 10&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf" id="article-link-4624915"&gt;
          Translating vs Localizing: what LLM agents get wrong about Spanish (and how I fixed it with a skill)
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/showdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;showdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/i18n"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;i18n&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Ikrame Ibn Hayoun</dc:creator>
      <pubDate>Fri, 11 Sep 2026 19:20:00 +0000</pubDate>
      <link>https://dev.to/ikrame-ih/-2ici</link>
      <guid>https://dev.to/ikrame-ih/-2ici</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf" class="crayons-story__hidden-navigation-link"&gt;Translating vs Localizing: what LLM agents get wrong about Spanish (and how I fixed it with a skill)&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/ikrame-ih" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4053573%2Fa2e9d409-dc13-4fd0-afc9-e02a5bfd6b19.jpeg" alt="ikrame-ih profile" class="crayons-avatar__image" width="736" height="736"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ikrame-ih" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ikrame Ibn Hayoun
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ikrame Ibn Hayoun
                
                
              
              &lt;div id="story-author-preview-content-4624915" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/ikrame-ih" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4053573%2Fa2e9d409-dc13-4fd0-afc9-e02a5bfd6b19.jpeg" class="crayons-avatar__image" alt="" width="736" height="736"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ikrame Ibn Hayoun&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Sep 10&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf" id="article-link-4624915"&gt;
          Translating vs Localizing: what LLM agents get wrong about Spanish (and how I fixed it with a skill)
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/showdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;showdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/i18n"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;i18n&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Ikrame Ibn Hayoun</dc:creator>
      <pubDate>Fri, 11 Sep 2026 15:35:23 +0000</pubDate>
      <link>https://dev.to/ikrame-ih/-4nnn</link>
      <guid>https://dev.to/ikrame-ih/-4nnn</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf" class="crayons-story__hidden-navigation-link"&gt;Translating vs Localizing: what LLM agents get wrong about Spanish (and how I fixed it with a skill)&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/ikrame-ih" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4053573%2Fa2e9d409-dc13-4fd0-afc9-e02a5bfd6b19.jpeg" alt="ikrame-ih profile" class="crayons-avatar__image" width="736" height="736"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ikrame-ih" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ikrame Ibn Hayoun
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ikrame Ibn Hayoun
                
                
              
              &lt;div id="story-author-preview-content-4624915" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/ikrame-ih" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4053573%2Fa2e9d409-dc13-4fd0-afc9-e02a5bfd6b19.jpeg" class="crayons-avatar__image" alt="" width="736" height="736"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ikrame Ibn Hayoun&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Sep 10&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf" id="article-link-4624915"&gt;
          Translating vs Localizing: what LLM agents get wrong about Spanish (and how I fixed it with a skill)
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/showdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;showdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/i18n"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;i18n&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Translating vs Localizing: what LLM agents get wrong about Spanish (and how I fixed it with a skill)</title>
      <dc:creator>Ikrame Ibn Hayoun</dc:creator>
      <pubDate>Thu, 10 Sep 2026 14:27:58 +0000</pubDate>
      <link>https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf</link>
      <guid>https://dev.to/ikrame-ih/translating-localizing-what-llm-agents-get-wrong-about-spanish-and-how-i-fixed-it-with-a-skill-3plf</guid>
      <description>&lt;p&gt;I'm a native Spanish speaker who builds websites in English first and localizes them into Spanish later. And here's the thing most people miss: &lt;em&gt;Spanish is not one language, and English isn't either.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Some real examples of what "translating" gets wrong:&lt;/p&gt;

&lt;h2&gt;
  
  
  The plural you
&lt;/h2&gt;

&lt;p&gt;In Spain, informal plural is vosotros. In Latin America it simply doesn't exist - they use ustedes instead. An agent that mixes both in the same interface instantly reads as machine-translated to millions of native speakers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbql47mcvqws69jv3hoc3.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbql47mcvqws69jv3hoc3.jpeg" alt="Comic-style illustration of a confused robot standing between two speech bubbles saying " width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The vocabulary minefield
&lt;/h2&gt;

&lt;p&gt;In Spain you use an ordenador and a móvil. In Latin America it's a computadora and a celular. Neither is wrong - but picking the wrong one for your market makes your product feel foreign.&lt;/p&gt;

&lt;h2&gt;
  
  
  English has the same problem
&lt;/h2&gt;

&lt;p&gt;colour vs color is the obvious one, but it goes deeper: in British English licence is the noun and license is the verb; American English uses license for both. A Brit writes a CV and lives in a flat on the ground floor; an American writes a resume and lives in an apartment on the first floor - which is a different floor entirely.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dates silently lie
&lt;/h2&gt;

&lt;p&gt;04/05/2026 is April 5th in the US and May 4th almost everywhere else. All-numeric dates are a bug factory when content crosses markets.&lt;/p&gt;

&lt;h2&gt;
  
  
  The "aterrizar" incident
&lt;/h2&gt;

&lt;p&gt;A website for foreigners moving to Málaga got "landing in Málaga" translated as "aterrizando en Málaga". And here's the thing: it's not exactly wrong - "aterrizar" does mean "to land". The problem is that no Spaniard would ever say it like that. Someone from Spain would say "mudarse a Málaga" or "trasladarse a Málaga", because that's how people actually talk about moving to a city. "Aterrizar" is what planes do 🛬.&lt;/p&gt;

&lt;p&gt;That's the gap in a nutshell: the model produced a dictionary-correct translation that sounds robotic to every native speaker it was meant for. It had full context and still went word-by-word.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why does this happen to AI agents?
&lt;/h2&gt;

&lt;p&gt;Because translation is a word-level task and localization is a context-level one. Agents default to the statistical center of "Spanish", which is really a blend of twenty countries. They merge conventions from different locales, translate placeholders and ICU messages that should stay untouched, and guess when they should ask.&lt;/p&gt;

&lt;p&gt;So I built an agent skill that forces the right behavior:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3dctxo55yp69dlsguuu4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3dctxo55yp69dlsguuu4.jpg" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;A dedicated reference guide per locale&lt;/em&gt; (en-GB, en-US, es-ES, es-419). Never borrow conventions from a neighboring locale - that's exactly how the vosotros/ustedes mixing happens.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Context before words:&lt;/em&gt; the agent reads the page, the component and the user journey before resolving anything ambiguous. That's how "landing" becomes "tu nueva vida" instead of "aterrizando".&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Structural safety:&lt;/em&gt; keys, placeholders, ICU messages, HTML tags and links stay untranslated. A Python guard diffs JSON catalogs and catches missing keys, type drift, broken placeholders and mojibake:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;python scripts/locale_guard.py en.json es.json&lt;/p&gt;

&lt;p&gt;npx skills add ikrame-ih/english-spanish-web-localization&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/ikrame-ih" rel="noopener noreferrer"&gt;
        ikrame-ih
      &lt;/a&gt; / &lt;a href="https://github.com/ikrame-ih/english-spanish-web-localization" rel="noopener noreferrer"&gt;
        english-spanish-web-localization
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Context-aware EN↔ES web localization (en-GB/en-US/es-ES/es-419). Offline locale_guard; benchmarks pending.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;English–Spanish Web Localization&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/ikrame-ih/english-spanish-web-localization#english" rel="noopener noreferrer"&gt;English&lt;/a&gt; · &lt;a href="https://github.com/ikrame-ih/english-spanish-web-localization#espa%C3%B1ol" rel="noopener noreferrer"&gt;Español&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;English&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;A reusable agent skill for context-aware, bidirectional localization of websites and digital products across four deliberately separate locales:&lt;/p&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Locale&lt;/th&gt;
&lt;th&gt;Target variety&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;en-GB&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;British English&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;en-US&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;US English&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;es-ES&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Spanish for Spain&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;es-419&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Broad Latin American Spanish&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Offline package checks pass (&lt;a href="https://github.com/ikrame-ih/english-spanish-web-localization/VALIDATION.md" rel="noopener noreferrer"&gt;VALIDATION.md&lt;/a&gt;). Instant mini-proof: &lt;a href="https://github.com/ikrame-ih/english-spanish-web-localization/benchmarks/results/instant-mini-2026-09-10/" rel="noopener noreferrer"&gt;&lt;code&gt;benchmarks/results/instant-mini-2026-09-10/&lt;/code&gt;&lt;/a&gt;. I checked these myself; the full 30-case blind review is still ahead. Portfolio and external paired scores are still pending. Not for certified/sworn, legal, medical, or financial translation. Does not promise universal ATS compatibility.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is not a word-replacement prompt. It treats copy as part of a product journey and evaluates meaning, audience, market, interface function, terminology, accessibility, SEO, layout constraints, and technical integrity before selecting a target formulation.&lt;/p&gt;
&lt;p&gt;It also applies that standard outside a webpage: portfolios, CVs, Markdown, documentation, emails, forms, CMS exports, and locale catalogues. The format changes the checks, not the required…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/ikrame-ih/english-spanish-web-localization" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Built for my own workflow, published in case it saves someone else a few "aterrizar" moments. &lt;em&gt;What's the funniest literal translation you've caught an LLM producing?&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqoddmf6sfsffgb808r16.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqoddmf6sfsffgb808r16.jpeg" alt="Comic-style illustration of a robot dressed as a detective inspecting a terminal screen of JSON code through a magnifying glass, finding one broken key glowing red, while a girl with glasses celebrates" width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>i18n</category>
      <category>webdev</category>
      <category>ai</category>
      <category>showdev</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Ikrame Ibn Hayoun</dc:creator>
      <pubDate>Sun, 06 Sep 2026 10:47:24 +0000</pubDate>
      <link>https://dev.to/ikrame-ih/-59om</link>
      <guid>https://dev.to/ikrame-ih/-59om</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/ikrame-ih/i-kept-seeing-the-same-git-complaint-on-reddit-so-i-wrote-a-small-cli-for-it-1k6i" class="crayons-story__hidden-navigation-link"&gt;I kept seeing the same Git complaint on Reddit, so I wrote a small CLI for it&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/ikrame-ih" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4053573%2Fa2e9d409-dc13-4fd0-afc9-e02a5bfd6b19.jpeg" alt="ikrame-ih profile" class="crayons-avatar__image" width="736" height="736"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ikrame-ih" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ikrame Ibn Hayoun
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ikrame Ibn Hayoun
                
                
              
              &lt;div id="story-author-preview-content-4324678" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/ikrame-ih" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4053573%2Fa2e9d409-dc13-4fd0-afc9-e02a5bfd6b19.jpeg" class="crayons-avatar__image" alt="" width="736" height="736"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ikrame Ibn Hayoun&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/ikrame-ih/i-kept-seeing-the-same-git-complaint-on-reddit-so-i-wrote-a-small-cli-for-it-1k6i" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 5&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/ikrame-ih/i-kept-seeing-the-same-git-complaint-on-reddit-so-i-wrote-a-small-cli-for-it-1k6i" id="article-link-4324678"&gt;
          I kept seeing the same Git complaint on Reddit, so I wrote a small CLI for it
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/python"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;python&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/git"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;git&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/development"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;development&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/ikrame-ih/i-kept-seeing-the-same-git-complaint-on-reddit-so-i-wrote-a-small-cli-for-it-1k6i#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Ikrame Ibn Hayoun</dc:creator>
      <pubDate>Sun, 06 Sep 2026 10:40:52 +0000</pubDate>
      <link>https://dev.to/ikrame-ih/-1hpf</link>
      <guid>https://dev.to/ikrame-ih/-1hpf</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/ikrame-ih/the-blurry-line-between-junior-and-mid-level-from-an-ai-era-developer-5a81" class="crayons-story__hidden-navigation-link"&gt;The blurry line between junior and mid-level, from an AI-era developer&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/ikrame-ih" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4053573%2Fa2e9d409-dc13-4fd0-afc9-e02a5bfd6b19.jpeg" alt="ikrame-ih profile" class="crayons-avatar__image" width="736" height="736"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ikrame-ih" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ikrame Ibn Hayoun
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ikrame Ibn Hayoun
                
                
              
              &lt;div id="story-author-preview-content-4349795" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/ikrame-ih" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4053573%2Fa2e9d409-dc13-4fd0-afc9-e02a5bfd6b19.jpeg" class="crayons-avatar__image" alt="" width="736" height="736"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ikrame Ibn Hayoun&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/ikrame-ih/the-blurry-line-between-junior-and-mid-level-from-an-ai-era-developer-5a81" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 8&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/ikrame-ih/the-blurry-line-between-junior-and-mid-level-from-an-ai-era-developer-5a81" id="article-link-4349795"&gt;
          The blurry line between junior and mid-level, from an AI-era developer
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/discuss"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;discuss&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/ikrame-ih/the-blurry-line-between-junior-and-mid-level-from-an-ai-era-developer-5a81#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
  </channel>
</rss>
