<?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: Alexandru Trandafir</title>
    <description>The latest articles on DEV Community by Alexandru Trandafir (@atrandafir).</description>
    <link>https://dev.to/atrandafir</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%2F3429%2F2ZL4J626.png</url>
      <title>DEV Community: Alexandru Trandafir</title>
      <link>https://dev.to/atrandafir</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/atrandafir"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>Alexandru Trandafir</dc:creator>
      <pubDate>Thu, 23 Jul 2026 15:29:37 +0000</pubDate>
      <link>https://dev.to/atrandafir/-167g</link>
      <guid>https://dev.to/atrandafir/-167g</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/julesrobineau/put-the-llm-last-i-replaced-a-7b-model-with-a-tiny-go-classifier-5d9i" class="crayons-story__hidden-navigation-link"&gt;Put the LLM last: I replaced a 7B model with a tiny Go classifier&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="/julesrobineau" 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%2F4033931%2F6c7e37e2-5d4d-486b-81c8-591c267775cd.jpg" alt="julesrobineau profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/julesrobineau" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Jules Robineau
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Jules Robineau
                
              
              &lt;div id="story-author-preview-content-4206713" 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="/julesrobineau" 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%2F4033931%2F6c7e37e2-5d4d-486b-81c8-591c267775cd.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Jules Robineau&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/julesrobineau/put-the-llm-last-i-replaced-a-7b-model-with-a-tiny-go-classifier-5d9i" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 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/julesrobineau/put-the-llm-last-i-replaced-a-7b-model-with-a-tiny-go-classifier-5d9i" id="article-link-4206713"&gt;
          Put the LLM last: I replaced a 7B model with a tiny Go classifier
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/go"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;go&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/machinelearning"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;machinelearning&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/llm"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;llm&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/julesrobineau/put-the-llm-last-i-replaced-a-7b-model-with-a-tiny-go-classifier-5d9i" 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/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;4&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/julesrobineau/put-the-llm-last-i-replaced-a-7b-model-with-a-tiny-go-classifier-5d9i#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              5&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;
            7 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&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>Alexandru Trandafir</dc:creator>
      <pubDate>Tue, 21 Jul 2026 01:26:32 +0000</pubDate>
      <link>https://dev.to/atrandafir/-5b8m</link>
      <guid>https://dev.to/atrandafir/-5b8m</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/adamthedeveloper/i-could-review-it-i-couldnt-write-it-3gfj" class="crayons-story__hidden-navigation-link"&gt;I Could Review It. I Couldn’t Write It.&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/adamthedeveloper/i-could-review-it-i-couldnt-write-it-3gfj" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;Rising cognitive debt in AI-driven coding&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="/adamthedeveloper" 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%2F1002243%2F1dc09100-5c18-4e4d-b1c3-a8fb023506cc.png" alt="adamthedeveloper profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/adamthedeveloper" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Adam - The Developer ✨
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Adam - The Developer ✨
                
              
              &lt;div id="story-author-preview-content-4130904" 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="/adamthedeveloper" 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%2F1002243%2F1dc09100-5c18-4e4d-b1c3-a8fb023506cc.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Adam - The Developer ✨&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/adamthedeveloper/i-could-review-it-i-couldnt-write-it-3gfj" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 13&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/adamthedeveloper/i-could-review-it-i-couldnt-write-it-3gfj" id="article-link-4130904"&gt;
          I Could Review It. I Couldn’t Write It.
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&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/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tools"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tools&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/adamthedeveloper/i-could-review-it-i-couldnt-write-it-3gfj" 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/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.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;49&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/adamthedeveloper/i-could-review-it-i-couldnt-write-it-3gfj#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              49&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;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&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>Alexandru Trandafir</dc:creator>
      <pubDate>Wed, 15 Jul 2026 23:21:00 +0000</pubDate>
      <link>https://dev.to/atrandafir/-26cp</link>
      <guid>https://dev.to/atrandafir/-26cp</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/dannwaneri/you-stopped-reading-the-docs-now-you-dont-understand-the-systems-go1" class="crayons-story__hidden-navigation-link"&gt;you stopped reading the docs. now you don't understand the systems.&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/dannwaneri/you-stopped-reading-the-docs-now-you-dont-understand-the-systems-go1" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;The hidden debt of prioritizing output&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="/dannwaneri" 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%2F3606168%2F7684e1e1-b986-4ee3-ae5b-56db2b97d286.jpg" alt="dannwaneri profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/dannwaneri" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Daniel Nwaneri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Daniel Nwaneri
                &lt;a href="/++"&gt;&lt;img alt="Subscriber" class="subscription-icon" src="https://assets.dev.to/assets/subscription-icon-805dfa7ac7dd660f07ed8d654877270825b07a92a03841aa99a1093bd00431b2.png"&gt;&lt;/a&gt;
              
              &lt;div id="story-author-preview-content-3993533" 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="/dannwaneri" 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%2F3606168%2F7684e1e1-b986-4ee3-ae5b-56db2b97d286.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Daniel Nwaneri&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/dannwaneri/you-stopped-reading-the-docs-now-you-dont-understand-the-systems-go1" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 7&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/dannwaneri/you-stopped-reading-the-docs-now-you-dont-understand-the-systems-go1" id="article-link-3993533"&gt;
          you stopped reading the docs. now you don't understand the systems.
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&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/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&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;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/dannwaneri/you-stopped-reading-the-docs-now-you-dont-understand-the-systems-go1" 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/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.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;73&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/dannwaneri/you-stopped-reading-the-docs-now-you-dont-understand-the-systems-go1#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              64&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;
            5 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&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>Alexandru Trandafir</dc:creator>
      <pubDate>Mon, 11 May 2026 14:07:49 +0000</pubDate>
      <link>https://dev.to/atrandafir/-2poc</link>
      <guid>https://dev.to/atrandafir/-2poc</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/nandofm/ai-vs-non-ai-building-the-same-project-twice-4073" class="crayons-story__hidden-navigation-link"&gt;AI vs Non-AI: Building the Same Project Twice&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/nandofm/ai-vs-non-ai-building-the-same-project-twice-4073" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;Speed gains versus code ownership stress&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="/nandofm" 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%2F3707424%2F933dae0f-c492-447f-a437-9e08ad34c6b6.jpg" alt="nandofm profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/nandofm" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Fernando Fornieles
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Fernando Fornieles
                
              
              &lt;div id="story-author-preview-content-3510931" 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="/nandofm" 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%2F3707424%2F933dae0f-c492-447f-a437-9e08ad34c6b6.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Fernando Fornieles&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/nandofm/ai-vs-non-ai-building-the-same-project-twice-4073" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 6&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/nandofm/ai-vs-non-ai-building-the-same-project-twice-4073" id="article-link-3510931"&gt;
          AI vs Non-AI: Building the Same Project Twice
        &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/softwareengineering"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;softwareengineering&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;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/nandofm/ai-vs-non-ai-building-the-same-project-twice-4073" 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;58&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/nandofm/ai-vs-non-ai-building-the-same-project-twice-4073#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              44&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;
            6 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&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>Alexandru Trandafir</dc:creator>
      <pubDate>Fri, 01 May 2026 13:52:01 +0000</pubDate>
      <link>https://dev.to/atrandafir/-4229</link>
      <guid>https://dev.to/atrandafir/-4229</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/kernelpryanic/are-we-using-ai-at-the-wrong-scale-2klo" class="crayons-story__hidden-navigation-link"&gt;Are We Using AI at the Wrong Scale?&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/kernelpryanic/are-we-using-ai-at-the-wrong-scale-2klo" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;Small models rivaling giants in code tasks&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="/kernelpryanic" 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%2F3885989%2Fc3c3a13d-f9e6-44d2-b765-4f6a2708757a.png" alt="kernelpryanic profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/kernelpryanic" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Kernel Pryanic
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Kernel Pryanic
                
              
              &lt;div id="story-author-preview-content-3561978" 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="/kernelpryanic" 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%2F3885989%2Fc3c3a13d-f9e6-44d2-b765-4f6a2708757a.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Kernel Pryanic&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/kernelpryanic/are-we-using-ai-at-the-wrong-scale-2klo" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 28&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/kernelpryanic/are-we-using-ai-at-the-wrong-scale-2klo" id="article-link-3561978"&gt;
          Are We Using AI at the Wrong Scale?
        &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/llm"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;llm&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/software"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;software&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/kernelpryanic/are-we-using-ai-at-the-wrong-scale-2klo" 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;69&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/kernelpryanic/are-we-using-ai-at-the-wrong-scale-2klo#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              29&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;
            5 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

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

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Chrome provides no way to disable credit card autofill</title>
      <dc:creator>Alexandru Trandafir</dc:creator>
      <pubDate>Mon, 06 May 2024 19:24:14 +0000</pubDate>
      <link>https://dev.to/atrandafir/chrome-provides-no-way-to-disable-credit-card-autofill-4415</link>
      <guid>https://dev.to/atrandafir/chrome-provides-no-way-to-disable-credit-card-autofill-4415</guid>
      <description>&lt;p&gt;This is going to be just a short article that I write as a way to protest to this annoying behavior in Chromium based browsers (Chrome, Edge, others?).&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Well you must be used to autocomplete credit card information in your browser, and indeed it is a very useful feature.&lt;/p&gt;

&lt;h2&gt;
  
  
  Buggy detection of credit card fields
&lt;/h2&gt;

&lt;p&gt;The issue is that the following form that just asks the user for a date and a number (in Spanish), will trigger the browser's credit card functionality because it thinks I'm asking the user for a credit card.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;form&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt;Fecha&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"Factura[fecha]"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt;Número&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"Factura[numero]"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So the algorithm is buggy. I'm not blaming the developers behind it because I'm sure it is complex but, they really need to consider if this is the best approach or they need to review how things work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Workarounds to solving this incorrect credit card fields detection
&lt;/h2&gt;

&lt;p&gt;Well basically you can solve it with some hacks either by renaming the field names or the text of the label as these two are being used somehow inside the credit card field detection logic.&lt;/p&gt;

&lt;h3&gt;
  
  
  Label based hack
&lt;/h3&gt;

&lt;p&gt;This hack can be used ONLY if your input names do not contain the keywords, but only your labels do and so the labels are triggering the credit card menus.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;form&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt;Fecha&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"Factura[field1]"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt;Nú&lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"display:none"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;/&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;mero&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"Factura[field2]"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Input name based hack
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;form&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt;Fe&lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"display:none"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;/&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;cha&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"other_input_name"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt;Nú&lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"display:none"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;/&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;mero&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"other_input_name_2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So depending on the fields on your form, you can implement one hack or the other, the label one is less problematic as it does not mess with your field naming, but depending on the case you might need to change the field names too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bottom line: You can't have both "Fecha" and "Número" keywords combination inside your input names or labels.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I have submitted an issue here to ask for a better solution: &lt;a href="https://issues.chromium.org/issues/339033226" rel="noopener noreferrer"&gt;https://issues.chromium.org/issues/339033226&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The cover image comes from a Spanish invoicing software I'm working on: &lt;a href="https://refactu.com/" rel="noopener noreferrer"&gt;https://refactu.com/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Generating Excel sheet with dynamic column names</title>
      <dc:creator>Alexandru Trandafir</dc:creator>
      <pubDate>Mon, 18 Jan 2021 13:29:25 +0000</pubDate>
      <link>https://dev.to/atrandafir/generating-excel-sheet-with-dynamic-column-names-h8a</link>
      <guid>https://dev.to/atrandafir/generating-excel-sheet-with-dynamic-column-names-h8a</guid>
      <description>&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;When we export an Excel sheet from &lt;code&gt;PHP&lt;/code&gt;, or other language, the most common use case is to export a table from the database, and some of the times it also contains some information in the header, and a footer with some totals.&lt;/p&gt;

&lt;p&gt;Bottom line, we have a table, and some columns.&lt;/p&gt;

&lt;p&gt;This is how you'd go normally, by placing manually each column letter in the different parts of the document, such as:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Header&lt;/li&gt;
&lt;li&gt;Rows&lt;/li&gt;
&lt;li&gt;Styling
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$spreadsheet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Spreadsheet&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$spreadsheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getActiveSheet&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'A1'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'Normal way of naming Excel columns'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Header&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'A'&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'Name'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'B'&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'Phone'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'C'&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'City'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Rows&lt;/span&gt;
&lt;span class="k"&gt;foreach&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$rows&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'A'&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'B'&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'phone'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'C'&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'city'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Styling&lt;/span&gt;
&lt;span class="nv"&gt;$lastRowIndex&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getStyle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'A3:C'&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;$lastRowIndex&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;applyFromArray&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
    &lt;span class="s1"&gt;'borders'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s1"&gt;'allBorders'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="s1"&gt;'borderStyle'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nc"&gt;\PhpOffice\PhpSpreadsheet\Style\Border&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;BORDER_THIN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;]);&lt;/span&gt;

&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getStyle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'A3:C3'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getFill&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setFillType&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;\PhpOffice\PhpSpreadsheet\Style\Fill&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;FILL_SOLID&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getStartColor&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setARGB&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'FFA0A0A0'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getColumnDimension&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'A'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setWidth&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getColumnDimension&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'B'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setWidth&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getColumnDimension&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'C'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setWidth&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nv"&gt;$writer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Xlsx&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$spreadsheet&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$writer&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'normal.xlsx'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The problem with this approach is that if you want to add new columns, you'll have to spend some time renaming all the letters. And you'll also have to remember which letter you have assigned to each column when you apply styling.&lt;/p&gt;

&lt;p&gt;So if you want to add the column &lt;code&gt;Company&lt;/code&gt; after &lt;code&gt;Phone&lt;/code&gt;, you'll have to put it on the letter &lt;code&gt;C&lt;/code&gt;, and rename the next column &lt;code&gt;C&lt;/code&gt; to &lt;code&gt;D&lt;/code&gt;, and do this in renaming everywhere, not just in the header, also in the rows and in the styling, etc.&lt;/p&gt;

&lt;p&gt;You'd say it's a quick task, but..   &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What if you had 10-20 columns or more? &lt;/li&gt;
&lt;li&gt;What if you wanted to have some cases when you show a column and other cases when you want to hide it based on user preference when exporting?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The solution
&lt;/h2&gt;

&lt;p&gt;Okay it might not be the best solution, I'm sure others might think of better ways to do it but this is one way to avoid spending lots of time renaming the columns.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Load the column names helper&lt;/span&gt;
&lt;span class="k"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'ExCol.php'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nb"&gt;reset&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// reset mapping before using&lt;/span&gt;

&lt;span class="nv"&gt;$show_company_column&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nv"&gt;$spreadsheet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Spreadsheet&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$spreadsheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getActiveSheet&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'A1'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'Dynamic way of naming Excel columns'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Header&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;'Name'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'phone'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;'Phone'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$show_company_column&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'company'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;'Company'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'city'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;'City'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Rows&lt;/span&gt;
&lt;span class="k"&gt;foreach&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$rows&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'phone'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'phone'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$show_company_column&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'company'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'company'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'city'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'city'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nv"&gt;$lastColLetter&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;getLast&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="c1"&gt;// Styling&lt;/span&gt;
&lt;span class="nv"&gt;$lastRowIndex&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getStyle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'A3:'&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;$lastColLetter&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;$lastRowIndex&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;applyFromArray&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
    &lt;span class="s1"&gt;'borders'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s1"&gt;'allBorders'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="s1"&gt;'borderStyle'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nc"&gt;\PhpOffice\PhpSpreadsheet\Style\Border&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;BORDER_THIN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;]);&lt;/span&gt;

&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getStyle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"A3:&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;$lastColLetter&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;3"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getFill&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setFillType&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;\PhpOffice\PhpSpreadsheet\Style\Fill&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;FILL_SOLID&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getStartColor&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setARGB&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'FFA0A0A0'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getColumnDimension&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setWidth&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$show_company_column&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getColumnDimension&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'company'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setWidth&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;35&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getColumnDimension&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'phone'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setWidth&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getColumnDimension&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'city'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setWidth&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nv"&gt;$writer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Xlsx&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$spreadsheet&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$writer&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'dynamic.xlsx'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So how does it work?  &lt;/p&gt;

&lt;p&gt;Well, we have created a small helper class named &lt;code&gt;ExCol&lt;/code&gt;.  &lt;/p&gt;

&lt;p&gt;&lt;em&gt;I know, I could have found a better name but at least it is short.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;

&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;PhpOffice\PhpSpreadsheet\Cell\Coordinate&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;ExCol&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

  &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="nv"&gt;$_map&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;array&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$col&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nb"&gt;in_array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$col&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;self&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nv"&gt;$_map&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;self&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nv"&gt;$_map&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$col&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="nv"&gt;$index&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;array_search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$col&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;self&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nv"&gt;$_map&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nv"&gt;$columnLetter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Coordinate&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;stringFromColumnIndex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$index&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$columnLetter&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;getLast&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nc"&gt;Coordinate&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;stringFromColumnIndex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;count&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;self&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nv"&gt;$_map&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;reset&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;self&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nv"&gt;$_map&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;array&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With this class, every time we need a letter for a column, we just call the method &lt;code&gt;ExCol::get()&lt;/code&gt;.  &lt;/p&gt;

&lt;p&gt;Examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'my_first_column'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Returns A&lt;/span&gt;
&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'my_second_column'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Returns B&lt;/span&gt;
&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'my_third_column'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Returns C&lt;/span&gt;
&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'my_third_column'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Returns C2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Optionally we can also pass a &lt;code&gt;$row&lt;/code&gt; number so instead of getting back &lt;code&gt;C&lt;/code&gt;, we'll get &lt;code&gt;C2&lt;/code&gt; and avoid having to use concatenation.&lt;/p&gt;

&lt;p&gt;So the class stores statically an index of the columns requested in the order they were requested. And based on the index assigned to each column, it will return its letter, by using &lt;code&gt;PhpSpreadsheet&lt;/code&gt;'s &lt;code&gt;Coordinate::stringFromColumnIndex()&lt;/code&gt; method.&lt;/p&gt;

&lt;p&gt;So let's go over the new parts in the code.  &lt;/p&gt;

&lt;p&gt;If we use the helper on a script that is used to generate multiple Excel files, we might want to call the &lt;code&gt;reset()&lt;/code&gt; method to clear the index just in case so it won't contain the columns of the previous file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nb"&gt;reset&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// reset mapping before using&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We then define a variable for showing or hiding one of the columns:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$show_company_column&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And when printing the header, we only include that column if required:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Header&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;'Name'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'phone'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;'Phone'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$show_company_column&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'company'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;'Company'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'city'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;'City'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Same happens when looping the rows and with the styling:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Rows&lt;/span&gt;
&lt;span class="k"&gt;foreach&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$rows&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'phone'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'phone'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$show_company_column&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'company'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'company'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'city'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'city'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So you can see we're dynamically including one column, so if we only put 3 columns we'll the helper will give us &lt;code&gt;A&lt;/code&gt;, &lt;code&gt;B&lt;/code&gt; and &lt;code&gt;C&lt;/code&gt;, but if we put 4, we'll get &lt;code&gt;A&lt;/code&gt;, &lt;code&gt;B&lt;/code&gt;, &lt;code&gt;C&lt;/code&gt;, &lt;code&gt;D&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If you want to control dynamically the columns to show, or you need to add more columns or remove some, there will be no need for renaming anything as it will all happen automatically.&lt;/p&gt;

&lt;p&gt;Full source code here:  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/atrandafir/excel-dynamic-columns" rel="noopener noreferrer"&gt;https://github.com/atrandafir/excel-dynamic-columns&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Original post at:  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://atrandafir.dev/post/generating-excel-sheet-dynamic-column-names" rel="noopener noreferrer"&gt;https://atrandafir.dev/post/generating-excel-sheet-dynamic-column-names&lt;/a&gt;&lt;/p&gt;

</description>
      <category>excel</category>
      <category>php</category>
    </item>
    <item>
      <title>A Sci-Fi corona theory of my own</title>
      <dc:creator>Alexandru Trandafir</dc:creator>
      <pubDate>Mon, 21 Sep 2020 11:58:58 +0000</pubDate>
      <link>https://dev.to/atrandafir/a-sci-fi-corona-theory-of-my-own-1e47</link>
      <guid>https://dev.to/atrandafir/a-sci-fi-corona-theory-of-my-own-1e47</guid>
      <description>&lt;p&gt;As a developer and someone who often spends his time trying to identify and solve problems, I use to passively gather information on a subject and then draw a conclusion in order to find a solution.&lt;/p&gt;

&lt;p&gt;Disclaimer: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Sometimes I can be right while sometimes I might be totally wrong. This can be totally nonsense but at least it could be used for a Sunday low budget Sci-fi movie.&lt;br&gt;
Luckily I have no close friends or relatives that have died or had serious issues from Covid so I apologize in advance if my ignorant thoughts can upset anyone, as it is not the intention of the post.&lt;br&gt;
I didn't do any real research that will strongly support the contents of this post so I might as well end up deleting it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I guess like everyone else, on the "coronavirus situation" I've been thinking about all kind of stuff, from real virus threat to political control, new world order and all that nonsense.&lt;/p&gt;

&lt;p&gt;But one of the theories that I think it could make some sense, keeping in mind that I have no medical/astronomy background or knowledge so this might sound very stupid is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What if there's a solar system event affecting life on Earth, that governments won't admit in order to avoid chaos and so instead they "mask" it as a virus?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Lately I've seen some articles regarding solar activity and I guess they are made out of valid information:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://en.as.com/en/2020/08/20/latest_news/1597913299_130548.html" rel="noopener noreferrer"&gt;Solar storm headed for earth could cause black-outs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And also wikipedia pages on the subject:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://en.m.wikipedia.org/wiki/Coronal_mass_ejection" rel="noopener noreferrer"&gt;https://en.m.wikipedia.org/wiki/Coronal_mass_ejection&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So the "crazy" theory is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Solar activity hits Earth&lt;/li&gt;
&lt;li&gt;Life on Earth is being affected by some kind of radiation or "magnetic.. thing"&lt;/li&gt;
&lt;li&gt;Governments hide the truth from the public, so they can control how people respond and avoid total chaos&lt;/li&gt;
&lt;li&gt;The events are happening randomly in time and they affect different areas of the planet in different ways (more, or less dangerously)&lt;/li&gt;
&lt;li&gt;The places where more people died are areas with higher possibilities of being "hit"&lt;/li&gt;
&lt;li&gt;Aircraft traffic has been reduced because a human being at higher altitude will of course be affected more, at least until they improve aircraft technology for better protection&lt;/li&gt;
&lt;li&gt;Lockdowns (stay at home) could be again maybe to reduce direct sun exposure of the people&lt;/li&gt;
&lt;li&gt;Mask wearing could be useless from a real point of view, but since they don't tell the truth, it's a good mechanism to support the "virus lie"&lt;/li&gt;
&lt;li&gt;The pandemic excuse can be kept alive in order to be able to respond to random solar events and issue unpredictable lockdowns to protect the population&lt;/li&gt;
&lt;li&gt;As for countries that don't have so severe restrictions (don't use mask, social distancing, no lockdowns, etc) maybe their area is naturally more protected against solar activity or, they have been already more exposed to it during generations and their bodies aren't at risk because they are adapted, example: Countries such as Norway, Finland&lt;/li&gt;
&lt;li&gt;And so maybe also the virus, is caused by some kind of radiation that maybe even could be contagious, so then, we do have a pandemic but not from a biological virus cause&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And also it's a bit "funny coincidence" that those solar events have the word "corona" in them, like the name of the virus. &lt;/p&gt;

&lt;p&gt;Again this whole post might sound very stupid and I'm worse than ordinary mass media. :-D&lt;/p&gt;

&lt;p&gt;Originally posted at:  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://atrandafir.dev/post/a-corona-theory-of-my-own" rel="noopener noreferrer"&gt;https://atrandafir.dev/post/a-corona-theory-of-my-own&lt;/a&gt;&lt;/p&gt;

</description>
      <category>covid</category>
      <category>theory</category>
      <category>scifi</category>
    </item>
    <item>
      <title>What's up with Alex (me) April 2020</title>
      <dc:creator>Alexandru Trandafir</dc:creator>
      <pubDate>Thu, 16 Apr 2020 11:55:16 +0000</pubDate>
      <link>https://dev.to/atrandafir/what-s-up-with-alex-me-april-2020-4e6l</link>
      <guid>https://dev.to/atrandafir/what-s-up-with-alex-me-april-2020-4e6l</guid>
      <description>&lt;p&gt;For those of you who might have been following my previous posts, you might have noticed a gap as I haven't posted anymore since January.&lt;/p&gt;

&lt;p&gt;And yeah, this is me, I set a goal, as stupid as a monthly post, and I fail to achieve it.&lt;/p&gt;

&lt;p&gt;But anyways, I guess life is constantly changing, the world and our minds and priorities too.&lt;/p&gt;

&lt;p&gt;Who would have known we'd be now all locked in our houses, with this situation we're going through?&lt;/p&gt;

&lt;p&gt;Lucky me I work remotely and there's still stuff to do, and also lucky I live in a village and I have a garden.&lt;/p&gt;

&lt;p&gt;So back to the posting, I think I will stop the monthly posts, and try new formats and just write something when I feel like.&lt;/p&gt;

&lt;h2&gt;
  
  
  So, what have I been up to?
&lt;/h2&gt;

&lt;p&gt;Well generally having a hard time trying to balance everything, as usual, and also procrastinating a lot. &lt;/p&gt;

&lt;p&gt;So I can't expect to be my best self all the time and also maybe when you set yourself too many goals and you have too much on your plate, you end up doing none. I guess that's a good skill to develop.&lt;/p&gt;

&lt;p&gt;I have been &lt;strong&gt;coding on a couple of projects for our clients&lt;/strong&gt; at &lt;a href="https://heavydots.com/" rel="noopener noreferrer"&gt;HeavyDots&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I have cursed a lot upgrading Expo SDK on a &lt;a href="https://heavydots.com/project/19" rel="noopener noreferrer"&gt;React Native APP&lt;/a&gt; and dealing with Push notifications, Apple certificates &amp;amp; shit, lucky us our client asked us for an annual maintenance contract (finger crossed so they'll accept it)&lt;/li&gt;
&lt;li&gt;I have finally managed to work on one hairy task on the accounting software, one that I was posponing for months. It is curious how hard something seems until you actually spend enough hours on it to understand it and then it doesn't seem that difficult.&lt;/li&gt;
&lt;li&gt;Also on the accounting project, I had setup a Visual Basic development environment on a Windows server, to be able to do maintenance tasks on some Crystal Reports.. I did curse a lot, again, damn dependencies and software versions, but it's alive now so I'm quite happy!&lt;/li&gt;
&lt;li&gt;I've been learning about &lt;a href="https://developers.google.com/search/docs/data-types/job-posting" rel="noopener noreferrer"&gt;Google Jobs and structured data&lt;/a&gt; by implementing it on &lt;a href="https://www.aviationjobs.me/" rel="noopener noreferrer"&gt;AviationJobs&lt;/a&gt; even so, I haven't been able to actually see it working on the search results&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With my team, we've &lt;strong&gt;just launched an updated version of the company's website&lt;/strong&gt;, with new services structure: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://heavydots.com/web-applications" rel="noopener noreferrer"&gt;Web applications&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://heavydots.com/mobile-apps" rel="noopener noreferrer"&gt;Mobile apps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://heavydots.com/corporate-websites" rel="noopener noreferrer"&gt;Corporate websites&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://heavydots.com/e-commerce" rel="noopener noreferrer"&gt;E-commerce&lt;/a&gt; HELLO COVID&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://heavydots.com/digitalization" rel="noopener noreferrer"&gt;Digital transformation&lt;/a&gt; HELLO COVID&lt;/li&gt;
&lt;li&gt;&lt;a href="https://heavydots.com/ux-design" rel="noopener noreferrer"&gt;UX/UI design&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And yes, we're &lt;strong&gt;open for new projects&lt;/strong&gt; if anyone is thinking about being business partners.&lt;/p&gt;

&lt;p&gt;Product wise, I've been quite stuck, and left that area almost totally abandoned.&lt;/p&gt;

&lt;p&gt;It is sad, but it is true. &lt;/p&gt;

&lt;p&gt;But, I'm not saying I don't want to dedicate time to it, I just say that I didn't, because it felt too much, and I have preferred to focus on less things, such as, taking care of main business and client projects.&lt;/p&gt;

&lt;p&gt;So on the &lt;a href="https://portfolee.app/" rel="noopener noreferrer"&gt;portfolio Saas&lt;/a&gt; I haven't done any progress, just started to put everything together on a Canva presentation so it is going to be easier to continue the project every time I get back to it.&lt;/p&gt;

&lt;p&gt;But even so, I'm excited!! To try to find time to work on both &lt;a href="https://portfolee.app/" rel="noopener noreferrer"&gt;Portfolee&lt;/a&gt; and use it to organize our company portfolio of projects and on &lt;a href="http://allmypicz.com/" rel="noopener noreferrer"&gt;AllMyPicz&lt;/a&gt; and use it to share pictures of old memories with friends and family. :-)&lt;/p&gt;

&lt;p&gt;On the &lt;a href="https://www.2020.happystartups.co/" rel="noopener noreferrer"&gt;2020 vision program&lt;/a&gt; I've been missing a lot. It's been hard to keep up with both the exercises and the group, or, "tribe", as we call it. &lt;/p&gt;

&lt;p&gt;I feel a bit bad about it but I know it happens to me a lot, that I'm not able to keep up, and I end up doing things at my own pace and on my own. I know that even if I'm behind, I'll still be able to take a lot of value from the program on the long term so I'm happy to do it.&lt;/p&gt;

&lt;p&gt;Oh, yeah, I did wrote myself a letter from the future (3 years from now) as part of an exercise.&lt;/p&gt;

&lt;p&gt;Other than that.. &lt;/p&gt;

&lt;p&gt;Stuck at home as everybody else, talking to people on video calls instead of meeting in person, enjoying the garden (sorry if you're stuck in an apartment).&lt;/p&gt;

&lt;p&gt;Oh, and I also started to use my old camera, yeah, a regular camera, not a phone, to take pictures, as I love the macro effect.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What's up with Alex (me) January 2020</title>
      <dc:creator>Alexandru Trandafir</dc:creator>
      <pubDate>Tue, 11 Feb 2020 07:17:41 +0000</pubDate>
      <link>https://dev.to/atrandafir/what-s-up-with-alex-me-january-2020-3eoj</link>
      <guid>https://dev.to/atrandafir/what-s-up-with-alex-me-january-2020-3eoj</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;I am on a 2 year journey to change my environment &amp;amp; habits &amp;amp; follow my intuition and see where it takes me. &lt;/p&gt;

&lt;p&gt;This is the post #4 and it is part of a series of posts I'm writing monthly since I moved from Barcelona and contains a mix of professional / tech &amp;amp; personal life stories. &lt;/p&gt;

&lt;p&gt;You can read the first one &lt;a href="https://dev.to/atrandafir/what-s-up-with-alex-me-october-2019-4a89"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  January's update
&lt;/h2&gt;

&lt;p&gt;I realized I'm spending way too much time trying to figure out what to write in these monthly posts and so this time, (I'm late again, I know) I am going to put a 30 minutes timer and just make it fit in that time. (It took me 45, damn!)&lt;/p&gt;

&lt;h3&gt;
  
  
  Saas product
&lt;/h3&gt;

&lt;p&gt;At the beginning of the month I managed to do some good progress designing some screens for the product I'm working on. You can see one here:&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%2Fzg32q6470msr0p4khw87.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.amazonaws.com%2Fuploads%2Farticles%2Fzg32q6470msr0p4khw87.png" alt="Portfolee's Dashboard timeline view" width="800" height="833"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And also some more on the Twitter feed:  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/portfolee" rel="noopener noreferrer"&gt;https://twitter.com/portfolee&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But then I got stuck with other projects and wasn't able to keep up. Hope to get back to some more progress soon.&lt;/p&gt;

&lt;p&gt;At the same time I've started the &lt;a href="https://www.2020.happystartups.co/home" rel="noopener noreferrer"&gt;Happy Startup School 2020 vision program&lt;/a&gt;, and because of this program maybe the product progress will get a little stuck.&lt;/p&gt;

&lt;p&gt;I mean, they both serve the same goal, my intention to switch more to product based business instead of service based only, but the program will introduce me some new challenges regarding having a clear long term vision for myself and the projects I'll be dedicating my future years to.&lt;/p&gt;

&lt;p&gt;For now we've just met our mentors and introduced ourselves and started to work on some exercises. This afternoon we have our first group call and really looking forward to it, and to the whole program as a journey, with the rest of the people on it!&lt;/p&gt;

&lt;h3&gt;
  
  
  Business rollercoaster &amp;amp; busy month ahead
&lt;/h3&gt;

&lt;p&gt;Service business is going good but it gets a little intense with the ups and downs. &lt;/p&gt;

&lt;p&gt;Personally I'm trying to do my best to sort out all priorities both in terms of making progress on existing projects &amp;amp; identifying the strategic steps that should be on the list on the future weeks and months.&lt;/p&gt;

&lt;p&gt;Even so, we managed to finally launch a pretty delayed project for a client of ours: &lt;a href="https://www.aviationjobs.me/" rel="noopener noreferrer"&gt;https://www.aviationjobs.me/&lt;/a&gt; and doing some post launch tweaking now and hopefully will see this project grow in the following year.&lt;/p&gt;

&lt;p&gt;And then there are some interesting new deals and partnerships showing up and we're looking forward to see some of those opportunities materialize.&lt;/p&gt;

&lt;h3&gt;
  
  
  No traveling yet
&lt;/h3&gt;

&lt;p&gt;No traveling yet, didn't managed to go to Greece, but I might still try to. &lt;/p&gt;

&lt;p&gt;And, probably in April I will be visiting Barcelona for the first time since I left, to take care of some business stuff that requires me to be there in person. Of course I'll be happy to visit my team, ex-coworkers, family &amp;amp; friends.&lt;/p&gt;

&lt;h3&gt;
  
  
  Remembering to enjoy life
&lt;/h3&gt;

&lt;p&gt;Even if I'm trying to focus a lot on handling business &amp;amp; projects, at the same time I remember myself that time is valuable as nobody will be around forever, so, spend that time in nature, enjoy your friends and family, feel those feelings &amp;amp; make the best out of life.&lt;/p&gt;

</description>
      <category>mentalhealth</category>
      <category>saas</category>
      <category>lifestyle</category>
      <category>intuition</category>
    </item>
    <item>
      <title>What's up with Alex (me) december 2019</title>
      <dc:creator>Alexandru Trandafir</dc:creator>
      <pubDate>Mon, 06 Jan 2020 10:57:18 +0000</pubDate>
      <link>https://dev.to/atrandafir/what-s-up-with-alex-me-december-2019-2a8n</link>
      <guid>https://dev.to/atrandafir/what-s-up-with-alex-me-december-2019-2a8n</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;I am on a 2 year journey to change my environment &amp;amp; habits &amp;amp; follow my intuition and see where it takes me. &lt;/p&gt;

&lt;p&gt;This is the post #3 and it is part of a series of posts I'm writing monthly since I moved from Barcelona and contains a mix of professional / tech &amp;amp; personal life stories. &lt;/p&gt;

&lt;p&gt;You can read the first one &lt;a href="https://dev.to/atrandafir/what-s-up-with-alex-me-october-2019-4a89"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Saas product
&lt;/h2&gt;

&lt;p&gt;As some of you might know one of my long term goals is to build a Saas product. &lt;/p&gt;

&lt;p&gt;The motivations behind it are: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Share something valuable with the rest of the world.&lt;/li&gt;
&lt;li&gt;Have fun while doing it.&lt;/li&gt;
&lt;li&gt;And also add some extra income source to the business.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In my previous post I've said that I did almost no progress on &lt;a href="https://portfolee.app/" rel="noopener noreferrer"&gt;https://portfolee.app/&lt;/a&gt; in the previous month, but I'm happy to say that my first hours of the year 2020 were dedicated to it and I hope to be able to keep doing it and post more updates soon.&lt;/p&gt;

&lt;p&gt;By the end of the month I'll also start the &lt;a href="https://www.2020.happystartups.co/home" rel="noopener noreferrer"&gt;Happy Startup School's 2020 Vision&lt;/a&gt; program who's goal will be to help build a product while at the same time having a positive impact on my current software development business so instead of one suffering from another, they should co-live in harmony.&lt;/p&gt;

&lt;p&gt;The people behind that program are amazing and I know them personally since I went to &lt;a href="http://www.alptitu.de/" rel="noopener noreferrer"&gt;Alptitude 2017&lt;/a&gt; and I can't wait to meet (online) and engage other entrepreneurs &amp;amp; makers and see where those 20 weeks take us.&lt;/p&gt;

&lt;h2&gt;
  
  
  Software business
&lt;/h2&gt;

&lt;p&gt;Business at the end of the year was pretty relaxing because of many people on vacation and not much noise around.&lt;/p&gt;

&lt;p&gt;It was perfect to recharge batteries and at the same time work in silence on some projects without anybody bothering.&lt;/p&gt;

&lt;p&gt;Now that is changing as everybody comes back and I look forward to finish some projects, engage new ones and see what new negotiations brings this month.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lifestyle
&lt;/h2&gt;

&lt;p&gt;I haven't been doing too much exercise lately.. and I should get back to running a bit.&lt;/p&gt;

&lt;p&gt;I'm still hanging out with the dog on a daily basis and at least once a week we have a short trip on the hills.&lt;/p&gt;

&lt;p&gt;It's not snowing yet here and it is sad to see that. But it is cold, and so I've managed to go and practice some ice skating. I find that pretty fun because of both doing exercise and listening to music, great way to get out of the house.&lt;/p&gt;

&lt;p&gt;I've been also thinking to go skiing and I had an opportunity to go but didn't take it. But I hope I'll manage to do it in the next weeks or until the winter ends.&lt;/p&gt;

&lt;h2&gt;
  
  
  Traveling (&amp;amp; coding)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Brasov
&lt;/h3&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%2Fzcdxohntf3wqzde6xeec.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%2Fzcdxohntf3wqzde6xeec.jpg" alt="Brasov" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I've forgot to mention that I had a spontaneous trip to Brasov at the beginning of November.&lt;/p&gt;

&lt;p&gt;I had went on a short trip to the mountains with my dad to take some pictures for social media and decided to just go a little bit further to Brasov and visit an old friend. He could be reading this (Hey man!) and he is/was also a developer.&lt;/p&gt;

&lt;p&gt;And it's great to meet again with old friends and see how warming and welcome they are. Thanks for that and maybe will come visit again during 2020.&lt;/p&gt;

&lt;h3&gt;
  
  
  Iasi
&lt;/h3&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%2F4g58psi3ytnsmzf2367b.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%2F4g58psi3ytnsmzf2367b.jpg" alt="Iasi" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Anyways, just before Christmas I got on a train to Iasi to visit my aunt. I enjoyed a lot that city and I'm so thankful for the city tour they gave me where I've learned more about romanian writers in a day than I did when I was a kid at school.&lt;/p&gt;

&lt;p&gt;This train trip was also very productive and I had forgotten how focused you can work when you have no stable internet connection and not much options to choose.&lt;/p&gt;

&lt;p&gt;It forces you to choose the best task at hand and since "you're on a trip" you're not expected to be in a meeting or anything like that. &lt;/p&gt;

&lt;p&gt;You just put your headphones on, choose a project, and work on it while staring at the people on the train or at the landscape.&lt;/p&gt;

&lt;p&gt;It is a perfect moment to have a breakthrough on a project and overcome a part of it where you couldn't find the time to focus. The longer the ride, the better.&lt;/p&gt;

&lt;p&gt;By the way don't get scared by trains in Romania if you ever take one, I was surprised by the bumps on the rails. It's fun while the train doesn't end up going off the rails.&lt;/p&gt;

&lt;h3&gt;
  
  
  Next up? Maybe Greece
&lt;/h3&gt;

&lt;p&gt;I've got another aunt in Thessaloniki, that I've already visited this summer and I enjoyed being in a different place with a different culture that I don't understand. &lt;/p&gt;

&lt;p&gt;I might jump on a random trip over here, either a short one for a couple of days, or who knows, maybe I'll stay a little longer and engage more with the place.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learning stuff by hanging out with people
&lt;/h2&gt;

&lt;p&gt;The past weeks I've noticed that if you hang out with other people you might end up learning new things.&lt;/p&gt;

&lt;p&gt;Like, stuff about cars, that I know almost nothing, just how to drive one.&lt;/p&gt;

&lt;p&gt;Who knew Antifreeze had to be mixed with something before putting it into the car? I didn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  Christmas &amp;amp; new year
&lt;/h2&gt;

&lt;p&gt;Well if you're not romanian you might not know that over here we have our own &lt;code&gt;trick or treat&lt;/code&gt; version but not for Halloween:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Before Christmas, kids go from house to house singing and getting some very boring round piece of bread in return.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But wasn't all Christmas that boring, I've also had the chance to go to one of my friends from back from school and dance like crazy while listening to loud music. If you add to that some alcohol &amp;amp; a barbecue you get the traditional romanian Christmas.&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%2F6rphwigwitjz6hfwfoqn.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%2F6rphwigwitjz6hfwfoqn.jpg" alt="Big speaker" width="800" height="1066"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As for new year, well, that was not so much of a traditional party but a LAN one. Yeah, turns out me, my cousin and  my &lt;a href="https://www.twitch.tv/tntrose69" rel="noopener noreferrer"&gt;gamer brother&lt;/a&gt; played some Borderlands to celebrate 2020.&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%2Fis8t96io6lclr71fjo1f.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%2Fis8t96io6lclr71fjo1f.jpg" alt="Lan party Borderlands" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Well, that's it for december, and for past year.&lt;/p&gt;

&lt;p&gt;Now looking forward for a great January &amp;amp; a great 2020 ahead, that being said, have a blessed 2020 you too!&lt;/p&gt;

&lt;p&gt;Keep on hacking code &amp;amp; life! :-)&lt;/p&gt;

&lt;h2&gt;
  
  
  Link to next post in this series
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://dev.to/atrandafir/what-s-up-with-alex-me-january-2020-3eoj"&gt;https://dev.to/atrandafir/what-s-up-with-alex-me-january-2020-3eoj&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mentalhealth</category>
      <category>saas</category>
      <category>lifestyle</category>
      <category>intuition</category>
    </item>
    <item>
      <title>What's up with Alex (me) november 2019</title>
      <dc:creator>Alexandru Trandafir</dc:creator>
      <pubDate>Tue, 17 Dec 2019 15:49:27 +0000</pubDate>
      <link>https://dev.to/atrandafir/what-s-up-with-alex-me-november-2019-32kg</link>
      <guid>https://dev.to/atrandafir/what-s-up-with-alex-me-november-2019-32kg</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;I am on a 2 year journey to change my environment &amp;amp; habits &amp;amp; follow my intuition and see where it takes me. This is the post #2 after second month.&lt;/p&gt;

&lt;p&gt;It is part of a series of posts I'm writing monthly since I moved from Barcelona and contains a mix of professional / tech &amp;amp; personal life stories. &lt;/p&gt;

&lt;p&gt;You can read the first one &lt;a href="https://dev.to/atrandafir/what-s-up-with-alex-me-october-2019-4a89"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This one is coming late already! And I'm still trying to figure out the best way to write it and hope to improve in time as I get more skilled &amp;amp; also my life story gets more interesting. ;-)&lt;/p&gt;

&lt;p&gt;I even got a new domain name &amp;amp; I'm planning to set up the blog there, let's see how that turns out.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building a Saas product
&lt;/h2&gt;

&lt;p&gt;One of my main long term goals is to build a product &amp;amp; not long ago I've started to work on &lt;a href="https://portfolee.app/" rel="noopener noreferrer"&gt;https://portfolee.app/&lt;/a&gt; and I wish I could talk here about all the amazing progress I have done in the past month but instead I will confess I haven't managed to build a good habit around it yet so I've done little to no progress in the past weeks.&lt;/p&gt;

&lt;p&gt;I guess all the daily responsibilities have eaten up all my energy &amp;amp; I had none left for it, or maybe it is just an excuse and I really need to prioritize &amp;amp; focus harder.&lt;/p&gt;

&lt;p&gt;Either way I'm still excited &amp;amp; with tons of ideas regarding all the product building process &amp;amp; experience and that's good.&lt;/p&gt;

&lt;p&gt;UPDATE: At the time I was writing this post, I just got enrolled into &lt;a href="https://www.2020.happystartups.co/home" rel="noopener noreferrer"&gt;Happy Startup School's 2020 Vision program&lt;/a&gt; and I will be participating on it starting at the end of January during 20 weeks and I will work on pushing the product forward &amp;amp; at the same time do it in a way it benefits the service business.&lt;/p&gt;

&lt;h2&gt;
  
  
  Business status
&lt;/h2&gt;

&lt;p&gt;At our software development agency HeavyDots we've had a pretty good month!&lt;/p&gt;

&lt;p&gt;We've got a good lead flow coming in with all sorts of projects and we finally managed to close a couple of great leads we've been after in the past months and that really feels great and that's thanks to the team efforts &amp;amp; to the people who put their trust in us or recommend us.&lt;/p&gt;

&lt;p&gt;I've personally been busy with 3 projects.&lt;/p&gt;

&lt;p&gt;One is the custom accounting software we're building for a client for a long term now, that is not the sexiest project to work on but brings a lot of interesting challenges.&lt;/p&gt;

&lt;p&gt;Second, is a job board in aviation industry that looks like after long time we are finally getting pretty close to a launch date and I can't be more happy about that &amp;amp; guess the client too.&lt;/p&gt;

&lt;p&gt;Third was a 40 hour prototype that we've had to build in order to close one of the deals we were negotiating for a Saas in the car buy-sale legal process in Spain. It was a success &amp;amp; really looking forward to develop the full product in the following months.&lt;/p&gt;

&lt;p&gt;Last but not least, it is cool to see secondary side-projects where we invested time in the past still bringing few conversions. Two years ago we've written &lt;a href="http://www.aeatsiidesarrolladores.es/" rel="noopener noreferrer"&gt;an ebook&lt;/a&gt; about integrating the Spanish SII invoice sending web service, and even if it's a nasty subject and the market is very small for it (limited number of developers), even so, we're still getting about 1 purchase per month and it feels good to see that we've been able to identity a pain &amp;amp; bring some value.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learning to balance work on multiple projects
&lt;/h2&gt;

&lt;p&gt;When I work on a project I normally like to focus only on that for very long hours, as if I were on a hackathon. &lt;/p&gt;

&lt;p&gt;Actually I have built many projects like that, for example another of my side projects's MVP has been built in about one weekend. It's a platform for &lt;a href="http://allmypicz.com/" rel="noopener noreferrer"&gt;storing &amp;amp; sharing personal pictures&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So I use to work that way because of two reasons very closely related one to another: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You can make HUGE progress on a project if you have a non-interrupted time span of about 8 hours of more, I would say I can deliver one "normal" week's work in a single day&lt;/li&gt;
&lt;li&gt;After spending lots of non interrupted hours on the same thing your mind creates a very clear image of how that thing should be and that is somehow a state of mind that is not very easy to reach if you're just dedicating one hour now and another tomorrow&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I mean I guess lots of artists &amp;amp; creatives also do it, and I think it is because somehow you reach a deep connection with your creativity and boosts both your understanding &amp;amp; performance.&lt;/p&gt;

&lt;p&gt;So what happend lately is that I've also identified some pains regarding that method of work:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It can get you disconnected from coworkers &amp;amp; social life if you only work that way&lt;/li&gt;
&lt;li&gt;If you have not one, but 2-4 projects you need to make progress on, it is very hard to find balance because you end up starting your week focusing on one and by the end of the week you realize you made huge progress on it, but NO progress on the rest of the projects&lt;/li&gt;
&lt;li&gt;And sometimes even if you made that HUGE progress &amp;amp; that's great, some projects are very big will probably never end too soon in order for you to move to another thing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I'm trying to find some balance now and the method I'm currently using is to try to split my day on 2-3 projects based on importance and in the past weeks I have managed to make progress on multiple things.&lt;/p&gt;

&lt;p&gt;I have also noted that it is way easier to do that if you try to break the project into smaller chunks and focus on the "next task" and also keeping comments at hand about what you did last time creates a pattern on your mind that makes it easier to continue next time.&lt;/p&gt;

&lt;p&gt;Sadly I haven't managed to work on the product as I wasn't sure I was being able to take in one more project. Even this blog post was very delayed because of the same reason. But hey the post is here turning out &amp;amp; I hope the product will have the same fate.&lt;/p&gt;

&lt;p&gt;Would be great to hear in the comments regarding your experience on finding balance to work constantly on multiple projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  From afternoon schedule to mornings
&lt;/h2&gt;

&lt;p&gt;I have spent a few weeks working from about 12pm to 2pm then from 4pm to 9pm and then from 10pm to 00, I did that extra hour just to make sure all the projects on my table had the chance to get some progress.&lt;/p&gt;

&lt;p&gt;But since I'm quite bad at having a fixed schedule I ended up going to bed very late and it wasn't manageable anymore, so I'm coming back to morning schedule, and it feels a little bit more natural now.&lt;/p&gt;

&lt;p&gt;Currently is 7-9am, then 10am-1pm and then 3pm-6pm and looks like it is turning out good. Let's see for how long I can stick with it.&lt;/p&gt;

&lt;p&gt;I love to be social &amp;amp; interact with friends &amp;amp; coworkers but I'm also a results oriented person &amp;amp; I really love to spend time in silence &amp;amp; make progress on a project. So either late in the afternoon or early in the morning I really value those "mine" moments.&lt;/p&gt;

&lt;p&gt;And for those of you who know me a little bit you know how easy it is for me to get distracted and carried away, haha, so silent non-interrupted moments really keep me on track.&lt;/p&gt;

&lt;h2&gt;
  
  
  Staying sane &amp;amp; healthy
&lt;/h2&gt;

&lt;p&gt;I really realized I'm the kind of person that finds life "hard". &lt;/p&gt;

&lt;p&gt;For me it really doesn't matter if I have to develop a complex piece of software or just do some home-related task as cooking, cleaning, you name it, I somehow feel it is the same challenge, to get yourself together and do it.&lt;/p&gt;

&lt;p&gt;And among the things that really affect my mood are food &amp;amp; weather. If it's a shitty day outside &amp;amp; I haven't got any food prepared the previous day, and not even think or plan for it, I can say it can definetly be a doomed day.&lt;/p&gt;

&lt;p&gt;But anyway, I think it has to do with better habits. Planning my meal in advance &amp;amp; making sure I also exercise a little bit, can solve both issues. So yeah, food + exercise + weather is a combination that needs constant attention.&lt;/p&gt;

&lt;p&gt;Another thing that keeps me sane &amp;amp; I am very grateful for, is having someone around to talk, be it a close friend, family, neighbours.. to chat, do something together, play some videogame.&lt;/p&gt;

&lt;p&gt;And let's not forget about nature, as it is amazing how much can a walk outside can help our mind relax and disconnect and get ready for the next challenge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Planning for the future?
&lt;/h2&gt;

&lt;p&gt;I always struggle with making plans for the future as I've got about 10 Trello boards &amp;amp; 5 Mindmups where I try to organize all my ideas and based on that I try to take some decisions regarding what's important for me to do right now &amp;amp; in the following months.&lt;/p&gt;

&lt;p&gt;But I guess there's no easy way to go about it, a long term vision is hard to build if you've got lots of ideas, and even if you do, life can still surprise you with something unexpected.&lt;/p&gt;

&lt;h2&gt;
  
  
  Link to next post in this series
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://dev.to/atrandafir/what-s-up-with-alex-me-december-2019-2a8n"&gt;https://dev.to/atrandafir/what-s-up-with-alex-me-december-2019-2a8n&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mentalhealth</category>
      <category>saas</category>
      <category>lifestyle</category>
      <category>intuition</category>
    </item>
  </channel>
</rss>
