<?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: Rodo</title>
    <description>The latest articles on DEV Community by Rodo (@rodonguyen).</description>
    <link>https://dev.to/rodonguyen</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1107198%2F2a17acd9-d634-48f9-9603-db5a31785ade.jpeg</url>
      <title>DEV Community: Rodo</title>
      <link>https://dev.to/rodonguyen</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rodonguyen"/>
    <language>en</language>
    <item>
      <title>When should you ask your teammate?</title>
      <dc:creator>Rodo</dc:creator>
      <pubDate>Thu, 08 Aug 2024 02:55:43 +0000</pubDate>
      <link>https://dev.to/rodonguyen/when-should-you-ask-your-teammate-3a6d</link>
      <guid>https://dev.to/rodonguyen/when-should-you-ask-your-teammate-3a6d</guid>
      <description>&lt;p&gt;Weekly Lesson as a Software Engineer&lt;/p&gt;

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

&lt;p&gt;If you are about to ask your teammate something small and quick, like “Does ALTER TABLE works with a VIEW (postgres)?”, MAYBEEE just stop there a bit and do some homework.&lt;/p&gt;

&lt;p&gt;You can try to search the entire codebase to see how others did it at other places, read one or two pages of the Documentation (yeah, there’s such a thing guys 😂), read the README.md, etc. That’s just some examples but in summary, for googlable questions, I’d try to spend 5-15 mins to look for a solution myself.&lt;/p&gt;

&lt;p&gt;I know you want to get it done, I know you may have been stuck in that task for 2 days already, but take a deep breath and see if there’s anything you can do first.&lt;/p&gt;

&lt;p&gt;And if you do ask your teammate, follow up with a question like “Do we have it documented somewhere?”. This is something I learned from working in the Student Support Call Centre — Empowering customers. The point is that if you know where to look for the information, you will be less likely to need help from others next time.&lt;/p&gt;

&lt;p&gt;And you should also take into consideration how busy (and stressful) your team is and decide if you want to reach out for help or sit back and strive a bit more.&lt;/p&gt;

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

&lt;p&gt;That’s it for this week 🙂&lt;/p&gt;

&lt;p&gt;Follow me for more tips like this in the future &lt;/p&gt;

</description>
      <category>developer</category>
      <category>workplace</category>
      <category>productivity</category>
      <category>challenge</category>
    </item>
    <item>
      <title>Best and Good Solution</title>
      <dc:creator>Rodo</dc:creator>
      <pubDate>Mon, 08 Jul 2024 03:13:14 +0000</pubDate>
      <link>https://dev.to/rodonguyen/best-and-good-solution-236e</link>
      <guid>https://dev.to/rodonguyen/best-and-good-solution-236e</guid>
      <description>&lt;p&gt;Weekly lessons from a Software Engineer:&lt;/p&gt;

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

&lt;p&gt;Working in an Agile Software Development team for a while, I realised that the best solution is not always the best thing for business.&lt;/p&gt;

&lt;p&gt;The business owner (BO) may not care how well the code is written or if the architecture is well designed for the future.&lt;/p&gt;

&lt;p&gt;Sometimes, implementing an ok solution is better because it is simpler, saves time (time is money to BO) and is faster to launch to the customer. This is even more important for startups.&lt;/p&gt;

&lt;p&gt;The decision to choose a complex solution must not only be justified by its benefits but also consider the business context. Otherwise, the business may run out of money before it can see the benefits of that “amazing” solution.&lt;/p&gt;

&lt;p&gt;So… What can I do as a Software Engineer in the team? When you implement the next feature, evaluate different approaches and open a discussion with relevant stakeholders 😉&lt;/p&gt;

</description>
    </item>
    <item>
      <title>[Beginner] Tailwind quick Introduction and Review</title>
      <dc:creator>Rodo</dc:creator>
      <pubDate>Thu, 28 Dec 2023 04:54:56 +0000</pubDate>
      <link>https://dev.to/rodonguyen/beginner-tailwind-quick-introduction-and-review-5all</link>
      <guid>https://dev.to/rodonguyen/beginner-tailwind-quick-introduction-and-review-5all</guid>
      <description>&lt;p&gt;Unlike most people, I got COVID this Xmas. (ye... pretty sad)&lt;/p&gt;

&lt;p&gt;So instead of going on a holiday, I stayed at home and learned a new skill instead 😂 Which is &lt;strong&gt;Tailwind&lt;/strong&gt; -- a very popular tool in Front-End dev for conveniently creating streamlined, uniformed style for your web application.&lt;/p&gt;

&lt;p&gt;Here is what I have discovered:&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Tailwind is NOT that hard!
&lt;/h2&gt;

&lt;p&gt;Basically, it only takes &lt;strong&gt;3 steps&lt;/strong&gt; to get into it: &lt;br&gt;
-&amp;gt; Install Tailwind packages &lt;br&gt;
-&amp;gt; Set up (do some config) &lt;br&gt;
-&amp;gt; Use Tailwind instantly via &lt;code&gt;className&lt;/code&gt; or define style in CSS file using Tailwind syntax&lt;/p&gt;

&lt;p&gt;I did say it's convenient because we can define style for any HTML element directly from the className and Tailwind will do its magic with the styling!&lt;br&gt;
&lt;a href="https://media.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%2Fsvzpyxrnbl962h03iupw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsvzpyxrnbl962h03iupw.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can get a really good crash course from Fireship here: &lt;a href="https://www.youtube.com/watch?v=pfaSUYaSgRo" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=pfaSUYaSgRo&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. An advantage only available in Tailwind
&lt;/h2&gt;

&lt;p&gt;is that it provide a uniform way to apply style, removing the naming step with conventional CSS. If you have written several personal apps like me, you must at least once go back to one of them and wonder "what styles does this &lt;code&gt;introduction&lt;/code&gt; className specify...?"&lt;/p&gt;

&lt;p&gt;Want to use &lt;code&gt;display: block&lt;/code&gt;? just put &lt;code&gt;block&lt;/code&gt; in the className.&lt;br&gt;
Want to use &lt;code&gt;font-weight: 600&lt;/code&gt;? just put &lt;code&gt;font-semibold&lt;/code&gt; in the className.&lt;br&gt;
You get the idea.&lt;/p&gt;

&lt;p&gt;And styles can be defined in JavaScript code (if you prefer) so you don't have to open 2 tabs JavaScript and CSS at once :)&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Easy to use/transition
&lt;/h2&gt;

&lt;p&gt;If you already use CSS a lot, transitioning to Tailwind is simple learning the abbreviation of the CSS you've been using. For example, &lt;code&gt;margin-left: auto&lt;/code&gt; will be &lt;code&gt;ml-auto&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Tailwind does provide some support by suggesting its abbreviation thing as you type. So don't stress if you don't know anything. Besides, we also have ChatGPT at our disposal 😎 &lt;/p&gt;

&lt;p&gt;CSS style reminder when hovering over:&lt;br&gt;
&lt;a href="https://media.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%2Fsvzpyxrnbl962h03iupw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsvzpyxrnbl962h03iupw.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tailwind hint:&lt;br&gt;
&lt;a href="https://media.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%2Fznb6ib13izju36hk73wg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fznb6ib13izju36hk73wg.png" alt="hi"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Lots of room for customization
&lt;/h2&gt;

&lt;p&gt;... and still keep it uniform for easy maintenance.&lt;/p&gt;

&lt;p&gt;You can define your own color palette, primary, secondary, text colors in the &lt;code&gt;tailwind.config.json&lt;/code&gt;. See image. Here, I custom the primary color and even add dark mode of the primary color if dark mode is activated. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl8e0lga6lxxq66cqmq0g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl8e0lga6lxxq66cqmq0g.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Line 13 is where I extend the opacity 10% version of the primary color. Meaning to use it for text, I can type "text-primary-10". Simple right?&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Dark mode support
&lt;/h2&gt;

&lt;p&gt;Oh I haven't talked about Tailwind dark mode support, have I? &lt;/p&gt;

&lt;p&gt;From line 6 in the image above, if you set &lt;code&gt;darkMode: "class"&lt;/code&gt; in &lt;code&gt;tailwind.config.json&lt;/code&gt; (a popular way to do it), then to switch your Tailwind style to darkmode, just add &lt;code&gt;dark:&lt;/code&gt; before any style. For example, &lt;code&gt;dark:bg-black&lt;/code&gt; - black background for dark theme.&lt;/p&gt;

&lt;p&gt;I'm a fan of dark mode so I love this feature a lot.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Self-Optimise for Production
&lt;/h2&gt;

&lt;p&gt;When you run &lt;code&gt;npm run build&lt;/code&gt;, Tailwind will go through your specified files, identify which styles are actually used, and remove the rest. So, no room is wasted in production.&lt;/p&gt;

&lt;h1&gt;
  
  
  Final words
&lt;/h1&gt;

&lt;p&gt;In summary, Tailwind is an extremely powerful tool to know and it will definitely provide great accumulative value in the long run. It takes me only ~2 days to understand, use and implement on one of my running app.&lt;/p&gt;

&lt;p&gt;So if you have some free time, Learn it! It's worth it.&lt;/p&gt;

&lt;p&gt;ps: this &lt;a href="https://youtu.be/lHZwlzOUOZ4" rel="noopener noreferrer"&gt;Fireship video&lt;/a&gt; also summarizes many of my ideas said above. Thought I should share it too.&lt;/p&gt;

</description>
      <category>tailwindcss</category>
      <category>webdev</category>
      <category>css</category>
      <category>beginners</category>
    </item>
    <item>
      <title>I just started learning SOLIDITY! Study with me?</title>
      <dc:creator>Rodo</dc:creator>
      <pubDate>Mon, 13 Nov 2023 14:23:12 +0000</pubDate>
      <link>https://dev.to/rodonguyen/i-just-started-learning-solidity-study-with-me-1o3j</link>
      <guid>https://dev.to/rodonguyen/i-just-started-learning-solidity-study-with-me-1o3j</guid>
      <description>&lt;p&gt;So I just started learning &lt;code&gt;Solidity&lt;/code&gt; - the language of blockchain and smart contract.&lt;/p&gt;

&lt;p&gt;First of all, if you want to do it with me, we can push each other to learn more. So follow and talk to me on &lt;a href="https://twitter.com/rodonguyen"&gt;X.com/rodonguyen&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'm learning from &lt;a href="https://youtu.be/EhPeHeoKF88"&gt;Learn Solidity: The COMPLETE Beginner’s Guide (Latest Version 0.8) by Dapp University&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8wyl5fR8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3p2vt3e8gl9b9glv7122.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8wyl5fR8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3p2vt3e8gl9b9glv7122.png" alt="Image description" width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'm a beginner too. Don't be shy and discuss Solidity as we learn :)&lt;br&gt;
&lt;a href="https://rodonguyen.dev"&gt;rodonguyen.dev&lt;/a&gt;&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>smartcontract</category>
      <category>australia</category>
    </item>
    <item>
      <title>how much % you have used out of your life???</title>
      <dc:creator>Rodo</dc:creator>
      <pubDate>Mon, 11 Sep 2023 13:08:52 +0000</pubDate>
      <link>https://dev.to/rodonguyen/how-much-you-have-used-out-of-your-life-3nnb</link>
      <guid>https://dev.to/rodonguyen/how-much-you-have-used-out-of-your-life-3nnb</guid>
      <description>&lt;p&gt;Hello fellow inventors!&lt;/p&gt;

&lt;p&gt;So I developed a fun and simple app that tells you how many percentages of your life you've used. It's called "Time I Have Left" :)&lt;/p&gt;

&lt;p&gt;The link to this app can be found at the bottom or the comment section. &lt;strong&gt;Like&lt;/strong&gt; or &lt;strong&gt;Comment&lt;/strong&gt; to let me know if you want to read more about the project or my tips on programming in general!&lt;/p&gt;

&lt;p&gt;In this project, I decided to use TypeScript instead of JavaScript to learn more about its type-checking feature as well as integrating TS in a pre-built JS application.&lt;/p&gt;

&lt;p&gt;The result? I feel safer with TS and the code becomes more readable with the Type and Interface declaration 😌&lt;/p&gt;

&lt;p&gt;Also, do visit &lt;a href="https://amazing.rodonguyen.dev/timeihaveleft"&gt;the app&lt;/a&gt; too. Hope it provides you with a different len of looking at life! This can be a reminder of how short life is, a message to stop your procrastination or it may just tell you that you're old 😂&lt;/p&gt;

&lt;p&gt;Again... please feel free to &lt;strong&gt;Like&lt;/strong&gt; or &lt;strong&gt;Comment&lt;/strong&gt; to let me know if you want to read more about the project or my tips on programming in general! &lt;/p&gt;

&lt;p&gt;I'm also just learning to program, just like you :&amp;gt;&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>webdev</category>
      <category>programming</category>
      <category>react</category>
    </item>
  </channel>
</rss>
