<?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>Forem: Favour Felix</title>
    <description>The latest articles on Forem by Favour Felix (@favourfelix).</description>
    <link>https://forem.com/favourfelix</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%2F317627%2F75b83740-53ec-43ec-a904-49d10bba979b.png</url>
      <title>Forem: Favour Felix</title>
      <link>https://forem.com/favourfelix</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/favourfelix"/>
    <language>en</language>
    <item>
      <title>The 10x Engineer: A Guide to Building Efficient Software and Achieving Career Success</title>
      <dc:creator>Favour Felix</dc:creator>
      <pubDate>Wed, 16 Aug 2023 22:33:55 +0000</pubDate>
      <link>https://forem.com/favourfelix/the-10x-engineer-a-guide-to-building-efficient-software-and-achieving-career-success-28na</link>
      <guid>https://forem.com/favourfelix/the-10x-engineer-a-guide-to-building-efficient-software-and-achieving-career-success-28na</guid>
      <description>&lt;p&gt;I concluded reading a book titled &lt;em&gt;&lt;a href="https://addyosmani.com/blog/software-engineering-soft-parts"&gt;Software Engineering: The Soft Parts&lt;/a&gt;&lt;/em&gt; about a month ago. Addy Osmani wrote the book — Think of a resource that empowers you to become a great employee, an efficient leader and a high-performing engineer—that is precisely what the book seeks to achieve.&lt;/p&gt;

&lt;p&gt;While I read, I wrote. I also pondered some of my past experiences; some of the information here was my reality, and others still needed to be. Sharing this might be helpful to a ton of people. Hence, here are some learnings I gathered from my most recent reading:&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Set Career Goals
&lt;/h3&gt;

&lt;p&gt;As much as you can, write down goals for your career and ensure that the code you write daily helps you steadily hit that goal.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Invest in Critical Thinking
&lt;/h3&gt;

&lt;p&gt;Try to make your thoughts clear before you start writing code; use pen and paper to visualise if necessary.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Divide And Conquer
&lt;/h3&gt;

&lt;p&gt;Learn to Divide and Conquer: always break seemingly large problems into lower bits.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Understand The Fundamentals
&lt;/h3&gt;

&lt;p&gt;In software engineering, the fundamentals can be classified into macro and micro levels. The macro level entails programming concepts like data structures, algorithms, architecture and performance optimisations. The micro level involves the language, frameworks or tech stack. The macro level should be of utmost concern as they are inherited essentials of the micro level.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6. User Always Comes First, Then Technology Follows
&lt;/h3&gt;

&lt;p&gt;Examine what the user needs, and work backwards by trying to use the technology that bests suits the user’s requirements and needs. Sometimes, there are personnel, hiring or speed constraints. Regardless choose the best option between these constraints.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Learn Everyday
&lt;/h3&gt;

&lt;p&gt;Learn something new every day.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Read Other People’s Code
&lt;/h3&gt;

&lt;p&gt;Read the source code of the new and bubbly frameworks you admire—“The main value in software is not the code produced but the knowledge accumulated by the people who produced it.”&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  9. Leaders Also Make Mistakes
&lt;/h3&gt;

&lt;p&gt;It’s powerful for leaders to admit when they don’t know something; good leaders also recognise when they make mistakes.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  10. Be a T-Shaped Engineer
&lt;/h3&gt;

&lt;p&gt;Aim to be a master of a skill and to have basic knowledge of other skills to get by on a project—a &lt;a href="https://alexkondov.com/the-t-shaped-engineer/"&gt;T-shaped engineer&lt;/a&gt;. Sometimes we love to satisfy our curiosity and explore new technologies, but building capacity in a particular tech stack would make you a force to reckon with.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  11. Less (Code) is More
&lt;/h3&gt;

&lt;p&gt;Less code is always better code; adding redundant functionality increases the complexity of your code.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  12. Technical Debt Isn’t Always Bad
&lt;/h3&gt;

&lt;p&gt;Always prioritise speed, progress and simplicity; sometimes, this might result in technical debt. A technical debt is okay if the cost of the debt has been counted, and plans to pay the debt as soon as possible are implemented.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  13. Abstract Complex Code
&lt;/h3&gt;

&lt;p&gt;When complex solutions require complex code, a good practice is to abstract complex code. For example, complex functions, interfaces, or classes can be abstracted in a separate file, package or module.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  14. Not All Old (Code) is Gold
&lt;/h3&gt;

&lt;p&gt;While there might be good reasons for some specific code to exist in production, when working with legacy code, we should still question whether every line is needed or could be done better.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  15. Define Project Requirements and Completion Criteria
&lt;/h3&gt;

&lt;p&gt;Defining the criteria for a project’s completion helps save time and unnecessary revisions. We must also remember that we are never satisfied with every feature we have built.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  16. Make Deployments in Digestable Sizes
&lt;/h3&gt;

&lt;p&gt;Releasing updates in smaller chunks to users help to manage risks better. Large changes could have more significant impacts on users.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  17. Read Error Messages and Stack Traces
&lt;/h3&gt;

&lt;p&gt;Always read error messages and stack traces before looking for solutions elsewhere.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  18. Document Systems and Processes
&lt;/h3&gt;

&lt;p&gt;Creating documentation for your internal design system is super important, and it helps all stakeholders on the project in the long run (new and old)&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  19. Communication is The Most Crucial Part of Your Job
&lt;/h3&gt;

&lt;p&gt;Admittedly, Communication can be challenging for engineers, but it is extremely important — possibly the most crucial part of our job.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  20. More Growth Equals More Communication
&lt;/h3&gt;

&lt;p&gt;As we grow in our roles and climb the corporate ladder, we must understand that this equates to more communication. Promotions almost always require us to have better communication skills.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  21. Know When to Speak in Technical Terms
&lt;/h3&gt;

&lt;p&gt;Avoid using &lt;strong&gt;OVERLY&lt;/strong&gt; technical jargon when talking to a business-focused stakeholder. However, a business person needs to be aware of technology decisions from a low level.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  22. Simplify Product Decisions and Outline Possible Implications
&lt;/h3&gt;

&lt;p&gt;When talking to decision-makers like Product Managers, it is best to describe available options and the implications of all of these options.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  23. Progress Updates Are Only Concerned With Hitting Project Goals
&lt;/h3&gt;

&lt;p&gt;When giving status/standup updates, we should always provide an update that is particularly relevant to the project’s goals.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;After discovering these crucial lessons, I have since tried to be conscious of them and act accordingly. There are still many more lessons from the same book, and I will share those in another article.&lt;/p&gt;




&lt;p&gt;I hope you found this article helpful. If you did, feel free to connect with me via favourfelix.com to see what else I'm writing and up to.&lt;/p&gt;

</description>
      <category>career</category>
      <category>beginners</category>
      <category>programming</category>
      <category>leadership</category>
    </item>
    <item>
      <title>CSS and Motion — You Too Can Build Animations on The Web</title>
      <dc:creator>Favour Felix</dc:creator>
      <pubDate>Mon, 26 Sep 2022 22:15:08 +0000</pubDate>
      <link>https://forem.com/favourfelix/css-and-motion-you-too-can-build-animations-on-the-web-15i</link>
      <guid>https://forem.com/favourfelix/css-and-motion-you-too-can-build-animations-on-the-web-15i</guid>
      <description>&lt;p&gt;Who doesn't love animations? More than anything, they make your webpage feel alive. I could take you down memory lane on how the concept of motion captured my heart, but let's talk about you. You build stunning user interfaces, and you know that adding motion to your projects would give them some sort of elegance. Hence, that missing piece has to be filled — CSS and Motion is a short and effective guide sharing just enough fundamentals to help you start developing those buttery smooth animations on your web pages.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Principles of Motion
&lt;/h2&gt;

&lt;p&gt;Understanding the &lt;a href="https://material.io/design/motion/understanding-motion.html#principles"&gt;Principles of Motion&lt;/a&gt; is essential for any motion designer or developer; animations and transitions could be used carelessly on web pages, distracting the user rather than exciting them. As a rule of thumb, ensure your animation passes some information to the user before animating any element. Also, ensure that your animation keeps your user focused on what is necessary. A good instance to use animations is at the end of a user journey, i.e. completing a milestone — this makes your animation expressive.&lt;/p&gt;

&lt;p&gt;For some depth on motion design, see &lt;a href="https://material.io/design/motion"&gt;Understanding Motion&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Now that we know when motion should be used, we need to understand the two ways to apply motion in CSS — Transitions and Animations.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What are Transitions and Animations in CSS? When do I need to use one over the other?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Transitions
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zmzU2en7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j8zk1do677cgaovwyb8p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zmzU2en7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j8zk1do677cgaovwyb8p.png" alt="Diagram explaining transition in CSS" width="880" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Transition is a motion between two keyframes; think of keyframes as a group of CSS styles, e.g. &lt;code&gt;color: red&lt;/code&gt;, &lt;code&gt;padding: 20px&lt;/code&gt; etc. The two keyframes of a transition would be individual styles for an element with similar CSS properties and different values — I know, that’s a lot to take in, but the diagram above helps to simplify.&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/felixfavour/embed/WNJpWxm?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Please note that the &lt;code&gt;transition&lt;/code&gt; property  in the codepen is a shorthand property, containing the &lt;code&gt;transition-delay&lt;/code&gt; and &lt;code&gt;transition-timing-function&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;The code snippet above shows a simple CSS transition that steadily modifies the CSS &lt;code&gt;color&lt;/code&gt; and &lt;code&gt;padding&lt;/code&gt; properties from their initial state to the &lt;code&gt;:hover&lt;/code&gt; state in one second (&lt;code&gt;1s&lt;/code&gt;) — The CSS Transition is triggered by a hover action. &lt;/p&gt;

&lt;p&gt;Transitions are triggered by pseudo-classes like &lt;code&gt;:hover&lt;/code&gt;, &lt;code&gt;:active&lt;/code&gt;, &lt;code&gt;:focus&lt;/code&gt; but not limited to pseudo-classes. They can be added as bare styles while manipulating the DOM to activate the transition motion. A perfect example for this is exit and enter transitions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="c"&gt;/* NOTE: This code snippet inherits code from the codepen above */&lt;/span&gt;

&lt;span class="nc"&gt;.transition-box.enter&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;red&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&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;In the above code snippet, the transition is triggered when the &lt;code&gt;enter&lt;/code&gt; class is added to the  &lt;code&gt;transition-box&lt;/code&gt; div element.&lt;/p&gt;

&lt;h2&gt;
  
  
  Animations
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Byowuerj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rq89w89164dyrludbdm8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Byowuerj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rq89w89164dyrludbdm8.png" alt="Diagram explaining Animations in CSS" width="880" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Transitions are perfect for demonstrating motion between two keyframes, but what happens when you work with more than two keyframes and need more flexibility in changing CSS properties? This is where animations build up on the shortcomings of CSS Transitions. CSS allows you to set animations with numerous keyframes in terms of percentages.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Recall that a keyframe is a group of CSS styles.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/felixfavour/embed/BaxWEdv?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The code snippet above results to a slightly-complex CSS animation with four keyframes; &lt;code&gt;0%&lt;/code&gt;, &lt;code&gt;33%&lt;/code&gt;, &lt;code&gt;66%&lt;/code&gt; and &lt;code&gt;100%&lt;/code&gt;. Each of these keyframes have similar CSS properties and some of these properties have different values; The keyframes use percentages to represent the state of an element at a fraction of the given time, which is three seconds in this case&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="c"&gt;/* NOTE: This code snippet inherits code from the codepen above */&lt;/span&gt;
&lt;span class="nt"&gt;animation&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;cssnmotion&lt;/span&gt; &lt;span class="err"&gt;3&lt;/span&gt;&lt;span class="nt"&gt;s&lt;/span&gt; &lt;span class="nt"&gt;ease-in-out&lt;/span&gt; &lt;span class="nt"&gt;infinite&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With an understanding of what animations and transitions are, you would realise that most complex animations you have encountered in the past are just simple transitions — the developer has set up a construct that changes the value of CSS properties at a given interval.&lt;/p&gt;




&lt;p&gt;I always recommend that animations are reserved for more complex motion designs and are seen as a last resort, as increased complexity can result in decreased performance of your webpage.&lt;/p&gt;

&lt;p&gt;I hope you learnt a lot to kickstart your journey into &lt;strong&gt;CSS and Motion&lt;/strong&gt;. Thank you for reading!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Your Guide to Hacking CSS Units and Dimensions — One Size Could Fit All</title>
      <dc:creator>Favour Felix</dc:creator>
      <pubDate>Mon, 12 Sep 2022 09:09:37 +0000</pubDate>
      <link>https://forem.com/favourfelix/your-guide-to-hacking-css-units-and-dimensions-one-size-could-fit-all-3179</link>
      <guid>https://forem.com/favourfelix/your-guide-to-hacking-css-units-and-dimensions-one-size-could-fit-all-3179</guid>
      <description>&lt;p&gt;Amidst the &lt;code&gt;px&lt;/code&gt;, &lt;code&gt;em&lt;/code&gt;, percent, and so much more units made available with CSS, confusions on the perfect units for dimensioning your HTML elements could arise. Using a unit that seems to work at first glance might trick you into believing that all is well. Sometimes, our choice of units when styling could backfire when our webpage is viewed on another screen. Situations like this make us fall back to media queries to save the day, because why not? How would I expect one CSS dimension to fit several viewports? With a better understanding of CSS Units, one size could fit all viewports. &lt;/p&gt;

&lt;p&gt;Having worked with CSS for a really long time, I have formed various rules of thumb while working with CSS units and recycled them along the way to streamline my styling process. I believe some of these rules could help you very much as they did me.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rule 1: Use relative units instead of absolute units as much as possible
&lt;/h2&gt;

&lt;p&gt;CSS &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/length"&gt;length&lt;/a&gt; dimensions can be represented in two units; the relative and absolute units. The major difference between them is that the absolute unit remains the same size on different screen types and viewports. The relative unit, on the other hand, has a size relative to some set constraints — these constraints could be the parent element font size or the current viewport size. &lt;/p&gt;

&lt;p&gt;Relative units are preferable as they could help to properly size elements and fonts relative to your screen’s viewport and your HTML root element. If implemented carefully, it could drastically reduce time spent styling the same elements using media queries. A good place to start is replacing &lt;code&gt;px&lt;/code&gt; for &lt;code&gt;rem&lt;/code&gt; on your element’s widths, heights, font sizes and more. &lt;/p&gt;

&lt;p&gt;Some examples of absolute units are &lt;code&gt;cm&lt;/code&gt;, &lt;code&gt;mm&lt;/code&gt;, &lt;code&gt;px&lt;/code&gt;, &lt;code&gt;pt&lt;/code&gt;, and a few examples of relative units are &lt;code&gt;em&lt;/code&gt;, &lt;code&gt;rem&lt;/code&gt;, &lt;code&gt;vw&lt;/code&gt;, &lt;code&gt;vh&lt;/code&gt; and so on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rule 2: Do not neglect the “max-” and “min-” properties.
&lt;/h2&gt;

&lt;p&gt;As often as you use the width and height CSS properties, try to visualise edge cases where the viewport is larger or smaller than it actually is — this would help you to determine whether a &lt;code&gt;min-width&lt;/code&gt;, &lt;code&gt;max-width&lt;/code&gt;, &lt;code&gt;min-height&lt;/code&gt; or &lt;code&gt;max-height&lt;/code&gt; property would be useful in such scenario.&lt;/p&gt;

&lt;p&gt;The “max-” and “min-” properties could be a total lifesaver in the weirdest screen dimensions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rule 3: Margin is not Padding, and Padding is not Margin.
&lt;/h2&gt;

&lt;p&gt;In my early days as a Software Engineer, it took me a while to see the difference between padding and margin — for me, all that mattered was that they both created spacing for my HTML element. After using them repeatedly, I noticed that even though they both created spacing, they were not similar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--R_qefFGi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/li7yqc6jht6okhwwaufk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--R_qefFGi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/li7yqc6jht6okhwwaufk.png" alt="Diagram illustrating how paddings and margins relate to a HTML element. " width="880" height="552"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Padding is simply the inner spacing in the element, and a margin is the outer spacing. Knowing when and when not to use both CSS properties would help you build better and avoid dimension problems on other viewports.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rule 4: There is always a root cause; adding and subtracting dimensions is never a long-lasting solution.
&lt;/h2&gt;

&lt;p&gt;If you have ever tried to center a div manually by adding and subtracting margin and padding dimensions, this is especially for you. Oftentimes, when we try to fix code to meet a design requirement or guideline, we tend to modify the dimensions hoping it just matches what we have visualized; we could try to add a negative margin or reduce the element’s padding just to achieve that mental picture. But the truth is, taking this approach works sometimes, but other times, it could be chaotic — so why not take the safer approach?&lt;/p&gt;

&lt;p&gt;The safer approach is the one that feels less manual and more automatic; you could explore using an &lt;code&gt;auto&lt;/code&gt; margin; if that doesn’t suit your needs, use the flexbox; if CSS’s flex doesn’t quite cut it, CSS grids might just save the day — either way, make sure your solution does not require a lot of manual effort when it is displayed on varying viewports.&lt;/p&gt;

&lt;p&gt;If you read this far, &lt;strong&gt;thank you!&lt;/strong&gt; Feel free to drop comments and questions if you have any — criticisms are greatly appreciated too, as I have only just begun my journey in Technical Writing.&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
