Year of Code
FFrom 11 July 2025 I knew I was going to have to upskill, and that led to a simple challenge: write code every day for one year.
The goal was never to build a GitHub streak or impress people online. It was to build consistency, develop practical skills, and prove to myself that I could commit to improving over a long period of time.
Looking back now, none of the individual commits feel particularly significant. Together though, they represent one of the most productive learning periods of my career. I probably learned more during that year than at any other point before it.
⭐ A Small Asterisk
If you look closely at my GitHub contribution graph, you’ll notice a missing day.
On 6 February I wrote code in a repository that no longer exists. A few months later I accidentally deleted that repository without realising GitHub would remove that day’s contribution along with it. The code was written, but the contribution history disappeared.

Thankfully I’d taken a screenshot before making that mistake, so although the graph will never be complete, I still have proof that the work was done.
I didn’t realise what I’d done until June, and at the time I was genuinely devastated. It sounds silly over a single square on a graph, but after months of coding every day it felt like I’d accidentally erased part of the challenge.
Sometimes backups are just as important as writing the code.
💻 Learning Through Building
Rather than following tutorials endlessly, I wanted every new skill to become part of a real project. Throughout the year I continued working through FreeCodeCamp, completing several certifications while gradually moving into more advanced topics.
I also started using CodePen: https://codepen.io/Mike-MacDonagh
It’s filled with small personal projects where I took something I’d just learned and rebuilt it around subjects that actually interested me. That turned out to be one of the best ways for me to remember what I’d learned.
Completed
- Responsive Web Design
- JavaScript Algorithms and Data Structures
- Front End Development Libraries
- Data Visualization
- Back End Development and APIs
Currently Working On
- Quality Assurance & Testing
- Information Security
- Relational Database
Once I finish these I’ll have completed FreeCodeCamp’s Full Stack curriculum. Some of the remaining certifications have started to show their age, so a few exercises need patching to work with modern tooling. That makes them a little harder than originally intended, but it’s also been a useful learning experience.
The certifications gave me a solid foundation, but building real projects is where everything really started to click.
🌐 Building My Own Websites
One of the biggest achievements of the year wasn’t a certification at all. It was building websites that I genuinely enjoy maintaining.
During the year I continued developing:
- michaelmacdonagh.net — my professional portfolio
- mechmadhog.com — my personal website and blog
- bohemianfitness.ie — a client website
Each project pushed me to learn something different.
Instead of relying on website builders, I built them using GitHub Pages, Jekyll, HTML, CSS and JavaScript, gradually adding features such as:
- Blog collections
- Pagination
- Improved navigation
- Project galleries
- Responsive layouts
- Custom styling
- Performance improvements
Every feature became another opportunity to learn something new.
🤖 Expanding Beyond Traditional Web Development
The second half of the year also took me in a direction I hadn’t originally planned.
Alongside web development, I started studying modern AI development through Udemy courses, covering topics including:
- Large Language Models (LLMs)
- Local AI tooling
- Docker
- React projects
- AI-assisted development workflows
The more I learned, the less interested I became in AI generating content and the more interested I became in using it to automate repetitive work, build useful tools and become a more effective developer. I see it as another skill to learn rather than something that replaces the fundamentals.
🎯 The Biggest Lesson
If this year taught me anything, it’s that consistency compounds.
Most days weren’t memorable. Some commits fixed a typo. Some improved accessibility. Some involved hours of debugging for only a handful of lines of code. On their own they didn’t feel like much, but looking back they all added up.
Progress rarely comes from one big breakthrough. More often than not, it comes from turning up again tomorrow.
🚀 Looking Ahead
Although the challenge has officially finished, the learning certainly hasn’t.
I’m continuing to work towards completing the remaining FreeCodeCamp certifications while expanding further into full-stack development, automation, AI and modern development workflows.
The GitHub graph marks the end of one challenge, but hopefully it’s only the beginning of many more.