<?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: Ellie O'Connor</title>
    <description>The latest articles on DEV Community by Ellie O'Connor (@ellieoconnor).</description>
    <link>https://dev.to/ellieoconnor</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%2F1118300%2Fee004dc2-16ab-4faa-b251-593605c8a5d5.png</url>
      <title>DEV Community: Ellie O'Connor</title>
      <link>https://dev.to/ellieoconnor</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ellieoconnor"/>
    <language>en</language>
    <item>
      <title>Building the Tool I Wished I Had</title>
      <dc:creator>Ellie O'Connor</dc:creator>
      <pubDate>Fri, 16 Oct 2026 02:42:19 +0000</pubDate>
      <link>https://dev.to/ellieoconnor/building-the-tool-i-wished-i-had-4j6c</link>
      <guid>https://dev.to/ellieoconnor/building-the-tool-i-wished-i-had-4j6c</guid>
      <description>&lt;p&gt;Lately I've felt an irresistible pull to finally act on an idea I've carried around for years.&lt;/p&gt;

&lt;p&gt;In a former life, I was a special education teacher. That job is actually how I got into tech: I wanted to build tools that would make my own work easier. I'm starting what is fondly known in the #100Devs community as my "100-hours project".&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;In many ways, special ed teachers are on their own. You find your own tools. You create your own systems. And the resources you need for everyday tasks are scattered across too many places. When it came time for me to update students' progress weekly or prep for a student's IEP, I would lose hours just collecting data from multiple sources.&lt;/p&gt;

&lt;p&gt;A core part of the job is tracking students' IEP goals. One student can have one to five goals. In a state like mine, with no cap on caseloads, a teacher can have 25 or more students. Twenty-five students times even two goals each...you do the math.&lt;/p&gt;

&lt;p&gt;So I'm building SpEd Hub, a tool that pulls those resources into one place, starting with writing, saving, and tracking IEP goals.&lt;/p&gt;

&lt;h2&gt;
  
  
  The tools
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Database: PostgreSQL.&lt;/strong&gt; Student goal data has a predictable shape, which fits a relational database with a fixed schema, where the database itself enforces the rules. I also chose it because I want to strengthen my skills in SQL and database design, so I'm writing every query myself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Backend: Python with FastAPI.&lt;/strong&gt; Python was the first language I learned, and its type hints feel familiar coming from TypeScript. I also love that FastAPI builds a solid docs page for my API automatically. But the biggest reason is AI. Python's data and AI ecosystem is hard to beat, and I have real AI plans for SpEd Hub, from progress analytics to helping teachers find resources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Frontend: React and TypeScript.&lt;/strong&gt; I have a soft spot for Angular, but React is a skill I want to stretch. That's really all that went into this one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI: Claude.&lt;/strong&gt; In the past I've used tools like BMAD, and I still like it, but Claude has evolved so much over the last year and a half that BMAD's skills no longer feel unique. For this project I'm using Claude's Projects feature on the web: asking targeted questions, iterating on ideas, walking away, and then reading the source material myself. Claude is great at the overview, but it can't always predict what will spark understanding for me, so I love that it points me to sources. The biggest lesson has been learning to push back, so my own ideas shine through and I actually understand what I'm building instead of letting Claude do it all or just saying "looks good to me."&lt;/p&gt;

&lt;p&gt;Right now the schema is in a good place, and I'm writing the endpoints.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it matters to me
&lt;/h2&gt;

&lt;p&gt;This is a passion project. Making teachers' lives easier excites me, and so does building better connections between teachers and students and keeping parents in the know about their child's goals. I also have ideas for improving communication between special ed and gen ed teachers.&lt;/p&gt;

&lt;p&gt;I'm not building something huge or worrying about scale. But I do want something that's actually useful and fast. Teachers have it hard enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your turn
&lt;/h2&gt;

&lt;p&gt;I'd love to hear from you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How do you make decisions about your database structure?&lt;/li&gt;
&lt;li&gt;What tools do you use for planning?&lt;/li&gt;
&lt;li&gt;What does your scoping and planning process look like?&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>100devs</category>
      <category>python</category>
      <category>postgres</category>
      <category>education</category>
    </item>
    <item>
      <title>'Introducing Myself: From Classroom Teacher to Full-Stack Developer'</title>
      <dc:creator>Ellie O'Connor</dc:creator>
      <pubDate>Tue, 17 Mar 2026 23:03:16 +0000</pubDate>
      <link>https://dev.to/ellieoconnor/introducing-myself-from-classroom-teacher-to-full-stack-developer-28nk</link>
      <guid>https://dev.to/ellieoconnor/introducing-myself-from-classroom-teacher-to-full-stack-developer-28nk</guid>
      <description>&lt;h1&gt;
  
  
  Introducing Myself: From Classroom Teacher to Full-Stack Developer
&lt;/h1&gt;

&lt;p&gt;Hi! My name is Ellie, and I'm a full-stack software developer.\&lt;br&gt;
This is my first blog, and I'll admit, I'm feeling a little self-conscious about it. There are so many blogs out there–why add to the noise? Well, this blog isn't just for you; it's for me. It's a space for me to reflect, learn and grow as a developer. If you stick around, you may just find something valuable here too.&lt;/p&gt;

&lt;h3&gt;
  
  
  My Journey So Far
&lt;/h3&gt;

&lt;p&gt;My journey into software development started in an unlikely place: a special education classroom.\&lt;br&gt;
Back in 2014, I learned just enough code to mock up some screens for my dissertation on assistive technology. At the time, I never imagined I could become a developer. I had all these preconceived notions about working tech that I used to gate-keep the field from myself.&lt;/p&gt;

&lt;p&gt;In 2016, I landed my first job in special education. I loved the role, but I couldn't shake the feeling that students and teachers deserved better tools. In my department, we used three different programs just to write and track students' progress towards their IEP goals, and another seven websites and software programs to create instructional materials. It was overwhelming and inefficient.&lt;/p&gt;

&lt;p&gt;That's when I started coding with a dream: to create a one-stop-shop for special education teacher–a tool that could handle IEP goal building, tracking, and resource creation all in one place. Step one? Learning web development basics, HTML and CSS (thank you FreeCodeCamp!).&lt;/p&gt;

&lt;p&gt;My journey accelerated in 2022 when I left teaching. It was terrifying–teaching was all I'd known for nearly a decade–but I know it was the right move for me. I had been working my way through FreeCodeCamp and a Python book, but felt overwhelmed. Everywhere I looked on social media, someone had an opinion on the "best way to learn to code". And even more people wanted to sell their mentorship or knowledge for thousands of dollars.&lt;/p&gt;

&lt;p&gt;On a coding Discord server, I discovered #100Devs, a free, live coding bootcamp hosted on Twitch. I had missed the first class but joined for the second one. That changed everything for me.\&lt;br&gt;
The #100Devs classes and community helped me build a foundation I could stand on and continues to be a source of community and learning. I truly attribute my career change to that moment when I joined.&lt;/p&gt;

&lt;p&gt;Today, I'm part of a lean team at the number one ERP system for the metal casting industry, putting my skills to work every day. &lt;/p&gt;

&lt;h3&gt;
  
  
  Why I Build This Blog
&lt;/h3&gt;

&lt;p&gt;So, why a blog?&lt;/p&gt;

&lt;p&gt;For me, writing is a way to solidify what I'm learning. When I put my thoughts into words, I understand them better. This blog is a space for me to explore the lessons I'm learning and talk about the projects I'm working on.&lt;/p&gt;

&lt;p&gt;But, it's also about connection. I'm hoping to meet others who are on similar journeys–whether you're a seasoned developer, a career changer like me, or just someone who's curious about tech.&lt;/p&gt;

&lt;h3&gt;
  
  
  Let's Connect
&lt;/h3&gt;

&lt;p&gt;If you've made it this far, you're a legend and I appreciate your time and energy. If you'd like to see more of my work, stay tuned to this website. I'll be adding my projects over the next few weeks and posting more about my learning progress. You can find ways to connect with me on my "Contact" page.&lt;/p&gt;

&lt;p&gt;I'm a big fan of virtual coffee chats and would love the chance to meet others.&lt;/p&gt;

&lt;p&gt;I'm excited to share my journey with you, and I can't wait to see where it takes us.&lt;/p&gt;

&lt;p&gt;Until next time,&lt;/p&gt;

&lt;p&gt;Ellie&lt;/p&gt;

</description>
      <category>career</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Legend Of Imposters: How a Beginner Project Helped Me Battle Shame</title>
      <dc:creator>Ellie O'Connor</dc:creator>
      <pubDate>Sat, 06 Dec 2025 01:29:05 +0000</pubDate>
      <link>https://dev.to/ellieoconnor/legend-of-imposters-how-a-beginner-project-helped-me-battle-shame-jf6</link>
      <guid>https://dev.to/ellieoconnor/legend-of-imposters-how-a-beginner-project-helped-me-battle-shame-jf6</guid>
      <description>&lt;p&gt;There are two wolves that live in Ellie – one with an endless desire to improve, learn, get really good at what I do, and put myself out there. The other - shame. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Why don't I know this stuff better?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This project is lame.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;People will think "how the heck does she have a job?"&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;The truth is, I really enjoyed my latest project. I learned a ton, and yeah, I'm a little embarrassed that this didn't click earlier for me. I'm here regardless because I'm excited that I learned something. Months from now, I'll look back and see how far I've come. Even if you've been at this for years, put yourself out there and ask the questions. Do the "lame beginner project." The only time you lose is when you don't try.&lt;/p&gt;

&lt;p&gt;I have often heard people talk about imposter syndrome, and I've often thought, "Okay, but with me, if they &lt;em&gt;really&lt;/em&gt; knew...It's not imposter syndrome if I'm really an imposter!" That fear kept me from posting about my journey, asking questions, and celebrating my wins. I'm taking a step forward now. Reflection and feedback are part of how I learn, so here we are.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Went Back to the Basics
&lt;/h2&gt;

&lt;p&gt;I LOVE &lt;em&gt;The Legend of Zelda: Breath of the Wild&lt;/em&gt;. It's easily in my top 5 games I've ever played. So when I wanted a small, low-stakes project to understand API and frontend interactions better and stumbled on a free API for the game...I was stoked.&lt;/p&gt;

&lt;p&gt;The purpose of the project was twofold. First: get more at ease with APIs – how to read them, accessing properties, and transforming data into something users can actually interact with. I do this all the time at work, but I often feel like I understand too little. I know what works, but not &lt;em&gt;why&lt;/em&gt;.\&lt;br&gt;
What happens if I try doing a, b, c like x, y, z instead? This project gave me the safety and creative space to explore that.&lt;br&gt;&lt;br&gt;
Second: practice some CSS because… why not have fun with it?&lt;/p&gt;

&lt;p&gt;I learned a lot! Most of it wasn't even what I was aiming to learn. I thought I’d deepen my basics and turn APIs from “dev magic” into “a puzzle I can solve.” Instead, I discovered how much architecture, naming, and structure affect my ability to reason about a project. And apparently, DOM manipulation can absolutely humble you after years of living inside frameworks.&lt;/p&gt;

&lt;p&gt;This year I've had a huge emphasis on learning architecture and design principles. So imagine my surprise when I discovered that even in a small free-API project requires architectural thinking.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mapping the World: Mental Models &amp;amp; APIs
&lt;/h2&gt;

&lt;p&gt;This was a fun, easy-to-read API. Hats off to the maintainer because they did a great job. It's an API I would recommend for anyone who wants to explore projects with BOTW data.\&lt;br&gt;
As I started poking around the data, something I’d only heard about in recent months finally made sense: “mental models.” I first heard the term on a podcast and Googled it, but it didn’t click. Only after working with the API and reflecting later did I realize I’d been building those internal maps all along — picturing how the data flows, how pieces connect, and how the UI should act. When I used Postman to explore the endpoints, I was actively building mental models.&lt;/p&gt;

&lt;p&gt;I originally imagined something much more complex, but after actually interacting with the data, I pivoted. A straightforward compendium — where I could easily look up items and their locations in the game — ended up being perfect. No need for back buttons or multiple views.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Combat: Async Tracks and DOM Manipulation
&lt;/h2&gt;

&lt;p&gt;I was honestly shocked at how quickly I lost track of data and responses. I intentionally used &lt;code&gt;.fetch().then().then().catch()&lt;/code&gt; chains instead of modern syntax to force myself to understand the Promises that power the &lt;code&gt;async/await&lt;/code&gt; world we live in.&lt;/p&gt;

&lt;p&gt;At one point I spent half an evening wondering why my data looked perfect in a console log inside the fetch… but never made it to the UI. Turns out I never returned the Promise in one of my &lt;code&gt;.then()&lt;/code&gt; chains. Console showed the right thing — but my UI literally had nothing to work with.&lt;/p&gt;

&lt;p&gt;Tracking where data was lost became a theme in my project. I learned very quickly that when classes are grouped properly, debugging becomes so much easier. Clean structure helped me follow the data from start to finish. Most of the bugs I hit boiled down to losing track of data flow. This project showed me clearly where I need to improve: Tracking data from fetch to frontend. &lt;/p&gt;

&lt;p&gt;DOM manipulation also kicked my butt. Adding elements dynamically felt foreign after working in Angular all day. But I walked away with a dozen new Anki cards and a better grasp of built-in method quirks. My go-to pattern was: find a working solution (hello, StackOverflow), understand why it works, compare it to my broken version, and then use AI as a rubber duck. I always told it not to give me answers, just to ask questions, so I had to think more deeply.&lt;/p&gt;

&lt;h2&gt;
  
  
  New Game Plus: Lessons in Architecture
&lt;/h2&gt;

&lt;p&gt;Now that I actually know what mental models are and have a little more experience with designing and architecting, I’d do a few things differently.&lt;br&gt;
I’d start by writing out 1–3 interactive user flows—what the user is trying to do and what alternatives they might take. That alone would have shaped my UI choices and my expectations for the data.&lt;/p&gt;

&lt;p&gt;I’d also stop throwing everything into a class. Learning that classes should represent &lt;em&gt;behavior plus state&lt;/em&gt; helped me untangle a lot of the mess I created early on. It also showed me how much cleaner my code can be when helpers live separately from the things that actually manage data.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Loot: What I Actually Learned
&lt;/h2&gt;

&lt;p&gt;This project unlocked understanding in so many places I didn’t expect—architecture, async flow, DOM manipulation, and honestly, confidence. I walked away feeling like I finally “get” Promises in a way that’s not just theoretical.&lt;/p&gt;

&lt;p&gt;More than that, it reminded me that tiny, low-stakes projects can level up a whole range of skills at once. I’m already building my next little experiment, and I’m excited to share that one too.&lt;/p&gt;

&lt;p&gt;And the next time those two wolves start arguing about whether my project is lame or whether I should post it anyway… well, I’ve got a little more evidence that feeding the curious one pays off.&lt;/p&gt;

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