<?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: Frederick Peñalo</title>
    <description>The latest articles on DEV Community by Frederick Peñalo (@frederickpeal).</description>
    <link>https://dev.to/frederickpeal</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F252854%2F47ead432-0141-4e77-8707-96cd2ada11c7.jpeg</url>
      <title>DEV Community: Frederick Peñalo</title>
      <link>https://dev.to/frederickpeal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/frederickpeal"/>
    <language>en</language>
    <item>
      <title>As an old backend PHP developer (old… but I’m 27 😅), this post is awesome for me.
Great tips and very easy to understand. — I invite everyone to learn it!</title>
      <dc:creator>Frederick Peñalo</dc:creator>
      <pubDate>Fri, 06 Feb 2026 05:38:45 +0000</pubDate>
      <link>https://dev.to/frederickpeal/as-an-old-backend-php-developer-old-but-im-27-this-post-is-awesome-for-me-great-tips-and-lj</link>
      <guid>https://dev.to/frederickpeal/as-an-old-backend-php-developer-old-but-im-27-this-post-is-awesome-for-me-great-tips-and-lj</guid>
      <description>&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/sylwia-lask/stop-installing-libraries-10-browser-apis-that-already-solve-your-problems-35bi" class="crayons-story__hidden-navigation-link"&gt;Stop Installing Libraries: 10 Browser APIs That Already Solve Your Problems&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="/sylwia-lask" 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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3535771%2Fe22860d5-274b-43c9-819b-56b162e5bd5a.jpeg" alt="sylwia-lask profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/sylwia-lask" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Sylwia Laskowska
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Sylwia Laskowska
                
              
              &lt;div id="story-author-preview-content-3228463" 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="/sylwia-lask" 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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3535771%2Fe22860d5-274b-43c9-819b-56b162e5bd5a.jpeg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Sylwia Laskowska&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/sylwia-lask/stop-installing-libraries-10-browser-apis-that-already-solve-your-problems-35bi" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 4&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/sylwia-lask/stop-installing-libraries-10-browser-apis-that-already-solve-your-problems-35bi" id="article-link-3228463"&gt;
          Stop Installing Libraries: 10 Browser APIs That Already Solve Your Problems
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&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/frontend"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;frontend&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/javascript"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;javascript&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/sylwia-lask/stop-installing-libraries-10-browser-apis-that-already-solve-your-problems-35bi" 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/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/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/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;251&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/sylwia-lask/stop-installing-libraries-10-browser-apis-that-already-solve-your-problems-35bi#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              88&lt;span class="hidden s:inline"&gt; 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;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;




</description>
      <category>webdev</category>
      <category>frontend</category>
      <category>javascript</category>
    </item>
    <item>
      <title>My production server almost went down because of one library</title>
      <dc:creator>Frederick Peñalo</dc:creator>
      <pubDate>Sun, 25 Jan 2026 03:55:20 +0000</pubDate>
      <link>https://dev.to/frederickpeal/my-production-server-almost-went-down-because-of-one-library-186e</link>
      <guid>https://dev.to/frederickpeal/my-production-server-almost-went-down-because-of-one-library-186e</guid>
      <description>&lt;p&gt;Sorry if the title sounds a bit weird, but I want to tell you about a real production bug that almost took down all our clients.&lt;/p&gt;

&lt;p&gt;We run &lt;strong&gt;Kanvas Ecosystem&lt;/strong&gt;, a backend that powers several frontend apps. One of our core pieces is a filesystem manager: users upload files (images, audio, video, GIFs, etc.) and later attach them to different entities in the system.&lt;/p&gt;

&lt;p&gt;Everything was working fine… until it wasn’t.&lt;/p&gt;

&lt;p&gt;About 3 or 4 months ago, someone installed a new cache-related library in our Laravel project.&lt;/p&gt;

&lt;p&gt;That’s when the problems quietly started.&lt;/p&gt;




&lt;h2&gt;
  
  
  First rule (learned the hard way)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Never install a new library without talking to your team and testing all scenarios.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The chaos begins
&lt;/h2&gt;

&lt;p&gt;Last week, I launched a new feature: an image scraper.&lt;br&gt;&lt;br&gt;
Users type a word, we scrape images, download them, and store them using our filesystem manager.&lt;/p&gt;

&lt;p&gt;Suddenly, production went down.&lt;br&gt;&lt;br&gt;
All clients. All apps.&lt;/p&gt;

&lt;p&gt;My boss called me worried, so we jumped into a meeting to find the issue.&lt;/p&gt;

&lt;p&gt;Hours went by.&lt;br&gt;&lt;br&gt;
Our code looked perfect.&lt;br&gt;&lt;br&gt;
Dev environment worked.&lt;br&gt;&lt;br&gt;
Tests were passing.&lt;/p&gt;

&lt;p&gt;So we thought it might be a CPU issue.&lt;br&gt;&lt;br&gt;
We added more cores and optimized the scraper.&lt;/p&gt;

&lt;p&gt;Still broken.&lt;/p&gt;




&lt;h2&gt;
  
  
  The first real clue
&lt;/h2&gt;

&lt;p&gt;We created a new server from an AWS image.&lt;/p&gt;

&lt;p&gt;Same problem.&lt;/p&gt;

&lt;p&gt;That made no sense.&lt;/p&gt;

&lt;p&gt;Then we checked other services and discovered that Redis was down.&lt;/p&gt;

&lt;p&gt;We increased Redis capacity and tested again in the dev environment.&lt;br&gt;&lt;br&gt;
I uploaded one simple image.&lt;/p&gt;

&lt;p&gt;It took &lt;strong&gt;47 seconds&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;At that point I just thought: why?&lt;/p&gt;




&lt;h2&gt;
  
  
  Changing approach
&lt;/h2&gt;

&lt;p&gt;I stopped testing only the scraper and started testing everything related to the filesystem manager.&lt;/p&gt;

&lt;p&gt;The same issue appeared everywhere.&lt;br&gt;&lt;br&gt;
All clients were affected.&lt;/p&gt;

&lt;p&gt;I debugged method by method.&lt;br&gt;&lt;br&gt;
My code looked clean.&lt;br&gt;&lt;br&gt;
Nothing suspicious.&lt;/p&gt;

&lt;p&gt;Until I noticed something.&lt;/p&gt;




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

&lt;p&gt;At the top of one class, there was a strange line.&lt;/p&gt;

&lt;p&gt;An import from that cache library.&lt;/p&gt;

&lt;p&gt;Just to test, with zero hope, I removed it.&lt;/p&gt;

&lt;p&gt;The upload time dropped to &lt;strong&gt;100ms&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I stared at the screen for a few seconds.&lt;/p&gt;




&lt;h2&gt;
  
  
  What that library was doing
&lt;/h2&gt;

&lt;p&gt;The library was:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clearing Redis completely
&lt;/li&gt;
&lt;li&gt;Rebuilding the cache again
&lt;/li&gt;
&lt;li&gt;Doing this for all rows in the database
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On every single file upload.&lt;/p&gt;

&lt;p&gt;Yes.&lt;br&gt;&lt;br&gt;
Every time.&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.amazonaws.com%2Fuploads%2Farticles%2Fql3k95pbuz7se0r5u7j2.gif" 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.amazonaws.com%2Fuploads%2Farticles%2Fql3k95pbuz7se0r5u7j2.gif" alt="trollface dark" width="498" height="498"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The victory
&lt;/h2&gt;

&lt;p&gt;I called my boss and said:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I fixed it. I deserve a candy or at least a chocolate.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I’ve never won the lottery or a gacha game, but the feeling of finding this bug was the closest thing to that.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;I don’t know if this was skill or pure luck, probably both.&lt;/p&gt;

&lt;p&gt;But one thing is clear:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read the README
&lt;/li&gt;
&lt;li&gt;Read the issues
&lt;/li&gt;
&lt;li&gt;Understand what a library actually does
&lt;/li&gt;
&lt;li&gt;Test things in environments that look like production
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for reading.&lt;br&gt;&lt;br&gt;
For me, it’s an honor to share this.&lt;/p&gt;

&lt;p&gt;And remember: &lt;strong&gt;you can do more than you think&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>backend</category>
      <category>devjournal</category>
      <category>laravel</category>
      <category>php</category>
    </item>
    <item>
      <title>The Most Valuable Soft Skill: Problem-Solving</title>
      <dc:creator>Frederick Peñalo</dc:creator>
      <pubDate>Thu, 06 Mar 2025 17:14:59 +0000</pubDate>
      <link>https://dev.to/frederickpeal/the-most-valuable-soft-skill-problem-solving-1a9</link>
      <guid>https://dev.to/frederickpeal/the-most-valuable-soft-skill-problem-solving-1a9</guid>
      <description>&lt;p&gt;Hello, before we start, let me give you some context. In my day-to-day work, we are creating an amazing project called Kanvas Ecosystem. Kanvas started as a backend-as-a-service (more or less), and currently, it works as a middle platform between your DataSource and the world.&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.amazonaws.com%2Fuploads%2Farticles%2Feg0t16dvc63f0ghgb397.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.amazonaws.com%2Fuploads%2Farticles%2Feg0t16dvc63f0ghgb397.jpg" alt=" " width="648" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The best example of this is a client—let’s call her "Wanda." Wanda runs an online store with a huge inventory of products. And when I say huge, I mean a MASSIVE inventory. These products are sold across different channels: her Web Store, WhatsApp, and a physical shop.&lt;/p&gt;

&lt;p&gt;Now, let’s get to the problem. The Web Store is hosted on Shopify, a well-known e-commerce platform. Shopify Basic has a lot of limitations for my taste, but that’s one of the reasons we use Kanvas—to overcome the restrictions on selling channels.&lt;/p&gt;

&lt;p&gt;In January 2025, &lt;em&gt;Wanda&lt;/em&gt; needed to randomly gift items to web store clients. But how could we know if a customer was making multiple purchases just to get extra gifts? The answer: their shipping address. The catch? I’m a backend PHP developer, not a Shopify developer.&lt;/p&gt;

&lt;p&gt;And that’s exactly why I’m writing this article—because your best soft skill is solving problems. You’re not just a JS coder, a PHP coder, or a Golang coder. You are a problem solver, and that makes you the best software engineer in your workplace.&lt;/p&gt;

&lt;p&gt;The solution was simple: in Kanvas, we store all orders from different sales channels (WhatsApp, Web Store, and others). Every time a user enters their shipping address; I can check if that address has already been used to claim the gift item. With a serverless app, I can block or cancel the order if it’s a duplicate. Sounds simple, right? But at the time, it was a real challenge, requiring extensive testing. In the end, the promotion was a success, and everything worked perfectly.&lt;/p&gt;

&lt;p&gt;This kind of challenge always reminds me that, in programming, every business problem has a solution. Some solutions take a long time, others just a little—but if you believe in yourself, you can do it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;So next time you face a challenge outside your comfort zone, remember: you're not just a coder, you're a problem solver. And that’s what makes you great.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;My name is Frederick, a simple coder 😛. Thanks for reading!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
      <category>laravel</category>
    </item>
    <item>
      <title>Step By Step</title>
      <dc:creator>Frederick Peñalo</dc:creator>
      <pubDate>Sat, 25 Jun 2022 03:29:53 +0000</pubDate>
      <link>https://dev.to/frederickpeal/step-by-step-29gc</link>
      <guid>https://dev.to/frederickpeal/step-by-step-29gc</guid>
      <description>&lt;p&gt;In the last month, I started a new way to do the things in my life. Step by step, not more, not less, just focus on the next step.&lt;/p&gt;

&lt;p&gt;And yes, I know that this is confusing, but I'm going to explain, I remember that I was walking to my father's job but the way is long, maybe five or ten minutes walking. In the Dominican Republic with our climate that is a lot of time, but I just have to do the next step and step by step I complete my goal, meet with my father in his job.&lt;/p&gt;

&lt;p&gt;So why can't I use the same idea, in software development?&lt;/p&gt;

&lt;p&gt;As software engineer we must do a lot of things, the more simple feature can take some hours of our time. So thinking in the complete feature can be scary, maybe feel tired.&lt;/p&gt;

&lt;p&gt;So I imagined Julio and Cian when they told me "Frederick this week you have to complete the ticket about import a Thread from Twitter" I said, yes of course. As Dominican, I said "Claro , anja yo resuelvo" but I had no idea how can I complete this how I can complete this ****. &lt;/p&gt;

&lt;p&gt;So At this moment I used the technique Step by Step, I take the Jira History and started to describe the step in my internal to do list.&lt;br&gt;
Step 1: Study the developer documentation of twitter&lt;br&gt;
Step 2: Register in the developer site of twitter&lt;br&gt;
Step 3: .... &lt;/p&gt;

&lt;p&gt;So my focus don't was complete the history import the thread, no, my focus was to complete the Step 1, when finish the Step 1, continue step 2, after step 3, etc.&lt;/p&gt;

&lt;p&gt;When I finish my internal to-do list, I was more productive because complete my work also Julio and Cian does happy because I complete my history. Thank you to the technique step by step, my moral is up.&lt;/p&gt;

&lt;p&gt;I'm trying to use this technique in all the thing in my life, when I'm cooking, when I'm reading my focus is read the current page, not all  the pages. When I'm programming, my focus is in the current task and step to step I complete the history.&lt;/p&gt;

&lt;p&gt;_Thanks for reading my post.&lt;br&gt;
_&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>productivity</category>
      <category>career</category>
      <category>motivation</category>
    </item>
    <item>
      <title>El error lógico en el tiempo</title>
      <dc:creator>Frederick Peñalo</dc:creator>
      <pubDate>Wed, 24 Nov 2021 01:53:17 +0000</pubDate>
      <link>https://dev.to/frederickpeal/el-error-logico-en-el-tiempo-1k1</link>
      <guid>https://dev.to/frederickpeal/el-error-logico-en-el-tiempo-1k1</guid>
      <description>&lt;p&gt;Siempre he escuchado que el trabajo de un desarrollador en su mayoría es leer código que escribieron otros desarrolladores y creo que nunca me había dado cuenta de la gran verdad que lleva este dicho, hasta que me tocó leer código muy mal escrito.&lt;/p&gt;

&lt;p&gt;En los últimos meses, he decidido volver al freelance, por lo general me alejo de los proyectos por uno o dos meses y luego vuelvo porque me gusta mi trabajo. Uno de esos proyectos lo tome porque me llamo mucho la atención la problemática que tenían y sabía que pocas personas manejaban esa tecnología y decidí trabajar en este proyecto, hable con el cliente, me planteo mejor su problema y como resultado de todas esas conversaciones, les hice una propuesta que aceptaron.&lt;/p&gt;

&lt;p&gt;A partir de aquí usaré datos ficticios relacionados al proyecto por motivos de confidencialidad.&lt;/p&gt;

&lt;p&gt;La aplicación era un sistema de inventario, los errores presentados eran específicamente en el módulo de productos, según me contaron, estos errores comenzaron aparecer repentinamente.&lt;/p&gt;

&lt;p&gt;Me comenzaron a mostrar la aplicación y el formulario que daba los problemas, que por cierto este  era bastante grande, varias secciones anidadas, una dentro de la otra (imaginen todas las claves foráneas del producto como secciones una dentro de otra, debajo les dejo una imagen).&lt;/p&gt;

&lt;p&gt;Esto no me pareció extraño al principio, lo que si fue extraño es que los campos y labels, funciones de javascript eran extraídos desde la base de datos y creados en HTML con PHP. Algo para nada recomendado, porque de todas formas el formulario no se podía generar editando código HTML y mejor no digo que pasaría si quieres cambiar el script de JS.&lt;/p&gt;

&lt;p&gt;Mi tarea era simple, reparar el formulario para que guarde todos los datos y agregar nuevos campos para guardar una descripción que enviará el proveedor. Algo fácil cierto, pues te cuento que no, y aquí es donde todo se complica de una manera al que tuve que decir la palabra que más incómoda para mí en el área de desarrollo “No se puede”, aquí inicia mi historia.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Dia 1&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Procedo a descargar el folder del sistema, y aquí está el primer error, no existía un repositorio, por lo tanto, no había un registro histórico de los cambios en el tiempo, así que tuve que conectarme al servidor y hacer un scp o rsync para descargar el código del repositorio&lt;/p&gt;

&lt;p&gt;Cuando descargo el folder o intento descargarlo, veo que la app, tiene un peso de 10GB aproximadamente y aquí encontré el segundo error, los archivos de los proveedores se subían directamente al caché folder de la app, fotos de productos, fotos de los representantes, todos esos archivos se guardaban directamente en la carpeta destinada a la caché.&lt;/p&gt;

&lt;p&gt;Tuve que descargarme la carpeta del node_modules y vendor, que fue bastante triste para mí , cuando tengo el folder completo, borro los folders innecesarios como el vendor, creo el repositorio en git, subo la copia a GitHub y con bastante paciencia logro montarlo en Docker.&lt;/p&gt;

&lt;p&gt;Aquí entonces veo algo que me dejo con la boca abierta y con un miedo enorme, cuando estaba intentando configurar la base de datos, los valores de mi archivo de entorno no se estaban reflejando, cuando entro al archivo de configuración del proyecto, sorpresa!!!, TODAS LAS CREDENCIALES ESTABAN ESCRITAS TAL CUAL en el código, un desastre.&lt;/p&gt;

&lt;p&gt;Y así concluyó el primer día.&lt;/p&gt;

&lt;p&gt;Si has llegado hasta aquí, te agradezco mucho que hayas leído esta parte de la historia, para mí es un honor que estés leyendo esto, seguiré escribiendo el resto de la historia por día esperando al final o en medio de los post agregar un granito de valor a tu vida&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Una carta a mi amigo Junior</title>
      <dc:creator>Frederick Peñalo</dc:creator>
      <pubDate>Wed, 24 Nov 2021 01:40:30 +0000</pubDate>
      <link>https://dev.to/frederickpeal/una-carta-a-mi-amigo-junior-4lm6</link>
      <guid>https://dev.to/frederickpeal/una-carta-a-mi-amigo-junior-4lm6</guid>
      <description>&lt;p&gt;Hola Junior ¿cómo estás? Tengo tiempo sin saludarte, pero te envió un fuerte abrazo, espero que tú y tu familia estén bien. Recibí tu e-mail y me alegra mucho que hayas decidido iniciar a programar, sé que fue tu sueño de joven pero por circunstancias que ya sabemos tuviste que dedicarte a trabajar.&lt;/p&gt;

&lt;p&gt;Imagino que ahora mismo tienes un mar de preguntas y dudas, pero tranquilo tratare de contestar a las preguntas que me dejaste en el correo.&lt;/p&gt;

&lt;p&gt;Te cuento que mi primer contacto con la programación fue cuando tenía 14 años de edad, estaba cursando mi tercer año de la secundaria, recuerdo ese hola mundo en PHP, el sentimiento de que podía conquistar el mundo, pero no sabía el largo camino que me tocaba por recorrer.&lt;/p&gt;

&lt;p&gt;Han pasado casi 9 años de eso y han  muchísimas cosas, he aprendido muchas cosas al pasar del tiempo, no solo en el área de TI, tambien he tenido crecimiento en mi vida personal, he conocido muchas personas, he visto nacer y morir varios proyectos, he pasado por varios empleos y de cada uno me he llevado lo mejor.&lt;/p&gt;

&lt;p&gt;Han salido nuevas tecnologías y aprendí que como experto de esta industria siempre seré un eterno estudiante, aprendí que no siempre tengo la razón y a escuchar al resto del equipo.&lt;/p&gt;

&lt;p&gt;He tomado cursos de lenguajes con los que no trabajo, solo para ponerme en el lugar de otros a la hora de hacer un API  o hacerle un requerimiento, he tenido que practicar mi comunicación con otros y trabajar para que mi equipo se sienta cómodo al tenerme con ellos.&lt;/p&gt;

&lt;p&gt;Así podría escribirte toda la noche sobre cosas que he aprendido en lo pocos años que llevo estudiando y trabajando como desarrollador.&lt;/p&gt;

&lt;p&gt;Sé que tomaste ese curso en oferta para ser programador “Full Stack” pero te cuento que no es el final del camino, apenas es el principio, de hecho hubiese preferido que tomaras uno de introducción a la programación, dominaras bien los conceptos básicos y luego eligieras el lenguaje con el que te ibas a especializar.&lt;/p&gt;

&lt;p&gt;No te intimides por la cantidad de tecnologías que lleva el stack o el roadmap , ve a tu ritmo , domina el lenguaje que elegiste y luego ve poco a poco con el framework o librería que más crecimiento tiene de ese lenguaje, recuerda que cada día trae su propio afán&lt;/p&gt;

&lt;p&gt;Aprende sobre patrones de diseño (no cometas el mismo error que yo de volarte eso), no olvides las habilidades blandas, podrás ser el mejor de tu área pero si nadie quiere trabajar contigo no vas a persistir en un empleo.&lt;/p&gt;

&lt;p&gt;Como junior o entry-level entiende que eres un JR o entry level, respeta a tus superiores y busca una empresa donde tu líder de tecnología de verdad sea un líder para ti y te ayude e inspire a seguir creciendo.&lt;/p&gt;

&lt;p&gt;Recuerdo que tenías muy buen manejo de los idiomas, eso será una ventaja porque tendrás acceso a mucho material en otros idiomas y podrás hacer networking y cuando sigas creciendo buscar un trabajo remoto si así lo prefieres&lt;/p&gt;

&lt;p&gt;Y recuerda Junior, aunque estamos algo distanciados, seguimos siendo amigos, si necesitas mi ayuda para algo o tienes algún bloqueo, me puedes escribir y revisamos ese problema y tal vez juguemos unas partidas en un videojuego para relajarnos.&lt;/p&gt;

&lt;p&gt;Salúdame a tu familia, con mucho aprecio, Frederick.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>spanish</category>
      <category>writing</category>
      <category>motivation</category>
    </item>
    <item>
      <title>La opinión de un desarrollador sobre User Research</title>
      <dc:creator>Frederick Peñalo</dc:creator>
      <pubDate>Wed, 24 Nov 2021 01:20:50 +0000</pubDate>
      <link>https://dev.to/frederickpeal/la-opinion-de-un-desarrollador-sobre-user-research-181</link>
      <guid>https://dev.to/frederickpeal/la-opinion-de-un-desarrollador-sobre-user-research-181</guid>
      <description>&lt;p&gt;Hace unos meses comencé a trabajar en un proyecto para un influencer del país, el proyecto contaba de una página web y una aplicación Mobile. Cuando me inserte al equipo aún estaban en la etapa de planeación y fue en este momento donde escuche por primera vez la palabra User Research por &lt;a href="https://www.linkedin.com/in/marilennysoriano/" rel="noopener noreferrer"&gt;Marilenny Soriano&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Qué es el user research?
&lt;/h2&gt;

&lt;p&gt;Investigación de usuario en español, pero suena más cool en inglés así que seguiré con user research.&lt;/p&gt;

&lt;p&gt;User research te da la información necesaria para conocer a tus usuarios y cuando digo conocer es casi toda la información posible que puedas obtener de ellos, que le gusta, que no le gusta, sus opiniones de algún tema, colores favoritos, a que se dedican, qué hacen en su tiempo de ocio, como se comportan en una app, toda la información posible.&lt;/p&gt;

&lt;h3&gt;
  
  
  ¿Por qué es importante?
&lt;/h3&gt;

&lt;p&gt;Yo me hice esta pregunta más de una vez, en cada reunión que Marilenny hablaba del trabajo realizado durante esa semana nos daba una luz para saber en qué enfocarnos para continuar con el desarrollo de la app o cambiar los objetivos y te cuento por qué.&lt;/p&gt;

&lt;p&gt;¿Alguna vez te has preguntado por qué la mayoría de las aplicaciones, páginas o videojuegos que más te gustan tienen algo en común?&lt;/p&gt;

&lt;p&gt;Tal vez sean los colores, la forma en que interactúas con ellos, el valor que te agregan en algún aspecto de tu vida, tal vez te gusta cómo te hace sentir la app o la productividad que consigues con esa app, en el caso de los videojuegos, la música, la jugabilidad, el entorno.&lt;/p&gt;

&lt;p&gt;Todas estas cosas no son coincidencias, son los resultados de un trabajo realizado por un profesional o equipo de User Research, donde esa persona o equipo se encargó de conocerte por medio de la información recolectada y hacer un producto específico para un perfil como el tuyo.&lt;/p&gt;

&lt;p&gt;El simple hecho de que un asistente de voz tenga voz de chica en vez de chico, o que la mascota de una app sea un gato y no un perro, que el color de una app sea azul y no rojo, todas estas cosas no son al azar.&lt;/p&gt;

&lt;p&gt; Ok Frederick volvamos a la importancia…&lt;/p&gt;

&lt;p&gt;Imagina que crearas una aplicación para una tienda de libros, pero antes de iniciar&lt;/p&gt;

&lt;p&gt;¿Sabes cuáles son los pasos que quieren dar tus usuarios para comprar un libro?&lt;/p&gt;

&lt;p&gt;Ok te despertaste inspirado y creaste todo un UI, te pregunto, ¿sabes cómo se comportan tus usuarios con ese UI? ¿El tiempo que duran para comprar un libro?  ¿Qué tan cómodos se sienten con las letras, las fuentes y los tamaños de los textos?&lt;/p&gt;

&lt;p&gt;Una vez el usuario esté en la app, ¿cómo haces para que se mantenga en la app? ¿Tus usuarios consideran la aplicación intuitiva?&lt;/p&gt;

&lt;p&gt;Pero imaginemos que todas las respuestas son positivas, ahora llega el usuario a la parte del checkout, ¿Tu aplicación cuenta con los métodos de pagos que tus usuarios prefieren o solo pusiste los mismos métodos de pago que tiene Amazon, eBay y otras páginas de ventas?&lt;/p&gt;

&lt;p&gt;¿Vas entendiendo lo que pasa si no conoces a tus usuarios antes de comenzar a lanzar código? Un error común de los desarrolladores al iniciar cualquier proyecto, es iniciar a codear sin prestar atención a las demás etapas que lleva la creación de una aplicación y futuro modelo de negocio.&lt;/p&gt;

&lt;p&gt;Menospreciar cosas como el User Resarch , UX/UI, marketing o soporte son cosas que te restan como profesional y frenaran tu equipo, muchas veces pecamos de ignorante como fue mi caso, no obstante aquí te dejo mi opinión de user research para que no cometas los mismos errores que yo&lt;/p&gt;

&lt;p&gt;“Comenzar una aplicación sin conocer a tus futuros usuarios es como si crearas el mejor sistema de calefacción, sin embargo, intentaras venderlo en las hermosas islas el caribe”&lt;/p&gt;

&lt;p&gt;Tienes el mejor producto, pero vas a intentar venderlo en el lugar equivocado, recuerda que escribo para compartir mi conocimiento, espero que te haya sido útil y si te gusto el tema del user research, tienes más curiosidad sobre el tema o quieres contactar a un profesional sobre este &lt;a href="https://www.linkedin.com/in/marilennysoriano/" rel="noopener noreferrer"&gt;Marilenny Soriano&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;El próximo post que quiero hacer es hablando sobre mi experiencia trabajando con diseñadores UX/UI, si crees que sea útil dejamelo saber en los comentarios.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>spanish</category>
      <category>ux</category>
    </item>
    <item>
      <title>Introduction</title>
      <dc:creator>Frederick Peñalo</dc:creator>
      <pubDate>Mon, 28 Oct 2019 03:23:51 +0000</pubDate>
      <link>https://dev.to/frederickpeal/introduction-m1n</link>
      <guid>https://dev.to/frederickpeal/introduction-m1n</guid>
      <description>&lt;p&gt;Hi there&lt;br&gt;
My Name is Frederick Peñalo , a backend developer from Dominican Republic, a long time ago i was thinking a way for teach Laravel Framework and because is a the best frameworks currently. &lt;/p&gt;

&lt;p&gt;In this series, we will build a online store with Laravel 6, don't require avanced knowledge on the framework, but you will need it on PHP at least the basics (Class, Method, Traits, Objects).&lt;/p&gt;

&lt;p&gt;So, i'm pleased for your time and appreciate that you read this post&lt;/p&gt;

&lt;p&gt;PD: I'm learning English, i would be very grateful if you give your feedback&lt;/p&gt;

&lt;p&gt;Thank you ♥&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>php</category>
    </item>
  </channel>
</rss>
