Introduction
As 2021 draws to end, I thought I'd put together a blog post talking about everything that's happened to me in the web development world during the year. I think that sometimes it's easy to feel like the year has passed you by and that you haven't achieved anything. So, I think it's important to take a bit of time to sit back and reflect on the year and realise how much you have actually achieved. Looking back, this year has been really exciting and has no doubt been a busy one for me!
From becoming a full-time freelance web developer, building a newsletter audience of over 4.5k people and creating an ebook that has been downloading by over 5k people across the world, there's definitely a lot to talk about.
Becoming a Freelancer
For anyone who knows me, they'll know that freelancing is something I've wanted to do for a long time. The idea of being my own boss, being able to choose which projects I want to work on, and having more freedom than employment is something that I've always liked the idea of.
To give a bit of background, I started freelancing (kind of) in 2017 when I was a student at university. I was using my evenings and weekends to build up a portfolio of websites and web applications that I'd built using vanilla PHP for some local companies. It was this portfolio that then helped me to get my first full-time web development job in 2018 after graduating from my 'MSc Computing' course.
After getting the job, I continued freelancing in the weekends and evenings. I was using it as a way of building my understanding of working with different teams and seeing how other people approach problems. During this time, I got a better taste of what freelancing was about. After all, it's not all web development; there's also the project management, accounts and organisation tasks that come with it.
So, this year after a lot of consideration and thinking, I made the leap to leave my full-time employment and become a full-time freelance web developer. It was quite possibly one of the scariest decisions I've ever made, but it was also one of the most exciting.
Of course, it's difficult for me to say just yet whether I made the right choice. But, so far, I've been absolutely loving the experience and don't regret it one bit.
Open-Source Contributions
At the end of 2020, I set myself a goal to try and contribute more to open-source projects. I chose to do this because I think contributing to other people's projects helps you to think outside of the box and step into someone else's shoes. I personally find it to be a great way of learning and improving as a developer. As well as this, I believe that no matter if a contribution is thousands of lines long or just fixing a typo in documentation, it all contributes towards helping the open-source community grow.
Excluding my own packages that I maintain, during 2021, I managed to make 15 PRs (that were merged) to the following 6 different projects:
-
laravel/framework
- #36328 - Added the whereInstanceOfAny() method for Collections.
- #37066, #37034 - Add the sole() method for Collections.
- #38349 - Added assertRedirectToSignedRoute() method for testing responses.
- #39757, #40099, #40118 - Added missing methods to facade docblocks.
- #40100 - Added ability to define temporary URL building logic using the Storage facade.
- #40137 - Added ability to define extra default password rules.
- laravel/docs
-
laravelio/laravel.io
- #687 - Prevented current article showing in trending articles section.
-
nunomaduro/termind
- #18 - Added colours utility class.
- jbrooksuk/artisan.page
-
transloadit/uppy
- #3319 - Fixed typo in documentation.
My Packages
Towards the end of this year, I built and released two new PHP packages: 'Exchange Rates' and 'Type Safe'. I also tagged and released 11 new versions of my existing packages 'Laravel Exchange Rates' and 'Short URL'.
Exchange Rates
Exchange Rates is a PHP package that is very similar to my existing Laravel Exchange Rates package. It is a simple wrapper that you can use to interact with the exchangerate.host API for getting exchange rates and converting monetary values.
Type Safe
Type Safe is a proof-of-concept package that I put together in an attempt to improve type safety in PHP applications. In fact, if you're interested in reading more about it and how it could be useful, check out the blog post that I wrote about it.
Laravel Exchange Rates
I released 3 new versions of Laravel Exchange Rates in 2021. I'm also really happy with this package because, at the time of writing this post, it has been downloaded 70k times.
Releases: v4.0.0, v4.0.1, v4.1.0
Short URL
I also released 8 new versions of Short URL, with each new version adding cool features to improve the package. I have to say a huge thank you to the 4 other developers who contributed and added features! Their work is massively appreciated!
Releases: v4.2.0, v4.3.0, v5.0.0, v5.1.0, v5.2.0, v6.0.0, v6.1.0, v6.2.0
Contributors: Victor-Emil Rossil Andersen, Julien Arcin, Ryan Chandler, Chun-Sheng, Li.
Top Performing Blog Posts
As part of my goals for 2021, I tried to spend more time writing new posts for my blog. Unfortunately, I don't feel like I managed to spend as much time as I'd have liked doing it. But, I do still feel like I managed to create some good content that has hopefully helped developers around the world.
So, here's a list of my 5 top performing articles this year from my blog:
6 Quick & Easy Ways to Speed Up Your Laravel Website
This post covers 6 tips that you can implement in your Laravel website relatively easily to speed it up.
Read '6 Quick & Easy Ways to Speed Up Your Laravel Website'
The Clean Coder's Guide to Laravel [FREE 70 Page PDF]
This post discusses my free 70 page ebook that I released this year called 'The Clean Coder's Guide to Laravel'.
Read 'The Clean Coder's Guide to Laravel [FREE 70 Page PDF]'
Using the Strategy Pattern in Laravel
This post gives an overview of what the strategy pattern is, when to use it and how to implement it in your own Laravel applications.
Read 'Using the Strategy Pattern in Laravel'
How to Make Your Laravel App More Testable
The post covers how to write your Laravel code in a way that makes it easier to write tests for.
Read 'How to Make Your Laravel App More Testable'
Using Interfaces to Write Better PHP Code
This post discusses interfaces in PHP and how you might want to use them to improve the extendability and maintainability of your applications.
Read 'Using Interfaces to Write Better PHP Code'
Starting a Newsletter
Since I first started writing content for my blog, I had the intention of setting up a newsletter to work alongside it. But, it kept getting pushed to the bottom of my list of things to do and I never ended up creating one.
However, during 2021, I took the time to create a newsletter that is sent out when I publish new blog posts. When I got my first subscriber, I actually let out a bit of a scream in excitement. At the time of writing this article, I currently have 4.5k subscribers!
I'll be honest, I never expected to get that many subscribers at all. So, to get that many in less than a year is an amazing and encouraging feeling. I have to admit, a huge amount of the newsletter's success is down to the Laravel News podcast and Povilas Korop (Laravel Daily); I'll go into a bit more detail about this further down.
Clean Coder's Guide to Laravel
During 2021, I decided to put together a free 70-page e-book about Laravel called the "The Clean Coder's Guide to Laravel". It covered 6 main topics with tips and tutorials on how to improve and clean up your code.
To download the e-book, all you had to do was subscribe to my blog newsletter. You'd then be sent an email with the download link to the PDF file.
I was sitting at around 100 downloads (I can't remember the exact figure) for a short while. But, then the Laravel News podcast mentioned it and within a week I had jumped up to around 300 downloads. I was amazed!
Then something crazy happened... I woke up one morning to see that I had over 1000 notifications on my phone! I looked at the notifications and realised that were all to tell me that people were subscribing to the newsletter and downloading the e-book.
At first, a huge amount of panic set in. I thought that someone was attacking my sign up form or trying to spam me. So, I rushed out of bed and jumped straight on to my laptop to find out what was happening. I expected to check the emails of the new subscribers and see some random or spam addresses. But, as I was scrolling through them, I realised that they all looked legitimate and that they'd all also gone through the two-step process of confirming their email. So, it started to set in that the emails were real. But why the sudden surge of subscriptions?
I checked on Youtube and Twitter and found that Povilas Korop had just put out a video on his "Laravel Daily" Youtube channel. The video talked about the e-book and recommended that people checked it out. Wow!
As a result of his video, I gained around 2k new subscribers within a week or two. And my website's traffic increased like crazy! I went from around 5k page views a month to 30k page views! This has slowly dropped back down and settled at around 10k, but that surge definitely helped play a part in my new sign ups. In fact, when I sat down and looked at the analytics, in the first hour that the video was released, on average, I was gaining a new subscriber every 6 seconds! I had to mute my notifications for a short while because my phone was constantly buzzing.
So, I'm hugely grateful to both the Laravel News podcast and Povilas for what they did. They helped me reach a bigger audience and I hope that the e-book helped people learn at least one new thing.
At the time of writing this article, the guide has been downloaded over 5000 times, which is awesome!
If you're interested, you can check out the Laravel News podcast episode and the Laravel Daily video here:
Proud Moments
As you can probably guess from above, one of the things that I'm really proud of this year is starting my newsletter and growing my audience. In fact, it's something that I'm happy with because I can now help even more developers by creating new content.
I'm also happy with my open-source contributions over the space of the year. I think that it's helped me to improve as a developer and as a person. After all, being able to communicate with other people in different parts of the world can be challenging sometimes. So, I think it really helps you to improve your communication skills to justify your reasons behind things like code design choices.
2021 is also a really cool year because I got very first GitHub sponsor: Erik Wheeler! This is unbelievably encouraging and gives me the motivation to continue working on open-source projects and creating new content. So, a huge shout out to Erik for helping me out! I really appreciate it!
On a side note, if you want to help me create new content, you could consider sponsoring me? I don't make any money from writing any blog posts and do it because I enjoy helping people. But, it can take a lot of time and energy to put it all together. So, sponsorships can really help me to spend more time working on cool new blog posts rather than working on freelance projects.
Another milestone that I'm really proud of in 2021 is hitting 100k downloads for my packages. At the time of writing this artcile, Laravel Exchange Rates has been downloaded 70k times and Short URL has been downloaded 42k times. I wonder if I'll hit 200k downloads by the end of 2022?
Finally, the next big things that I'm proud of in 2021 are my mentions that I've had on the Laravel News website. In the Short URL Package for Laravel Applications article, it discussed Short URL and gave a quick overview of what it was. I also got a brief mention in the Laravel 8.77 Released article for one of my contributions to Laravel.
Goals for 2022?
I've set myself a couple of little goals that I want to aim for in 2022:
Firstly, I want to spend more time contributing to open-source projects. I also want to try and create more content for my blog that other developers can learn from.
I'm also hoping to spend a bit more time learning about TypeScript and trying to implement it in my projects. Anyone who knows me personally will know that I much prefer working with PHP than JavaScript and so I tend to avoid it as much as possible. So, I'm going to try and change that by learning about it and improving my skills around it.
I'm also looking forward to Laravel 9 and the cool features that it's going to bring with it!
I wish all of my readers a happy new year and hope that 2022 is an amazing year for us all.
Keep on building awesome stuff! 🚀