<?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: Germán Aliprandi</title>
    <description>The latest articles on DEV Community by Germán Aliprandi (@galiprandi).</description>
    <link>https://dev.to/galiprandi</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%2F1481584%2F2c1decca-b979-499f-b00d-a2905d446d69.png</url>
      <title>DEV Community: Germán Aliprandi</title>
      <link>https://dev.to/galiprandi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/galiprandi"/>
    <language>en</language>
    <item>
      <title>The Anti-LLM Checklist: How I Made AI-Written Recruiter Messages Sound Human</title>
      <dc:creator>Germán Aliprandi</dc:creator>
      <pubDate>Thu, 13 Aug 2026 02:57:54 +0000</pubDate>
      <link>https://dev.to/galiprandi/the-anti-llm-checklist-how-i-made-ai-written-recruiter-messages-sound-human-31a5</link>
      <guid>https://dev.to/galiprandi/the-anti-llm-checklist-how-i-made-ai-written-recruiter-messages-sound-human-31a5</guid>
      <description>&lt;p&gt;If you've used an AI coding agent to draft messages, you know the problem. The output is easy to spot. Em-dashes everywhere. Bullet points in DMs. Polished paragraphs that no human would type in a LinkedIn message.&lt;/p&gt;

&lt;p&gt;Recruiters get dozens of these. They can tell.&lt;/p&gt;

&lt;p&gt;I built an anti-LLM checklist for recruiter replies as part of &lt;a href="https://github.com/galiprandi/job-seeker" rel="noopener noreferrer"&gt;Job Seeker&lt;/a&gt;, an open source set of markdown skills that any coding agent (Claude Code, Cursor, Devin, opencode) consumes to search, apply, and track jobs. The checklist forces the agent to sound human before showing you the draft.&lt;/p&gt;

&lt;h2&gt;
  
  
  The checklist
&lt;/h2&gt;

&lt;p&gt;Before any recruiter reply is shown to the user, the agent runs it through this checklist:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No em-dashes&lt;/strong&gt; (—). Use commas, periods, or parentheses. Em-dashes are the #1 tell that something was AI-written.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No bullet points in chat/DM messages.&lt;/strong&gt; Bullets are for docs, not LinkedIn messages. A human writes in flowing text.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conversational tone&lt;/strong&gt;, not formal/structured. A human doesn't write polished paragraphs in a DM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maximum 2 short paragraphs.&lt;/strong&gt; If it's longer, it's over-explaining.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't mention company research&lt;/strong&gt; in a way that sounds like it was googled 2 minutes ago. If mentioning something, make it natural.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't repeat JD keywords&lt;/strong&gt; obviously. If the job description says "agent orchestration, RAG and evaluation strategies", don't parrot it back.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mimic the user's previous messages&lt;/strong&gt; for tone and length. If no style profile exists, mimic the recruiter's tone.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the draft doesn't pass, the agent rewrites it before showing it to you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters
&lt;/h2&gt;

&lt;p&gt;The goal isn't deception. It's about not sounding like every other AI-written message a recruiter receives. When every message has em-dashes, bullet points, and structured paragraphs, the human-written ones stand out. And not in a good way for the AI-assisted ones.&lt;/p&gt;

&lt;p&gt;The checklist lives in the Gold Rules (&lt;code&gt;AGENTS.md&lt;/code&gt;) of the repository, so any agent that reads the repo follows it automatically. No config, no prompting, it's baked in.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works in practice
&lt;/h2&gt;

&lt;p&gt;When the &lt;code&gt;news&lt;/code&gt; skill detects a recruiter message (via Gmail or LinkedIn), it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Extracts action items (calendar link? CV request? scheduling?)&lt;/li&gt;
&lt;li&gt;Analyzes the proposal (company, role, salary if mentioned)&lt;/li&gt;
&lt;li&gt;Researches the company&lt;/li&gt;
&lt;li&gt;Drafts a reply that passes the anti-LLM checklist&lt;/li&gt;
&lt;li&gt;Shows you the draft with analysis and action items&lt;/li&gt;
&lt;li&gt;Waits for your approval before sending&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You always approve before anything is sent. The agent does the drafting, you do the deciding.&lt;/p&gt;

&lt;h2&gt;
  
  
  The bigger picture
&lt;/h2&gt;

&lt;p&gt;This checklist is one piece of &lt;a href="https://github.com/galiprandi/job-seeker" rel="noopener noreferrer"&gt;Job Seeker&lt;/a&gt;, an open source project that turns any coding agent into a job search assistant. The agent searches LinkedIn with your preference filters, fills Easy Apply forms from your Postgres database, tracks applications in a kanban pipeline, and drafts recruiter replies that sound human.&lt;/p&gt;

&lt;p&gt;It's MIT licensed, candidate-agnostic (no personal data in the repo), and works with any agent that reads markdown.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Repo: &lt;a href="https://github.com/galiprandi/job-seeker" rel="noopener noreferrer"&gt;github.com/galiprandi/job-seeker&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Docs: &lt;a href="https://galiprandi.github.io/job-seeker/" rel="noopener noreferrer"&gt;galiprandi.github.io/job-seeker&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're using AI to write recruiter messages, try this checklist. It makes a difference.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>career</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I Open Sourced a Tool That Lets Your AI Coding Agent Apply to Jobs for You</title>
      <dc:creator>Germán Aliprandi</dc:creator>
      <pubDate>Sun, 09 Aug 2026 02:29:49 +0000</pubDate>
      <link>https://dev.to/galiprandi/i-open-sourced-a-tool-that-lets-your-ai-coding-agent-apply-to-jobs-for-you-14n</link>
      <guid>https://dev.to/galiprandi/i-open-sourced-a-tool-that-lets-your-ai-coding-agent-apply-to-jobs-for-you-14n</guid>
      <description>&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%2Fwo487bau2gicjo05o4ak.png" 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%2Fwo487bau2gicjo05o4ak.png" alt="Job Seeker Dashboard" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After months of manually scrolling job boards and filling the same Easy Apply form 200 times, I decided to automate it. But not with a SaaS or a Chrome extension. With the coding agent I already use every day.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;The average tech job seeker spends 5-8 hours per week on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Searching LinkedIn with the same filters&lt;/li&gt;
&lt;li&gt;Filling Easy Apply forms that ask the same 15 questions&lt;/li&gt;
&lt;li&gt;Tracking applications in a spreadsheet that's always out of date&lt;/li&gt;
&lt;li&gt;Drafting replies to recruiters while trying not to sound like a robot&lt;/li&gt;
&lt;li&gt;Forgetting which companies they already applied to&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The solution: skills, not code
&lt;/h2&gt;

&lt;p&gt;I built Job Seeker, an open source set of markdown skills that any coding agent (Devin, Claude, Cursor, opencode) can consume. Your agent reads the skills, uses a playwright-cli wrapper for browser automation, and stores everything in a Postgres database.&lt;/p&gt;

&lt;p&gt;It's not an agent. It's the instructions and scripts that make your agent a job search assistant.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;You: "apply to 5 jobs"
  -&amp;gt; Agent loads your profile from DB
  -&amp;gt; Searches LinkedIn with your Must-have filters
  -&amp;gt; Applies via Easy Apply (form data from DB)
  -&amp;gt; Registers every application
  -&amp;gt; Shows you a summary
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  9 flows
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Flow&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;onboarding&lt;/td&gt;
&lt;td&gt;Browser setup, Gmail + LinkedIn login, DB creation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;profile&lt;/td&gt;
&lt;td&gt;CV extraction + 30-preference questionnaire with Must/Strong/Nice weights&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;strategy&lt;/td&gt;
&lt;td&gt;passive/selective/active/aggressive levels&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;apply&lt;/td&gt;
&lt;td&gt;LinkedIn search + Easy Apply&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;news&lt;/td&gt;
&lt;td&gt;Gmail + LinkedIn inbox review, draft replies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;daily&lt;/td&gt;
&lt;td&gt;Runs news + apply automatically&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;radar&lt;/td&gt;
&lt;td&gt;Register on job boards, set up alerts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;targets&lt;/td&gt;
&lt;td&gt;Apply directly to 40 target companies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;memory&lt;/td&gt;
&lt;td&gt;Autonomous preference detection and storage&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Key design decisions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Skills as markdown.&lt;/strong&gt; Any agent that reads markdown can use them. No vendor lock-in, no API keys, no SaaS dependency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Candidate-agnostic repo.&lt;/strong&gt; No personal data in any tracked file. Everything lives in your own Neon Postgres DB. Clone, run onboarding, done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Browser isolation.&lt;/strong&gt; Dedicated Chrome profile via playwright-cli wrapper. Headless by default, headed only for manual login and 2FA. The agent never handles credentials.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Strategy levels.&lt;/strong&gt; passive, selective, active, aggressive. Each controls batch sizes, frequency, match thresholds, and which Must-haves to relax. Pick a level and all flows respect it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Anti-LLM messages.&lt;/strong&gt; Recruiter replies pass a checklist: no em-dashes, no bullet points in DMs, conversational tone, max 2 short paragraphs, mimic the user's style profile from DB.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Form data from DB only.&lt;/strong&gt; The agent never invents values. If a field is missing, it stops, asks the user, saves the answer, and continues.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/galiprandi/job-seeker.git
&lt;span class="nb"&gt;cd &lt;/span&gt;job-seeker
npm &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create a &lt;code&gt;.env&lt;/code&gt; with your Neon Postgres connection string, then tell your coding agent: "run the onboarding skill."&lt;/p&gt;

&lt;p&gt;After onboarding: "apply to 5 jobs" or "check for updates."&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Repo:&lt;/strong&gt; &lt;a href="https://github.com/galiprandi/job-seeker" rel="noopener noreferrer"&gt;https://github.com/galiprandi/job-seeker&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docs:&lt;/strong&gt; &lt;a href="https://galiprandi.github.io/job-seeker/" rel="noopener noreferrer"&gt;https://galiprandi.github.io/job-seeker/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Demo:&lt;/strong&gt; &lt;a href="https://github.com/galiprandi/job-seeker/releases/download/v0.1.0/demo-terminal.webm" rel="noopener noreferrer"&gt;https://github.com/galiprandi/job-seeker/releases/download/v0.1.0/demo-terminal.webm&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;MIT licensed. If it helps you, give it a star.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>ai</category>
      <category>jobsearch</category>
      <category>career</category>
    </item>
    <item>
      <title>Introducing react-tools: A Toolbox for Streamlining React Development</title>
      <dc:creator>Germán Aliprandi</dc:creator>
      <pubDate>Fri, 24 May 2024 01:56:18 +0000</pubDate>
      <link>https://dev.to/galiprandi/introducing-react-tools-a-toolbox-for-streamlining-react-development-2f23</link>
      <guid>https://dev.to/galiprandi/introducing-react-tools-a-toolbox-for-streamlining-react-development-2f23</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fgaliprandi%2Freact-tools%2Fc2f5fd07d40f5c66942dff453d91fd6bce17d97e%2Fsrc%2Fassets%2Freact-tools-slim.svg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fgaliprandi%2Freact-tools%2Fc2f5fd07d40f5c66942dff453d91fd6bce17d97e%2Fsrc%2Fassets%2Freact-tools-slim.svg" alt="react-tools"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Introducing &lt;code&gt;@galiprandi/react-tools&lt;/code&gt;: A Toolbox for Streamlining React Development
&lt;/h3&gt;

&lt;p&gt;Are you looking to simplify your React development process? Look no further than &lt;code&gt;@galiprandi/react-tools&lt;/code&gt;. This comprehensive package offers a range of intuitive utilities designed to enhance your React applications. Let's explore some of its key components and hooks:&lt;/p&gt;

&lt;h3&gt;
  
  
  Playground
&lt;/h3&gt;

&lt;p&gt;Before diving into the details, why not take a test drive? Visit the &lt;a href="https://stackblitz.com/edit/vitejs-vite-7c9m54?file=src%2FApp.tsx" rel="noopener noreferrer"&gt;@galiprandi/react-tools Playground&lt;/a&gt; to experiment with the components firsthand.&lt;/p&gt;

&lt;h3&gt;
  
  
  Installation
&lt;/h3&gt;

&lt;p&gt;Getting started is a breeze. Simply install the package using your preferred package manager:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm i @galiprandi/react-tools
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pnpm i @galiprandi/react-tools
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;yarn add @galiprandi/react-tools
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Components
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;code&gt;&amp;lt;Form /&amp;gt;&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;Simplify form creation with the &lt;code&gt;&amp;lt;Form /&amp;gt;&lt;/code&gt; component. This component wraps the &lt;code&gt;form&lt;/code&gt; HTML tag, offering a straightforward approach to building forms in your React application. Additional props like &lt;code&gt;onSubmitValues&lt;/code&gt; and &lt;code&gt;filterEmptyValues&lt;/code&gt; provide enhanced functionality.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;code&gt;&amp;lt;Input /&amp;gt;&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;Enhance user input experiences with the &lt;code&gt;&amp;lt;Input /&amp;gt;&lt;/code&gt; component. This reusable input wrapper adds consistency to your forms and accepts various props for customization, including &lt;code&gt;label&lt;/code&gt;, &lt;code&gt;onChangeValue&lt;/code&gt;, and &lt;code&gt;debounceDelay&lt;/code&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;code&gt;&amp;lt;DateTime /&amp;gt;&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;Need date and time input functionality? Look no further than the &lt;code&gt;&amp;lt;DateTime /&amp;gt;&lt;/code&gt; component. This wrapper around the native &lt;code&gt;input&lt;/code&gt; element with &lt;code&gt;type="datetime-local"&lt;/code&gt; offers convenient date selection with additional props for customization.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;code&gt;&amp;lt;Dialog /&amp;gt;&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;Create accessible dialogs and modals effortlessly with the &lt;code&gt;&amp;lt;Dialog /&amp;gt;&lt;/code&gt; component. This wrapper around the &lt;code&gt;dialog&lt;/code&gt; HTML tag simplifies dialog creation, with options for defining behavior, callbacks, and content.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;code&gt;&amp;lt;Observer /&amp;gt;&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;Track element visibility with the &lt;code&gt;&amp;lt;Observer /&amp;gt;&lt;/code&gt; component. Whether you're implementing lazy loading images or infinite scrolling, this component offers a straightforward solution for monitoring viewport interactions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hooks
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;code&gt;useDebounce()&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;Streamline asynchronous operations with the &lt;code&gt;useDebounce()&lt;/code&gt; hook. This simple yet powerful hook accepts a value and delay, returning a debounced value to optimize performance.&lt;/p&gt;

&lt;h3&gt;
  
  
  Contribution
&lt;/h3&gt;

&lt;p&gt;Your contributions are valuable! Whether it's bug fixes, feature enhancements, or documentation improvements, contributions are welcome. Simply fork the repository, make your changes, and open a pull request.&lt;/p&gt;

&lt;h3&gt;
  
  
  License
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;@galiprandi/react-tools&lt;/code&gt; is licensed under the MIT License, providing flexibility for both personal and commercial use.&lt;/p&gt;

&lt;p&gt;Ready to simplify your React development workflow? Install &lt;a href="https://www.npmjs.com/package/@galiprandi/react-tools" rel="noopener noreferrer"&gt;@galiprandi/react-tools&lt;/a&gt; today and experience the difference firsthand. Happy coding!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>💡 La clave del desarrollo frontend eficiente: Composición sobre Programación</title>
      <dc:creator>Germán Aliprandi</dc:creator>
      <pubDate>Wed, 22 May 2024 17:48:10 +0000</pubDate>
      <link>https://dev.to/galiprandi/la-clave-del-desarrollo-frontend-eficiente-composicion-sobre-programacion-30cj</link>
      <guid>https://dev.to/galiprandi/la-clave-del-desarrollo-frontend-eficiente-composicion-sobre-programacion-30cj</guid>
      <description>&lt;p&gt;Cuando iniciamos el desarrollo de aplicaciones frontend, &lt;strong&gt;el primer paso crucial es la programación&lt;/strong&gt;. Este es el momento en el que sentamos las bases, diseñamos los componentes y establecemos la lógica fundamental.&lt;/p&gt;

&lt;p&gt;Sin embargo, una vez que esta fase inicial está bien hecha, la verdadera magia comienza. En lugar de continuar programando desde cero cada nueva funcionalidad, &lt;strong&gt;el enfoque debe cambiar a componer&lt;/strong&gt;. ¿Qué significa esto?&lt;/p&gt;

&lt;p&gt;🔹 &lt;strong&gt;Componentes Reutilizables&lt;/strong&gt;: Si hemos creado nuestros componentes de manera modular y reutilizable, podemos ensamblar nuevas funcionalidades simplemente combinando estos bloques de construcción existentes.&lt;br&gt;
🔹 &lt;strong&gt;Escalabilidad y Mantenimiento&lt;/strong&gt;: Este enfoque no solo acelera el desarrollo sino que también facilita el mantenimiento y la escalabilidad de la aplicación. Cambios en la lógica o el diseño se pueden implementar más fácilmente sin romper todo el sistema.&lt;br&gt;
🔹 &lt;strong&gt;Eficiencia y Calidad&lt;/strong&gt;: La composición nos permite enfocarnos en mejorar y optimizar las piezas existentes, garantizando una mayor calidad y coherencia en toda la aplicación.&lt;/p&gt;

&lt;p&gt;Una forma de saber si hemos hecho bien nuestro trabajo es observar que, a medida que el proyecto madure y avance, &lt;strong&gt;cada vez programaremos menos y compondremos más&lt;/strong&gt;, reutilizando las piezas de software que decidimos crear al comienzo del proyecto.&lt;/p&gt;

&lt;p&gt;Así que, al diseñar tus aplicaciones frontend, &lt;strong&gt;dedica el tiempo necesario a la fase inicial de programación&lt;/strong&gt;. Un buen cimiento permitirá que en el futuro, tu desarrollo sea más sobre ensamblar y menos sobre programar desde cero. La eficiencia y la calidad de tu software te lo agradecerán.&lt;/p&gt;

&lt;p&gt;¿Qué opinas sobre este enfoque? ¿Cómo has manejado la composición y programación en tus proyectos? ¡Me encantaría leer tus experiencias!&lt;/p&gt;

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