What a great start 🏎️
2023 was a year that I cannot be more proud of. The year started on a really great note, I was able to secure a job as a Software Engineer at a really great company through a referral by a really great friend of mine. I cannot overstate the value of having wonderful friends and a good network. I am forever grateful to him for this opportunity.
The goal: Striving for Mastery
When the year started, I had my plans in mind, not to rush and learn anything new, but to get better at whatever I was already doing. In the previous year, I got the chance to intern at a very wonderful company where I got introduced to a lot of the things I do on a daily basis now. After the internship, I just did not want to go about trying to learn other things but rather, just focus on whatever I picked up during my stay at the company because I had grown to love it and I wanted to get better at it. It was mostly about the frontend and backend development and I was really excited about it.
So as the year progressed, I just kept on learning and trying to balance the whole learning with my job as well. I got obsessed with getting better that I had formed a very strong routine every day. I would wake up very early in the morning and get myself ready for the day: showering, getting something to eat and then I would start my day.
How was I able to get better?
I dedicated time to read blogs of other people who were doing extremely well in the field, I read about 2 blog posts each morning on a topic I knew nothing about. After reading, I spent about 30-40 minutes soaking in whatever I had read and if it required practice, doing that as well.
I also spent time watching videos on YouTube, I watched a lot of videos on mostly advanced Typescript and NextJS concepts.
As the year progressed, I got really good at what I was doing and I was able to build a lot of things. I built a lot of projects. I also got to work on a lot of projects at work and I was able to learn a lot of things from my colleagues as well. I learnt about Nginx, proxies amongst other things to help set up some infrastructures at work. It was a really fun experience.
Midpoint: What's next?
As the year got to it's midpoint, I started to feel like I was getting too comfortable with what I was doing and I felt like I needed to do something else. Since I had started the goal of getting better at what I do, I decided to also get an understanding of low level stuff. The idea was simple, why does process X work this particular way. I just wanted to understand how things worked behind the scenes since most of those things are abstracted away from developers, especially self-taught. Here are some of the things I learnt:
-
How the internet works. I got curios to know how all the internet really worked, and at a deep level. I learnt about the OSI model, Protocols, TCP/IP, DNS, HTTP, HTTPS, TLS, SSL, etc. I also learnt about how the internet works in general, how data is sent from one point to another, how the internet is connected, etc. One course that helped me a lot was Hussein Nassers course on fundamentals on Backend Engineering course on Udemy. It was really great and I learnt a lot from it.
-
Containers and Docker. I had heard about Docker a lot and I had used it a couple of times but I did not really understand how it worked. I decided to learn really well. I got a book about it and dedicated time everyday to go through. This was the first technical book I read from cover to cover. I got to understand some internal concepts and how the whole docker ecosystem works. It was a really fun ride.
-
Operating Systems. I also decided to read a bit about operating systems. Although I did not go too deep into the resources I got, I was able to read very well on the parts that I wanted to grasp very well, particularly processes and threads.
Open Source Contributions
One way I also got better at the various things I was doing was to see how other experienced people did theirs and it doesn't come much easier than finding open source projects to contribute to. I was able to contribute to two open source projects. One was a Python Scrapy Data Pipeline to write data to Google Bigquery in batches. I added a single feature to it in order to cover a use case I had. The second was an Open Source monitoring platform, OpenStatus. I really got into this and learnt a lot by building some features and also pushing some small fixes for issues like typos and stuff. It was a really great experience because I got some really solid reviews from the maintainers of the project and I was able to learn a lot from them as well.
Giving back
I tried my possible best to help share my learnings with people. I formed a small group with some colleagues to discuss our journeys and also help each other out. I helped a few make some decisions as to their career paths, helping resolve technical challenges and also sharing memes(very important 😅). I also started to write blog posts, I had one that really blew, over 8000 views 🤯. That fuelled me to continue writing since I could reach a lot of people just from my laptop.
The end: What's next?
As the year came to an end, I was really happy with how the year went. I was able to achieve a lot of things and I was really proud of myself. I was able to get better at what I do and I was able to learn a lot of things. I also took on some projects from which the most current one, ishortn got some traction and made it into a production application. I couldn't have been more happy.
2024: What's the plan?
For the coming year, my main goal will not be to learn another shiny new framework, but to go back and learn a lot of abstract and fundamental things. I just want to be a good computer scientist overall and not just a programmer. I want to understand low level architecture as well as understand a lot of things in the field of software architecture. To do this, I have gotten a list of books that I will be reading and I will be sharing my progress on my blog. I will also be writing more blog posts and sharing my learnings with people. Here are some of the books I will be reading:
- Designing web apis: Arnaud Lauret
- Web scalability for startup engineers.
- Crafting Interpreters by Robert Nystrome
- 97 things every programmer should know: collective wisdom from the experts
- Clean Code: Robert C. Martin
- Build Your Own Programming Language by Clinton L.Jeffery
I am really excited about the coming year and I hope it goes well. I wish you all a happy new year and I hope you achieve all your goals for the year. Cheers 🥂
Let me know what you think about this post and if you have any suggestions, please let me know. I am open to feedback. Thanks for reading.