<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://austinxewell.github.io/my-dev-blog/feed.xml" rel="self" type="application/atom+xml" /><link href="https://austinxewell.github.io/my-dev-blog/" rel="alternate" type="text/html" /><updated>2026-03-13T20:10:04+00:00</updated><id>https://austinxewell.github.io/my-dev-blog/feed.xml</id><title type="html">AuEwellify Dev Blog</title><subtitle>Hi, I’m Austin, a Full Stack Web Developer. I build projects, share insights, and occasionally geek out over cool web tricks and experiments.</subtitle><entry><title type="html">Turning the Turbo Button On</title><link href="https://austinxewell.github.io/my-dev-blog/personal-blog/2026/03/13/turning-the-turbo-button-on.html" rel="alternate" type="text/html" title="Turning the Turbo Button On" /><published>2026-03-13T00:00:00+00:00</published><updated>2026-03-13T00:00:00+00:00</updated><id>https://austinxewell.github.io/my-dev-blog/personal-blog/2026/03/13/turning-the-turbo-button-on</id><content type="html" xml:base="https://austinxewell.github.io/my-dev-blog/personal-blog/2026/03/13/turning-the-turbo-button-on.html"><![CDATA[<p>The past few months have been… different.</p>

<p>Development hasn’t been my main focus for a while. My family had a bit of a scare that pulled a lot of my time and attention away from projects and personal work. When things like that happen, priorities shift quickly.</p>

<p>And honestly, they should.</p>

<p>But things are finally starting to settle down again.</p>

<p>My daughter is wrapping up some of the programs she’s been involved in, summer is right around the corner ☀️, and the schedule is starting to open back up.</p>

<p>Which means it’s time to hit the <strong>turbo button</strong>. 🚀</p>

<p>This post is also a bit of a personal reflection, but more than that, it’s a way of turning thoughts into action. Writing it down makes the plan real. It moves it from something that’s just been floating around in my head to something that actually exists outside of it.</p>

<hr />

<h2 id="turning-up-the-job-search-">Turning Up the Job Search 💼</h2>

<p>One of my biggest priorities right now is ramping up the job search.</p>

<p>I’ve been thinking about making a move for a while, but now I’m planning to really lean into it.</p>

<p>More applications.<br />
More conversations.<br />
More opportunities to level up.</p>

<p>The goal isn’t just to change roles, it’s to find the <strong>right environment</strong> where I can continue growing as an engineer and contributing at a higher level.</p>

<p>A little nervous? Sure.</p>

<p>But mostly excited.</p>

<hr />

<h2 id="expanding-my-planning-poker-app-">Expanding My Planning Poker App 🃏</h2>

<p>I’ve also been thinking about improvements to my <strong>Planning Poker</strong> application.</p>

<p>One idea I’m excited about is something I’m calling <strong>The Observer</strong> feature.</p>

<p>Right now, most planning poker tools assume everyone in the room is actively voting. But real teams don’t always work like that.</p>

<p>Sometimes people just need to <strong>observe the session</strong>:</p>

<ul>
  <li>Stakeholders</li>
  <li>Junior developers learning the process</li>
  <li>Team members who want context without influencing the estimate</li>
</ul>

<p>The Observer role would allow someone to join a session and follow along without submitting estimates.</p>

<p>It’s a small idea, but I think it could make the tool much more useful for real-world teams.</p>

<hr />

<h2 id="improving-my-dev-blog-workflow-️">Improving My Dev Blog Workflow ⚙️</h2>

<p>Another thing that’s been on my mind is improving how this dev blog is organized.</p>

<p>Right now I manually organize posts into <strong>monthly folders</strong>. It works fine, but it definitely feels like something that could be automated.</p>

<p>I’ve been thinking about building a small solution that automatically sorts posts into their proper month based on the publish date.</p>

<p>It’s not a huge problem to solve, but small workflow improvements like that tend to pay off over time.</p>

<hr />

<h2 id="back-into-the-rhythm-">Back Into the Rhythm 🔁</h2>

<p>The last few months were a reminder that life doesn’t always move in straight lines.</p>

<p>Sometimes development slows down.<br />
Sometimes priorities shift.<br />
Sometimes your focus just needs to be somewhere else.</p>

<p>But things are starting to open back up again.</p>

<p>More building.<br />
More experimenting.<br />
More writing.<br />
More shipping.</p>

<p>And now that the plan is written down here, it’s not just a thought anymore.</p>

<p>It’s something to follow through on.</p>

<p>Time to press the <strong>turbo button</strong>. 🚀</p>]]></content><author><name></name></author><category term="personal-blog" /><category term="growth" /><category term="job-search" /><category term="side-projects" /><category term="planning-poker" /><category term="automation" /><summary type="html"><![CDATA[The past few months have been… different.]]></summary></entry><entry><title type="html">The Unglamorous Work: Bug Fixes, Documentation, and Why It All Matters</title><link href="https://austinxewell.github.io/my-dev-blog/public/personal-blog/2026/03/12/the-unglamorous-work.html" rel="alternate" type="text/html" title="The Unglamorous Work: Bug Fixes, Documentation, and Why It All Matters" /><published>2026-03-12T00:00:00+00:00</published><updated>2026-03-12T00:00:00+00:00</updated><id>https://austinxewell.github.io/my-dev-blog/public/personal-blog/2026/03/12/the-unglamorous-work</id><content type="html" xml:base="https://austinxewell.github.io/my-dev-blog/public/personal-blog/2026/03/12/the-unglamorous-work.html"><![CDATA[<p>Not every sprint ends with a shiny new feature to show off. Sometimes you ship a week of work and the most accurate summary is: <em>“things broke less.”</em> That was me lately and honestly? I’m proud of it. 💪</p>

<p>This stretch has been a lot of heads-down, unglamorous work. Bug fixes and documentation aren’t the kinds of things that get applause in a demo, but I’m starting to believe they’re where a lot of real growth actually happens.</p>

<h2 id="the-bug-fix-grind">The Bug Fix Grind</h2>

<p>There’s a certain kind of developer humility that only comes from spending hours hunting down a bug that turns out to be a single off-by-one error, a missing null check, or a race condition you introduced two weeks ago and forgot about. 😅</p>

<p>I’ve been deep in that world lately. A steady queue of fixes, each one requiring me to slow down, read code carefully, and actually understand what’s happening rather than just what I want to happen.</p>

<p>A few things I’ve been reminded of through this process:</p>

<p><strong>Debugging is a skill, not a punishment.</strong> It forces you to engage with code at a level that feature work sometimes doesn’t. You can’t skim when you’re hunting a bug.</p>

<p><strong>Reading code is just as important as writing it.</strong> Fixes often live in code you didn’t write. Getting comfortable navigating unfamiliar territory is a core part of growing as a dev.</p>

<p><strong>Small wins compound.</strong> One bug fix feels minor. Ten bug fixes means the product is meaningfully more stable. That matters to real users.</p>

<p>I’ll be honest, there were moments it felt monotonous. But I kept reminding myself: every fix is a problem I now understand that I didn’t before. That’s not nothing.</p>

<h2 id="diving-into-strapi">Diving Into Strapi</h2>

<p>On top of the bug work, I took on something I hadn’t touched before: putting together documentation for our <strong>Strapi CRM implementation</strong>.</p>

<p>If you’re not familiar, Strapi is a headless CMS that gives you a lot of flexibility for managing content and data structures. Getting familiar with how it’s set up and how our team is going to use it was genuinely interesting and a little humbling. 🧩</p>

<p>There’s always a learning curve when you step into a system you haven’t built yourself. A lot of “okay, <em>why</em> is it configured this way?” moments. But working through that confusion to produce clear documentation forced me to actually understand it rather than just get a surface-level feel for it.</p>

<p>That distinction matters. Writing documentation you’d want to read means you can’t fake understanding.</p>

<h2 id="why-documentation-is-underrated">Why Documentation Is Underrated</h2>

<p>Documentation has a reputation problem. It’s often treated as the thing you do when the <em>real</em> work is done, an afterthought, a checkbox.</p>

<p>Good documentation is an act of respect. Respect for the next developer who has to work in the same system. Respect for your team’s time. And honestly, respect for your future self when you come back to something six months later and have no idea what you were thinking. 😂</p>

<p>Writing the Strapi docs also forced me to think about clarity in a way that code doesn’t always demand. You can write working code that’s hard to follow. You can’t write useful documentation that’s hard to follow, it just becomes useless.</p>

<h2 id="reflecting-on-the-sprint">Reflecting on the Sprint</h2>

<p>If I had to summarize what I took away from this period of work:</p>

<p><strong>The unglamorous work is where consistency is built.</strong> Features get the spotlight, but stability and knowledge-sharing are what make a team actually function well over time.</p>

<p><strong>New tools are only intimidating until you spend time with them.</strong> Strapi went from “I’ve heard of that” to something I can speak to with confidence. That shift came from doing the work, not just reading about it.</p>

<p><strong>Documenting your own understanding is one of the best learning tools there is.</strong> If you can’t explain it clearly, you probably don’t fully get it yet. Writing forces that honesty.</p>

<hr />

<p>Not every entry in this blog is going to be about a breakthrough or a new concept mastered. Sometimes it’s going to be about the weeks where the growth happened quietly, in the form of bugs squashed and knowledge preserved. This was one of those weeks and I’m glad I showed up for it. 🛠️</p>]]></content><author><name></name></author><category term="public" /><category term="personal-blog" /><category term="growth" /><category term="strapi" /><category term="documentation" /><category term="backend" /><summary type="html"><![CDATA[Not every sprint ends with a shiny new feature to show off. Sometimes you ship a week of work and the most accurate summary is: “things broke less.” That was me lately and honestly? I’m proud of it. 💪]]></summary></entry><entry><title type="html">Fresh Perspectives Can Change Everything in Development</title><link href="https://austinxewell.github.io/my-dev-blog/public/personal-blog/2026/03/05/fresh-perspectives-can-change-everything.html" rel="alternate" type="text/html" title="Fresh Perspectives Can Change Everything in Development" /><published>2026-03-05T00:00:00+00:00</published><updated>2026-03-05T00:00:00+00:00</updated><id>https://austinxewell.github.io/my-dev-blog/public/personal-blog/2026/03/05/fresh-perspectives-can-change-everything</id><content type="html" xml:base="https://austinxewell.github.io/my-dev-blog/public/personal-blog/2026/03/05/fresh-perspectives-can-change-everything.html"><![CDATA[<p>Recently our front-end team went through a bit of a shake-up in how projects are assigned. As part of that shift, I’ve transitioned into being the sole front-end developer responsible for three different projects.</p>

<p>At first glance that might sound intimidating, but honestly, I’m excited about it.</p>

<p>Stepping into multiple projects at once forces you to quickly understand different architectures, patterns, and decisions that were made before you arrived. It’s a great way to sharpen your awareness as a developer. Instead of living inside one codebase for months or years, you start seeing how different teams solve similar problems.</p>

<h2 id="fresh-eyes-are-powerful">Fresh Eyes Are Powerful</h2>

<p>One thing I’ve noticed over time is how valuable a fresh perspective can be.</p>

<p>When developers stay on the same project for a long time, patterns and decisions become “the way things are done.” Sometimes those decisions were made for good reasons. Other times they just stuck around because no one questioned them.</p>

<p>When someone new enters the project, they naturally ask questions like:</p>

<ul>
  <li>Why is this handled this way?</li>
  <li>Could this logic be simplified?</li>
  <li>Is there a better pattern for this now?</li>
</ul>

<p>Those questions aren’t criticism — they’re opportunities. 💡</p>

<p>Sometimes a fresh perspective leads to better workflow standards, cleaner abstractions, or even small improvements that remove friction the team didn’t realize had built up.</p>

<h2 id="learning-through-exposure">Learning Through Exposure</h2>

<p>Another thing I enjoy about this kind of transition is the learning that comes from exposure.</p>

<p>Each project tends to have its own quirks:</p>
<ul>
  <li>different architectural decisions</li>
  <li>different approaches to state management</li>
  <li>different coding styles</li>
  <li>different technical trade-offs</li>
</ul>

<p>Seeing those variations helps you grow faster as a developer because you start recognizing patterns across systems instead of just within one codebase.</p>

<p>It also makes you more adaptable, which is one of the most valuable skills an engineer can have.</p>

<h2 id="a-good-kind-of-challenge">A Good Kind of Challenge</h2>

<p>Taking ownership of multiple front-end projects definitely comes with responsibility. There’s more context to manage and more systems to understand.</p>

<p>But challenges like this are where growth happens. 🚀</p>

<p>If nothing else, it’s a great reminder that development isn’t just about writing code. It’s about collaboration, perspective, and constantly learning from the systems and people around you.</p>

<p>And sometimes all it takes to unlock better ideas is a fresh set of eyes.</p>]]></content><author><name></name></author><category term="public" /><category term="personal-blog" /><category term="frontend" /><category term="collaboration" /><category term="growth" /><summary type="html"><![CDATA[Recently our front-end team went through a bit of a shake-up in how projects are assigned. As part of that shift, I’ve transitioned into being the sole front-end developer responsible for three different projects.]]></summary></entry><entry><title type="html">Why Maintainability Matters More Than Shipping Features</title><link href="https://austinxewell.github.io/my-dev-blog/public/personal-blog/2026/02/26/maintainability-matters-more-than-shipping-features.html" rel="alternate" type="text/html" title="Why Maintainability Matters More Than Shipping Features" /><published>2026-02-26T00:00:00+00:00</published><updated>2026-02-26T00:00:00+00:00</updated><id>https://austinxewell.github.io/my-dev-blog/public/personal-blog/2026/02/26/maintainability-matters-more-than-shipping-features</id><content type="html" xml:base="https://austinxewell.github.io/my-dev-blog/public/personal-blog/2026/02/26/maintainability-matters-more-than-shipping-features.html"><![CDATA[<p>I haven’t been shipping a ton of new features lately.</p>

<p>But I have been thinking a lot about maintainability and honestly, that might be more important.</p>

<p>Shipping is visible. It feels productive. You close a ticket, merge a PR, deploy, move on. ✅</p>

<p>Maintainability is quieter. It doesn’t always show up in release notes. But it absolutely shows up six months later when someone (usually you) has to modify what you built.</p>

<h2 id="code-that-works-vs-code-that-lasts">Code That Works vs Code That Lasts</h2>

<p>There’s a difference between code that works and code that lasts.</p>

<p>Working code:</p>

<ul>
  <li>Solves the problem</li>
  <li>Passes the tests</li>
  <li>Ships to production</li>
</ul>

<p>Maintainable code:</p>

<ul>
  <li>Is readable without deep context</li>
  <li>Has clear separation of concerns</li>
  <li>Makes side effects obvious</li>
  <li>Is easy to extend or refactor</li>
</ul>

<p>The second one requires restraint.</p>

<p>It requires thinking past the dopamine hit of “it works” and asking, “What happens when this changes?”</p>

<h2 id="designing-for-future-you">Designing for Future You</h2>

<p>Future you is less patient.</p>

<p>Future you doesn’t remember the assumptions you made.
Future you doesn’t remember why that helper exists.
Future you just wants to fix a bug quickly and move on.</p>

<p>If your code requires a mental archaeology expedition 🏺, you’ve already lost.</p>

<p>Maintainability is about reducing cognitive load:</p>

<ul>
  <li>Clear naming</li>
  <li>Predictable structure</li>
  <li>Logical grouping</li>
  <li>Minimal surprise</li>
</ul>

<p>Nothing fancy. Just intentional.</p>

<h2 id="the-cost-of-abstraction">The Cost of Abstraction</h2>

<p>Abstraction is powerful… until it isn’t.</p>

<p>It’s easy to chase elegance and end up building something that technically reduces duplication but increases complexity. If someone has to trace through five layers of indirection to understand a simple transformation, that abstraction isn’t helping.</p>

<p>Sometimes duplication is cheaper than cleverness.</p>

<p>There’s a balance between DRY and clarity. And clarity usually wins.</p>

<h2 id="this-feels-like-senior-level-thinking">This Feels Like Senior-Level Thinking</h2>

<p>The more I think about it, the more I believe maintainability is what separates solid mid-level work from senior-level thinking.</p>

<p>Anyone can get a feature across the finish line.</p>

<p>But can you:</p>

<ul>
  <li>Make it easy to modify?</li>
  <li>Make it easy to debug?</li>
  <li>Make it easy to delete?</li>
</ul>

<p>Great engineers don’t just ship code.
They lower the long-term cost of change. 📉</p>

<p>That’s the standard I’m trying to hold myself to.</p>

<p>Even if I’m not shipping something flashy right now, sharpening that mindset still feels like forward progress.</p>]]></content><author><name></name></author><category term="public" /><category term="personal-blog" /><category term="maintainability" /><category term="architecture" /><category term="scalability" /><category term="code-quality" /><summary type="html"><![CDATA[I haven’t been shipping a ton of new features lately.]]></summary></entry><entry><title type="html">I Might Start a Developer YouTube Channel</title><link href="https://austinxewell.github.io/my-dev-blog/personal-blog/2026/02/21/i-might-start-a-developer-youtube-channel.html" rel="alternate" type="text/html" title="I Might Start a Developer YouTube Channel" /><published>2026-02-21T00:00:00+00:00</published><updated>2026-02-21T00:00:00+00:00</updated><id>https://austinxewell.github.io/my-dev-blog/personal-blog/2026/02/21/i-might-start-a-developer-youtube-channel</id><content type="html" xml:base="https://austinxewell.github.io/my-dev-blog/personal-blog/2026/02/21/i-might-start-a-developer-youtube-channel.html"><![CDATA[<p>I’ve been going back and forth on something lately.</p>

<p>Part of me really wants to start posting development videos on YouTube. The other part immediately asks, “Who do you think you are?” 😅</p>

<p>But the more I think about it, the more it makes sense.</p>

<h2 id="why-its-interesting-to-me">Why It’s Interesting to Me</h2>

<p>I’d probably start simple with basic LeetCode problems. Walk through the solution. Explain how I approach it. Talk through what signals I’m looking for and why I choose one path over another.</p>

<p>Nothing flashy. Just real problem-solving.</p>

<p>And honestly? Teaching forces clarity.</p>

<p>If I can explain why something is O(n) instead of O(n²), or why I chose a hashmap over nested loops, then I actually understand it. If I struggle to explain it, that’s feedback.</p>

<p>That kind of pressure is growth.</p>

<h2 id="more-than-exposure">More Than Exposure</h2>

<p>Sure, it could help elevate my status in the eyes of employers. A public record of how I think is powerful.</p>

<p>But what excites me more is this:</p>

<ul>
  <li>Becoming better at explaining technical concepts</li>
  <li>Building confidence speaking through complex problems</li>
  <li>Supporting developers who are earlier in their journey</li>
</ul>

<p>If I want to step into senior-level responsibility, communication and mentorship matter. This feels aligned with that.</p>

<h2 id="the-only-real-question">The Only Real Question</h2>

<p>Am I willing to grow in public?</p>

<p>Because that’s what this really is.</p>

<p>And I think the answer might be yes. 🚀</p>]]></content><author><name></name></author><category term="personal-blog" /><category term="career" /><category term="growth" /><category term="leetcode" /><summary type="html"><![CDATA[I’ve been going back and forth on something lately.]]></summary></entry><entry><title type="html">Becoming a Senior Developer Is Bigger Than Writing Better Code</title><link href="https://austinxewell.github.io/my-dev-blog/personal-blog/public/2026/02/20/becoming-a-ssenior-developer-is-bigger-than-writting-better-code.html" rel="alternate" type="text/html" title="Becoming a Senior Developer Is Bigger Than Writing Better Code" /><published>2026-02-20T00:00:00+00:00</published><updated>2026-02-20T00:00:00+00:00</updated><id>https://austinxewell.github.io/my-dev-blog/personal-blog/public/2026/02/20/becoming-a-ssenior-developer-is-bigger-than-writting-better-code</id><content type="html" xml:base="https://austinxewell.github.io/my-dev-blog/personal-blog/public/2026/02/20/becoming-a-ssenior-developer-is-bigger-than-writting-better-code.html"><![CDATA[<p>Lately I’ve been thinking a lot about what it actually means to make the jump from high-end mid-level developer to senior developer.</p>

<p>For a long time, I assumed the gap was mostly technical.<br />
Learn more patterns.<br />
Design better systems.<br />
Write cleaner code.</p>

<p>Grind long enough and you level up, right?</p>

<p>But the deeper I get into this craft, the more I realize the difference isn’t just skill.</p>

<p>It’s awareness.<br />
It’s responsibility.<br />
It’s influence.</p>

<p>And honestly? That’s heavier than just writing good code.</p>

<h2 id="its-not-just-about-what-you-build-">It’s Not Just About What You Build 💻</h2>

<p>Anyone who spends enough time writing code will improve technically. That part is inevitable. You debug enough production issues, refactor enough messy modules, and architect enough features and you just get better.</p>

<p>But seniority isn’t just about <em>can you build it?</em></p>

<p>It’s about:</p>

<ul>
  <li>Do you understand <strong>why</strong> you built it that way?</li>
  <li>Can you articulate the tradeoffs clearly?</li>
  <li>Do you understand how your abstraction impacts performance?</li>
  <li>Are you thinking about maintainability six months from now?</li>
</ul>

<p>Senior engineers don’t just ship features.<br />
They think in systems.</p>

<p>They think about scalability.<br />
They think about readability.<br />
They think about how the machine executes what they wrote.</p>

<p>That depth matters.</p>

<h2 id="communication-is-the-real-multiplier-">Communication Is the Real Multiplier 🧠</h2>

<p>The more I observe senior engineers, the more I notice something subtle.</p>

<p>They’re translators.</p>

<p>They can:</p>

<ul>
  <li>Explain complex concepts in plain language</li>
  <li>Walk juniors through debugging without ego</li>
  <li>Communicate architecture decisions to non-technical stakeholders</li>
  <li>Defend tradeoffs without being defensive</li>
</ul>

<p>The ability to explain code might be just as important as writing it.</p>

<p>You can be brilliant technically, but if no one understands your reasoning, your impact is limited.</p>

<p>Confidence matters.<br />
But so does humility.</p>

<p>The best seniors I’ve seen are steady. Calm. Clear. They correct without belittling. They teach without flexing.</p>

<p>That balance is hard. Harder than solving most algorithm problems.</p>

<h2 id="optimizing-the-system-not-just-yourself-️">Optimizing the System, Not Just Yourself ⚙️</h2>

<p>Mid-level engineers often focus on personal output.</p>

<p>Senior engineers optimize the environment around them.</p>

<p>That might look like:</p>

<ul>
  <li>Improving code review standards</li>
  <li>Introducing better testing discipline</li>
  <li>Reducing deployment friction</li>
  <li>Writing documentation that saves hours of confusion later</li>
</ul>

<p>It’s leverage.</p>

<p>Instead of being the fastest person in the room, you make the whole room faster.</p>

<p>That’s a different level of contribution.</p>

<h2 id="mentorship-is-the-responsibility-">Mentorship Is the Responsibility 👥</h2>

<p>This is the part that’s been sitting with me the most.</p>

<p>If you carry the title “senior,” you carry influence.</p>

<p>Anyone can grind long enough to gain technical depth.<br />
But are you helping someone else grow?</p>

<p>Are you:</p>

<ul>
  <li>Taking time to explain, not just correct?</li>
  <li>Encouraging curiosity instead of fear?</li>
  <li>Creating psychological safety in technical conversations?</li>
  <li>Modeling clean thinking under pressure?</li>
</ul>

<p>A senior developer doesn’t just produce good systems.</p>

<p>They help produce good engineers.</p>

<p>And that’s a bigger legacy than any single codebase.</p>

<h2 id="identity-brand-and-presence-">Identity, Brand, and Presence 🌱</h2>

<p>There’s also something less tangible: identity.</p>

<p>Not social media branding. Not noise.</p>

<p>But clarity.</p>

<ul>
  <li>What do you stand for as an engineer?</li>
  <li>Are you known for clean architecture?</li>
  <li>For thoughtful reviews?</li>
  <li>For calm debugging?</li>
  <li>For raising the standard?</li>
</ul>

<p>Do people trust your judgment?</p>

<p>Do they feel safe asking you questions?</p>

<p>Senior engineers influence the room. That influence comes from consistency, competence, and character.</p>

<h2 id="where-im-at-right-now">Where I’m At Right Now</h2>

<p>I don’t think the gap between mid-level and senior is just technical anymore.</p>

<p>It’s depth.<br />
It’s communication.<br />
It’s process awareness.<br />
It’s mentorship.<br />
It’s humility under pressure.</p>

<p>Anyone can eventually gain the technical ability to be labeled senior.</p>

<p>But how much can you contribute to the bigger picture?</p>

<p>That’s the real question.</p>

<p>I don’t just want the title.</p>

<p>I want to be the kind of engineer who elevates the room. 💡</p>]]></content><author><name></name></author><category term="personal-blog" /><category term="public" /><category term="growth" /><category term="career" /><summary type="html"><![CDATA[Lately I’ve been thinking a lot about what it actually means to make the jump from high-end mid-level developer to senior developer.]]></summary></entry><entry><title type="html">Imposter Syndrome, Interviews, and the Weight of the Job Search</title><link href="https://austinxewell.github.io/my-dev-blog/personal-blog/2026/02/19/imposter-syndrome-interviews-job-searches.html" rel="alternate" type="text/html" title="Imposter Syndrome, Interviews, and the Weight of the Job Search" /><published>2026-02-19T00:00:00+00:00</published><updated>2026-02-19T00:00:00+00:00</updated><id>https://austinxewell.github.io/my-dev-blog/personal-blog/2026/02/19/imposter-syndrome-interviews-job-searches</id><content type="html" xml:base="https://austinxewell.github.io/my-dev-blog/personal-blog/2026/02/19/imposter-syndrome-interviews-job-searches.html"><![CDATA[<p>I don’t think imposter syndrome ever fully disappears as a developer.</p>

<p>It just changes shape.</p>

<p>Right now, as I step back into the job search, I can feel it creeping in again. The timing is predictable. It always shows up around interviews.</p>

<h2 id="the-quiet-voice-before-interviews">The Quiet Voice Before Interviews</h2>

<p>You can ship real features.
You can architect systems.
You can debug production issues without panicking.</p>

<p>And then an interview gets scheduled… and suddenly your brain goes:</p>

<blockquote>
  <p>“What if you actually don’t know anything?”</p>
</blockquote>

<p>It’s wild.</p>

<p>You’ll be productive for months building real applications, solving real problems and then a whiteboard question about reversing a linked list makes you question your entire existence. 😅</p>

<p>The gap between <em>practical engineering</em> and <em>interview performance</em> is where imposter syndrome thrives.</p>

<h2 id="the-pressure-of-performing-on-demand">The Pressure of Performing on Demand</h2>

<p>Job searching as a developer isn’t just about being good at your job.</p>

<p>It’s about:</p>
<ul>
  <li>Explaining what you know clearly</li>
  <li>Solving problems under observation</li>
  <li>Recalling concepts on command</li>
  <li>Communicating tradeoffs in real time</li>
</ul>

<p>That’s a different skill set.</p>

<p>You can be a strong engineer and still feel rusty in an interview setting. That doesn’t mean you’re unqualified. It means performance anxiety is real.</p>

<p>There’s also the comparison trap. You read job descriptions that list every framework ever created. You scroll LinkedIn and see someone announcing a new senior role. It’s easy to think everyone else is ahead.</p>

<p>They’re not. They’re just visible.</p>

<h2 id="the-developer-specific-flavor-of-imposter-syndrome">The Developer-Specific Flavor of Imposter Syndrome</h2>

<p>In tech, the learning never stops. There’s always:</p>
<ul>
  <li>A new framework</li>
  <li>A better pattern</li>
  <li>A more optimized approach</li>
  <li>A deeper algorithmic concept</li>
</ul>

<p>So the bar feels infinite.</p>

<p>You might think:</p>
<ul>
  <li>“I should know more about system design.”</li>
  <li>“I should be faster at algorithms.”</li>
  <li>“I should have built something bigger by now.”</li>
</ul>

<p>But “should” is a dangerous word.</p>

<p>The reality? If you’ve been consistently building, shipping, and learning, you’re not an imposter. You’re growing.</p>

<h2 id="what-im-reminding-myself">What I’m Reminding Myself</h2>

<p>A few things I’m actively keeping in perspective:</p>

<ol>
  <li>Interviews are snapshots, not full biographies.</li>
  <li>Nerves don’t cancel out competence.</li>
  <li>Preparation builds confidence, not perfection.</li>
  <li>Everyone feels this at some point, even senior engineers.</li>
</ol>

<p>Imposter syndrome isn’t proof you’re a fraud. It’s often proof that you care.</p>

<h2 id="the-honest-part">The Honest Part</h2>

<p>I’m nervous.</p>

<p>There’s pressure in job searching. Financial pressure. Career pressure. Identity pressure. When you’re a developer, your skill set can feel tied directly to your self-worth.</p>

<p>That’s dangerous territory if you’re not careful.</p>

<p>But I’m also excited.</p>

<p>Excited for growth.<br />
Excited for new challenges.<br />
Excited for the version of myself that exists on the other side of this process.</p>

<p>If imposter syndrome shows up, fine. It can ride in the passenger seat. It just doesn’t get to drive. 🚗</p>

<hr />

<p>If you’re going through interviews right now and feeling the same thing: you’re not broken, and you’re definitely not alone.</p>

<p>Keep building. Keep applying. Keep showing up.</p>

<p>You belong here.</p>]]></content><author><name></name></author><category term="personal-blog" /><category term="career" /><category term="interviews" /><category term="growth" /><summary type="html"><![CDATA[I don’t think imposter syndrome ever fully disappears as a developer.]]></summary></entry><entry><title type="html">Understanding Big O Notation: The Secret Language of Algorithms</title><link href="https://austinxewell.github.io/my-dev-blog/personal-blog/public/2026/02/18/understanding-big-o-notation.html" rel="alternate" type="text/html" title="Understanding Big O Notation: The Secret Language of Algorithms" /><published>2026-02-18T15:00:00+00:00</published><updated>2026-02-18T15:00:00+00:00</updated><id>https://austinxewell.github.io/my-dev-blog/personal-blog/public/2026/02/18/understanding-big-o-notation</id><content type="html" xml:base="https://austinxewell.github.io/my-dev-blog/personal-blog/public/2026/02/18/understanding-big-o-notation.html"><![CDATA[<p>Lately, I’ve been diving deep into <strong>Big O notation</strong>, and I realized it’s one of those topics that sounds intimidating at first, but once you break it down, it’s just a way to talk about how efficient your code is. 🧠💡</p>

<p>Whether you’re doing front-end work or full-stack projects, understanding Big O helps you write code that scales and avoids nasty surprises down the line.</p>

<h2 id="what-big-o-actually-means">What Big O Actually Means</h2>

<p>Big O notation is a way to describe how the runtime (or space) of an algorithm grows as the size of the input increases.</p>

<p>Instead of worrying about exact milliseconds, Big O focuses on <strong>the trend</strong>, how the algorithm behaves when the dataset gets bigger.</p>

<h3 id="common-big-o-complexities">Common Big O Complexities</h3>

<ul>
  <li><strong>O(1) — Constant Time</strong><br />
No matter how big the input, the operation takes the same time.
    <div class="language-js highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">firstItem</span> <span class="o">=</span> <span class="nx">arr</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
</code></pre></div>    </div>
    <p>Accessing the first element of an array? Boom. Constant.</p>
  </li>
  <li><strong>O(n) — Linear Time</strong><br />
The runtime grows proportionally with the input.
    <div class="language-js highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nx">arr</span><span class="p">.</span><span class="nx">forEach</span><span class="p">(</span><span class="nx">item</span> <span class="o">=&gt;</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">item</span><span class="p">));</span>
</code></pre></div>    </div>
    <p>Go through 10 items → 10 operations. 1,000 items → 1,000 operations.</p>
  </li>
  <li><strong>O(n²) — Quadratic Time</strong><br />
Nested loops usually do this.
    <div class="language-js highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">for</span> <span class="p">(</span><span class="kd">let</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">arr</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
  <span class="k">for</span> <span class="p">(</span><span class="kd">let</span> <span class="nx">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">j</span> <span class="o">&lt;</span> <span class="nx">arr</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
    <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">arr</span><span class="p">[</span><span class="nx">i</span><span class="p">],</span> <span class="nx">arr</span><span class="p">[</span><span class="nx">j</span><span class="p">]);</span>
  <span class="p">}</span>
<span class="p">}</span>
</code></pre></div>    </div>
    <p>Input doubles → operations quadruple. Scales badly.</p>
  </li>
  <li><strong>O(log n) — Logarithmic Time</strong><br />
Algorithms that cut the input in half each step (like <strong>binary search</strong>) are logarithmic.
    <div class="language-js highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">function</span> <span class="nx">binarySearch</span><span class="p">(</span><span class="nx">arr</span><span class="p">,</span> <span class="nx">target</span><span class="p">)</span> <span class="p">{</span>
  <span class="kd">let</span> <span class="nx">left</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">right</span> <span class="o">=</span> <span class="nx">arr</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span>
  <span class="k">while</span> <span class="p">(</span><span class="nx">left</span> <span class="o">&lt;=</span> <span class="nx">right</span><span class="p">)</span> <span class="p">{</span>
    <span class="kd">const</span> <span class="nx">mid</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">((</span><span class="nx">left</span> <span class="o">+</span> <span class="nx">right</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span><span class="p">);</span>
    <span class="k">if</span> <span class="p">(</span><span class="nx">arr</span><span class="p">[</span><span class="nx">mid</span><span class="p">]</span> <span class="o">===</span> <span class="nx">target</span><span class="p">)</span> <span class="k">return</span> <span class="nx">mid</span><span class="p">;</span>
    <span class="k">if</span> <span class="p">(</span><span class="nx">arr</span><span class="p">[</span><span class="nx">mid</span><span class="p">]</span> <span class="o">&lt;</span> <span class="nx">target</span><span class="p">)</span> <span class="nx">left</span> <span class="o">=</span> <span class="nx">mid</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span>
    <span class="k">else</span> <span class="nx">right</span> <span class="o">=</span> <span class="nx">mid</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span>
  <span class="p">}</span>
  <span class="k">return</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div>    </div>
    <p>Huge datasets? Still fast.</p>
  </li>
  <li><strong>O(n log n) — Linearithmic Time</strong><br />
Common in efficient sorting algorithms like merge sort and quicksort. It’s slower than linear but much better than quadratic for large datasets.</li>
</ul>

<h2 id="why-you-should-care">Why You Should Care</h2>

<p>Big O helps you:</p>

<ul>
  <li>Avoid bottlenecks before they appear</li>
  <li>Compare algorithms meaningfully</li>
  <li>Make informed trade-offs between time and space</li>
  <li>Impress interviewers (because yes, it comes up) 😅</li>
</ul>

<p>Even for everyday front-end tasks, understanding complexity can help you write smarter loops, filters, and data transformations.</p>

<h2 id="my-takeaways">My Takeaways</h2>

<ul>
  <li>Don’t memorize everything. Focus on understanding patterns.</li>
  <li>Think in terms of growth, not exact numbers.</li>
  <li>Even small optimizations matter when data scales.</li>
</ul>

<p>Big O isn’t scary, it’s a tool. Treat it like a lens that shows your code’s behavior under pressure. Once you see it that way, it’s actually kind of fun.</p>

<hr />

<p>Next steps for me: build a cheat sheet, practice analyzing small snippets of my own projects, and finally stop pretending that the traveling salesman problem isn’t terrifying. 😅</p>]]></content><author><name></name></author><category term="personal-blog" /><category term="public" /><category term="big-o" /><category term="algorithms" /><category term="javascript" /><summary type="html"><![CDATA[Lately, I’ve been diving deep into Big O notation, and I realized it’s one of those topics that sounds intimidating at first, but once you break it down, it’s just a way to talk about how efficient your code is. 🧠💡]]></summary></entry><entry><title type="html">Starting the Job Search: Excited, Nervous, and Ready</title><link href="https://austinxewell.github.io/my-dev-blog/personal-blog/2026/02/17/starting-the-job-search.html" rel="alternate" type="text/html" title="Starting the Job Search: Excited, Nervous, and Ready" /><published>2026-02-17T00:00:00+00:00</published><updated>2026-02-17T00:00:00+00:00</updated><id>https://austinxewell.github.io/my-dev-blog/personal-blog/2026/02/17/starting-the-job-search</id><content type="html" xml:base="https://austinxewell.github.io/my-dev-blog/personal-blog/2026/02/17/starting-the-job-search.html"><![CDATA[<p>Today marks the start of a new chapter: I’m officially kicking off a job search for a new development role. Excited? Absolutely. Nervous? Also absolutely. It’s a weird combination of butterflies and adrenaline. 🦋⚡</p>

<h2 id="why-now">Why Now</h2>

<p>I’ve spent a lot of time honing my skills in frontend development, UX improvements, and full-stack problem solving. My current setup has been great for growth, but it’s time to find a role that challenges me further and gives me space to level up even more.</p>

<h2 id="the-nerves">The Nerves</h2>

<p>There’s a lot to consider: technical interviews, resume tweaks, cover letters that don’t feel like boilerplate. Even after years of coding, putting yourself out there for a role is stressful. It’s a reminder that being a developer isn’t just about writing code, it’s about communicating your skills and experience effectively.</p>

<h2 id="excitement-ahead">Excitement Ahead</h2>

<p>On the flip side, this is thrilling. The opportunity to explore new teams, technologies, and projects is motivating. It’s also a chance to reflect on what I’ve learned so far and articulate the value I can bring.</p>

<p>Plus, I get to brush up on my interview skills, which is always a good exercise. (Also, slightly terrifying. 😅)</p>

<h2 id="first-steps">First Steps</h2>

<ul>
  <li>Update the resume to reflect recent projects and achievements</li>
  <li>Identify companies and roles that align with my strengths and goals</li>
  <li>Start preparing for technical interviews and coding challenges</li>
  <li>Keep track of applications and follow-ups</li>
</ul>

<p>It’s a lot, but that’s the point. This is the start of a journey, not just a single step.</p>

<p>Starting today, the search is on. Nerves aside, I’m excited to see where this path leads. Here’s to growth, challenges, and new opportunities. 🚀</p>]]></content><author><name></name></author><category term="personal-blog" /><category term="career" /><category term="growth" /><summary type="html"><![CDATA[Today marks the start of a new chapter: I’m officially kicking off a job search for a new development role. Excited? Absolutely. Nervous? Also absolutely. It’s a weird combination of butterflies and adrenaline. 🦋⚡]]></summary></entry><entry><title type="html">Back in the Admin Portal: Auth, Environments, and Complex Project Flows</title><link href="https://austinxewell.github.io/my-dev-blog/personal-blog/2026/02/16/back-in-the-admin-portal.html" rel="alternate" type="text/html" title="Back in the Admin Portal: Auth, Environments, and Complex Project Flows" /><published>2026-02-16T00:00:00+00:00</published><updated>2026-02-16T00:00:00+00:00</updated><id>https://austinxewell.github.io/my-dev-blog/personal-blog/2026/02/16/back-in-the-admin-portal</id><content type="html" xml:base="https://austinxewell.github.io/my-dev-blog/personal-blog/2026/02/16/back-in-the-admin-portal.html"><![CDATA[<p>Today I jumped back into developing the admin portal for my online portfolio. This is one of those projects that’s been quietly sitting there, <em>mostly</em> complete, waiting for me to come back and finish the harder parts.</p>

<p>Spoiler: it’s going well.</p>

<h2 id="environment-agnostic-backend-setup">Environment-Agnostic Backend Setup</h2>

<p>One of the first things I tackled was cleaning up how the backend handles environments. I updated the BE so it works in both production and local development <strong>without changing the code</strong>.</p>

<p>If <code class="language-plaintext highlighter-rouge">API_BASE_URL</code> is not provided, the logic now defaults to localhost—backend included. That means I can develop and test features locally without worrying about accidentally impacting production behavior.</p>

<p>This kind of setup removes friction. Less config juggling. Fewer “why is this broken locally?” moments. Just run it and go.</p>

<h2 id="improving-the-auth-flow-with-ssr-in-mind">Improving the Auth Flow with SSR in Mind</h2>

<p>On the frontend, I reworked the login flow to behave like a real application instead of a client-only shortcut.</p>

<p>The auth token is now stored in cookies so it can be validated at the <strong>server level</strong> during SSR. That opened the door to properly securing the admin portal instead of just hoping the UI behaves.</p>

<p>I added frontend middleware (<code class="language-plaintext highlighter-rouge">admin-auth.ts</code>) that does the following:</p>

<ul>
  <li>Calls a <code class="language-plaintext highlighter-rouge">validateToken</code> method</li>
  <li>Passes authorization headers</li>
  <li>Returns the logged-in user if the token is valid</li>
  <li>Blocks access entirely if the user is not authenticated</li>
  <li>Routes the user back to the login page</li>
</ul>

<p>This ensures users without valid credentials never even reach the admin UI. No flashing content. No half-loaded pages. Just a clean denial.</p>

<p>Exactly how it should be.</p>

<h2 id="building-the-project-creation-flow-the-hard-part">Building the Project Creation Flow (The Hard Part)</h2>

<p>I also started updating the flow for creating a project, which is where things get interesting and complicated.</p>

<p>This isn’t a single request. It’s a sequence of linked operations across multiple tables:</p>

<ol>
  <li>Create the base project record</li>
  <li>Associate tags from the tags table</li>
  <li>Select <strong>three primary tags</strong></li>
  <li>Upload images into the database</li>
  <li>Link those images back to the project</li>
</ol>

<p>All of this logic already exists in the backend. I can run every step via <strong>SQL</strong> prompts or <strong>Postman</strong> without issues.</p>

<p>The remaining work is on the frontend: building the payloads correctly and wiring the UI to the backend endpoints.</p>

<p>The good news?</p>

<p>The UI/UX for this entire flow is essentially complete. A few minor tweaks remain, but structurally it’s done. What’s left is implementation, not design, which is the part where you get that warm fuzzy feeling seeing the fruits of your labor post a finished product.</p>

<h2 id="a-quick-reality-check-on-context-switching">A Quick Reality Check on Context Switching</h2>

<p>Coming back to this project was a reminder of something every developer learns the hard way:</p>

<p>You can be super organized when you start a project and still get lost when you return later.</p>

<p>It took a bit to reorient myself. Not because the code was bad, but because <em>context fades</em>. That moment of “okay… where exactly was I?” is unavoidable.</p>

<p>It was also a solid reminder of why clean code, documentation, and repo organization matter, even when you’re working solo. Future-you is still another developer, and future-you does not remember everything.</p>

<h2 id="momentum-feels-good">Momentum Feels Good</h2>

<p>Overall, I’m genuinely excited about how this is shaping up. The foundations are solid, the architecture is doing its job, and I’m past the vague phase and back into concrete progress.</p>

<p>Now it’s just execution; and that’s a good place to be. 🚀</p>]]></content><author><name></name></author><category term="personal-blog" /><category term="frontend" /><category term="backend" /><category term="authentication" /><category term="ssr" /><category term="cookies" /><category term="api" /><category term="ux-ui" /><category term="database" /><category term="sql" /><summary type="html"><![CDATA[Today I jumped back into developing the admin portal for my online portfolio. This is one of those projects that’s been quietly sitting there, mostly complete, waiting for me to come back and finish the harder parts.]]></summary></entry></feed>