<?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: Sarah Borgelt</title>
    <description>The latest articles on DEV Community by Sarah Borgelt (@sarah_borgelt_cd2e3100391).</description>
    <link>https://dev.to/sarah_borgelt_cd2e3100391</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%2F4007072%2Fe39219c3-a716-46c8-b883-727e3db65474.jpg</url>
      <title>DEV Community: Sarah Borgelt</title>
      <link>https://dev.to/sarah_borgelt_cd2e3100391</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sarah_borgelt_cd2e3100391"/>
    <language>en</language>
    <item>
      <title>5 Clean Code Habits That Will Save Your Future Self (and Your Team)</title>
      <dc:creator>Sarah Borgelt</dc:creator>
      <pubDate>Mon, 29 Jun 2026 23:58:38 +0000</pubDate>
      <link>https://dev.to/sarah_borgelt_cd2e3100391/5-clean-code-habits-that-will-save-your-future-self-and-your-team-4pg0</link>
      <guid>https://dev.to/sarah_borgelt_cd2e3100391/5-clean-code-habits-that-will-save-your-future-self-and-your-team-4pg0</guid>
      <description>&lt;p&gt;We’ve all been there. You open a file you wrote six months ago, stare at the screen, and think: “Who authorized this absolute chaos?” Then you run git blame and realize the villain is you.&lt;/p&gt;

&lt;p&gt;Writing code that "just works" is easy. Writing code that stays readable, maintainable, and scalable when the panic of a production bug hits? That’s the real skill.&lt;/p&gt;

&lt;p&gt;Here are 5 practical, low-effort clean code habits you can start using today to make your codebase a better place.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Name Variables for Humans, Not Compilers&lt;/strong&gt;&lt;br&gt;
Computers don't care if your variable is named d or daysSinceLastLogin. Humans do. Avoid arbitrary abbreviations that force the reader to play detective.&lt;/p&gt;

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

&lt;p&gt;JavaScript&lt;br&gt;
const d = new Date();&lt;br&gt;
const el = 86400000;&lt;br&gt;
const diff = d - user.lastActive;&lt;br&gt;
if (diff &amp;gt; el) { /* ... */ }&lt;/p&gt;

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

&lt;p&gt;JavaScript&lt;br&gt;
const CURRENT_TIME = new Date();&lt;br&gt;
const ONE_DAY_IN_MILLISECONDS = 86400000;&lt;br&gt;
const msSinceLastLogin = CURRENT_TIME - user.lastActiveTimestamp;&lt;/p&gt;

&lt;p&gt;if (msSinceLastLogin &amp;gt; ONE_DAY_IN_MILLISECONDS) { /* ... */ }&lt;br&gt;
The Rule: If you have to look at the surrounding 20 lines of code just to remember what a variable holds, rename it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. The "Single Responsibility" Function&lt;/strong&gt;&lt;br&gt;
If your function requires an AND in its name (e.g., validateUserAndSaveToDatabase), it’s doing too much.&lt;/p&gt;

&lt;p&gt;Large, multi-purpose functions are incredibly difficult to test and prone to unintended side effects. Break them down so each function does exactly one thing well.&lt;/p&gt;

&lt;p&gt;JavaScript&lt;br&gt;
// Instead of one massive function, compose small ones:&lt;br&gt;
function handleUserSignup(userData) {&lt;br&gt;
  validateUser(userData);&lt;br&gt;
  const user = createUserObject(userData);&lt;br&gt;
  saveToDatabase(user);&lt;br&gt;
  sendWelcomeEmail(user.email);&lt;br&gt;
}&lt;br&gt;
This makes your code read like a story, and if sendWelcomeEmail fails, it won't mysteriously break your database validation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Ditch the "Comments as a Crutch" Habit&lt;/strong&gt;&lt;br&gt;
Comments should explain why something is done, not what is being done. If your code is so confusing that it requires a paragraph of text to explain the logic, rewrite the code, don't write the comment.&lt;/p&gt;

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

&lt;p&gt;JavaScript&lt;br&gt;
// Check to see if the user is an admin and is active&lt;br&gt;
if (user.role === 3 &amp;amp;&amp;amp; user.status === 'A') { ... }&lt;br&gt;
Good:&lt;/p&gt;

&lt;p&gt;JavaScript&lt;br&gt;
const isAdminAndActive = user.role === 3 &amp;amp;&amp;amp; user.status === 'A';&lt;br&gt;
if (isAdminAndActive) { ... }&lt;br&gt;
Let your code speak for itself. Save comments for edge cases, business logic quirks, or weird API workarounds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Fail Fast (Return Early)&lt;/strong&gt;&lt;br&gt;
Deeply nested if/else statements are a cognitive nightmare. Your brain has to keep track of multiple conditional branches at once.&lt;/p&gt;

&lt;p&gt;Instead, use guard clauses to handle errors or empty states immediately and exit the function early.&lt;/p&gt;

&lt;p&gt;The Nested Nightmare:&lt;/p&gt;

&lt;p&gt;JavaScript&lt;br&gt;
function processPayment(user, payment) {&lt;br&gt;
  if (user) {&lt;br&gt;
    if (payment) {&lt;br&gt;
      if (user.isAccountActive) {&lt;br&gt;
        // Actual logic happens 4 levels deep&lt;br&gt;
      }&lt;br&gt;
    }&lt;br&gt;
  }&lt;br&gt;
}&lt;br&gt;
The Clean Alternative:&lt;/p&gt;

&lt;p&gt;JavaScript&lt;br&gt;
function processPayment(user, payment) {&lt;br&gt;
  if (!user || !payment) return;&lt;br&gt;
  if (!user.isAccountActive) return;&lt;/p&gt;

&lt;p&gt;// Actual logic sits cleanly at the top level&lt;br&gt;
}&lt;br&gt;
&lt;strong&gt;5. Leave the Campground Cleaner Than You Found It&lt;/strong&gt;&lt;br&gt;
This is the classic "Boy Scout Rule" of software engineering. You don’t need to rewrite an entire legacy module in one afternoon. Just commit to fixing one small thing whenever you touch a file.&lt;/p&gt;

&lt;p&gt;Fix a typo in a variable name.&lt;/p&gt;

&lt;p&gt;Delete an unused import.&lt;/p&gt;

&lt;p&gt;Break a 100-line function into two.&lt;/p&gt;

&lt;p&gt;Over time, these micro-improvements compound into a massive reduction in technical debt.&lt;/p&gt;

&lt;p&gt;What’s your take?&lt;/p&gt;

&lt;p&gt;Clean code is highly subjective, and everyone has their own pet peeves. What’s one clean code habit you swear by, or a coding red flag that instantly drives you crazy during a code review?&lt;/p&gt;

&lt;p&gt;Drop your thoughts in the comments below! 👇&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>javascript</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
    <item>
      <title>From Frontend to Backend: Why I Love the Full-Stack Puzzle</title>
      <dc:creator>Sarah Borgelt</dc:creator>
      <pubDate>Sun, 28 Jun 2026 23:24:45 +0000</pubDate>
      <link>https://dev.to/sarah_borgelt_cd2e3100391/from-frontend-to-backend-why-i-love-the-full-stack-puzzle-2pek</link>
      <guid>https://dev.to/sarah_borgelt_cd2e3100391/from-frontend-to-backend-why-i-love-the-full-stack-puzzle-2pek</guid>
      <description>&lt;p&gt;As a software engineer, there is something incredibly satisfying about building a feature from the ground up and watching it come together.&lt;/p&gt;

&lt;p&gt;For me, that means diving into the complete lifecycle of an application—from designing the underlying logic to crafting the user experience. My current go-to toolkit splits right down the middle to handle both sides of the coin:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Backend:&lt;/strong&gt; Building robust, scalable logic using Java.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Frontend:&lt;/strong&gt; Bringing interfaces to life with React, JavaScript, HTML, and CSS.&lt;/p&gt;

&lt;p&gt;I love the challenge of bridging these two worlds. It forces you to think about how data flows through a system, how a database architecture affects UI responsiveness, and how clean code on the backend translates to a seamless experience for the end user.&lt;/p&gt;

&lt;p&gt;I’m always looking to connect with other devs working across the stack, swap optimization tips, or talk about continuous learning in this ever-changing field.&lt;/p&gt;

&lt;p&gt;If you're interested in connecting with me, please feel free to reach out at:&lt;br&gt;
&lt;a href="https://github.com/SarahBorgelt?tab=repositories" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/sarahborgelt" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;br&gt;
&lt;a href="https://medium.com/@borgelt.sarah" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.facebook.com/sarah.borgelt.5/" rel="noopener noreferrer"&gt;FaceBook&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.instagram.com/borgelts97/" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;&lt;br&gt;
&lt;a href="https://about.me/sarahborgelt/" rel="noopener noreferrer"&gt;About Me&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.crunchbase.com/person/sarah-borgelt-f843" rel="noopener noreferrer"&gt;Crunchbase&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.f6s.com/member/sarah-borgelt#about" rel="noopener noreferrer"&gt;F6S&lt;/a&gt;&lt;br&gt;
&lt;a href="https://linktr.ee/sarahborgelt" rel="noopener noreferrer"&gt;LinkTree&lt;/a&gt;&lt;br&gt;
&lt;a href="https://lnk.bio/sarahborgelt" rel="noopener noreferrer"&gt;Link.Bio&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.pinterest.com/sarahn0297" rel="noopener noreferrer"&gt;Pinterest&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.flickr.com/photos/" rel="noopener noreferrer"&gt;Flickr&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.youtube.com/@sarahborgelt8600" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;&lt;/p&gt;

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