This year started with me feeling more confident in my React skills after completing a few smaller projects. I was ready to challenge myself with something more complex. After reading the amazing fiction book Tomorrow, and Tomorrow, and Tomorrow by Gabrielle Zevin, I felt inspired to build a game I had been thinking about for a few months. That's when I started building my math game, Frectangles.
I was addicted to building this game for about two straight months. I even visited my best friend in DC, who I hadn’t seen in over a year and spent half the time sitting on her couch working on it. I’ve never been a huge video gamer, but building this game was full of fun and deeply engaging challenges. I significantly deepened my understanding of React and learned a lot about UX best practices along the way.
I used Hotjar to analyze session replays and created custom events that fired when users completed a level, undid an action, or reset a board. I’m very interested in becoming a product-minded engineer, so I focused on practices that help me understand how users actually interact with my apps and where they experience friction. Hotjar was incredibly helpful for this, and it gave me concrete insights into where players struggled, how quickly they figured out the less obvious tools, etc.
During this same period, I also participated in a month-long hackathon. While my game was my primary focus, the hackathon exposed a major gap in my skills: collaborating with Git and GitHub. It was my first time working in a shared repository, and I struggled with pulling vs. fetching, resolving merge conflicts, and writing clear commit messages and PR descriptions. While uncomfortable at the time, this experience made it very clear what I needed to improve and directly influenced my learning goals for the next few months.
After applying to several jobs, I realized I needed to expand my skill set to include backend development and Tailwind CSS, since many roles expected familiarity with both. I paused work on my game and pivoted to building a Todo List app from Frontend Mentor with an Express backend.
I ran into CORS issues that I never fully resolved, which highlighted gaps in my understanding of the browser–server boundary. It was also my first experience using Tailwind so I was trying to learn too many things at once. This was probably the only month where programming felt like such a drag. There were so many things I had to do that I didn't know how to even begin and I knew I wasn't building for any actual audience. Unless people think we need another Todo app in the world, but I don't think we do 😂. I know I'm much more motivated when building real products for real people so I decided to leave it unfinished and move on to more interesting endeavors.
In April, I started an apprenticeship at Gridiron Survivor, where I worked with a team on a Secret Santa app. I learned a ton about writing unit, integration, and end-to-end tests, using ESLint and Prettier, and writing clear, thoughtful PR descriptions.
This was my first opportunity to experience a professional software development lifecycle firsthand—working with tickets, sprints, a Kanban board, release cycles, retrospectives, and a CI/CD pipeline. It inspired me to adopt many of these same practices in my personal projects so I could stay organized and make steady progress. The LGT community was also incredibly supportive, and it was motivating to learn from mentors and alongside peers who were building and learning their own things.
As work slowed down at Gridiron Survivor, I felt renewed energy to return to my game. After experiencing the satisfaction of creating and closing tickets during my apprenticeship, I created a bunch of tickets for Frectangles as well. Having clear, bite-sized tasks gave me a lot of momentum and motivation, since I could see steady progress as I closed them one by one.
Around this time, I also appeared on my first podcast, John Crickett’s Coding Chats, where I talked about the game. That experience made the project feel more real and public, and I started to believe that finishing it and getting real users could directly lead to getting a job.
In September, I attended the Commit Your Code conference and finally met many of my LGT friends in person. In October, I traveled to Amsterdam to watch my best friend speak at ViteConf in Amsterdam. Both experiences were incredibly meaningful and reminded me how motivating and supportive the developer community can be.
Around the same time, I received an offer for a paid internship at a small startup called Meet Near Me. This role pushed me further than any project I had worked on before. I learned Golang, Alpine.js, Templ, and HTMX, and had to adapt to a much more complex build system than I was used to.
I learned Go using an excellent resource called Learn Go with Tests, which teaches the language through test-driven development. Working in this codebase taught me how many steps are involved in formatting, compiling, building binaries, and supporting hot reloading, all things I had previously taken for granted.
I worked on several user-facing features, which required me to practice empathizing with customers and carefully weighing UI tradeoffs. As I gained a deeper understanding of the product and company direction, I began seeking out communities of potential users to better understand their needs and pain points. This work culminated in building an embeddable widget that displays local events with search and filtering functionality for newsletter publishers to embed on their sites.
This feature was very challenging, and I relied heavily on AI tools to help me move forward. However, the real learning came from debugging, validating, refactoring, and truly understanding the generated code. In my free time, I also began learning best practices in Next.js while building this portfolio and blog.
Towards the end of December, I received a full-time job offer as a Frontend React Developer at an edtech startup (my dream scenario) which starts in January. This came after about 18 months of learning and roughly 120 job applications. I’m excited to work in an industry I care deeply about, with a tech stack I'm more familiar with, and—finally—to have health insurance (!!). I’ll be rebuilding the frontend of one of their existing apps from scratch in React.
Many of my goals for 2026 come directly from the challenges I encountered this year. I want to become significantly more comfortable with Git, in particular using interactive stashing, committing, and squashing to create modular, meaningful commit histories that act as a form of documentation. I recently started reading Ultimate Git and GitHub for Modern Software Development, which describes your local branch as your playground. I've been using my local branches the exact same way as my remote branches but it would be cool if I did have a playground to work in.
As a former teacher, I often had students do math on whiteboards to reduce the pressure of permanently committing ideas to paper. This made experimentation feel safer and encouraged exploration. I want coding to feel more like that: a low-barrier environment where I can try things, undo them, redo them, and reason about changes without relying on copy-pasting to my clipboard 😅.
Right now, especially when using AI to build large features or fix bugs, I sometimes accumulate many unstaged changes and delay committing until everything works together. This can result in overly large or messy commits, and sometimes I’m not even sure if all of the changes were actually necessary. I think worktrees may be a helpful tool for dealing with this but I don't know much about them yet. I'm excited to read the rest of the Git and Github book to learn more tools and best practices.
In addition to improving my Git workflow, I want to get comfortable with other tools like Claude Code and Github Actions. And I want to deepen my understanding of design patterns, accessibility, and React. Finally, I want to finish the half-started blog posts I’ve accumulated here and continue writing when I encounter interesting problems. I believe documenting these challenges will be helpful both for my future self and for others who may run into similar issues down the line.
© 2025 Julianna Messineo