Glad I Became A Programmer

I am dedicating a separate page for my stories when I was glad that I became a programmer. There are times when I feel like I am not doing well in my career (a typical imposter syndrome), but there are also times when I feel like I am doing great. This page is a collection of those moments when I feel like I am doing great, in hope that like how I have been inspired by others, I can inspire others as well.

✍🏽

This page will always be under construction. I will keep adding stories here as I continue my journey.

14th April, 2024 — Say no to spam!

Today I worked on a very interesting solution to a common problem, the spam users. Basically I have this Newsletter form that you will see in the footer of every page and on blog posts. Fortunately I don’t get lots of spam bot requests since most of them gets removed by the filters in place, however when an actual user tries to submit spam requests like sending in fake email ids or random non existent email ids, it gets through the filters and they get added to the list of subscribers.

For every new subscriber, I get a discord notification, so when I see such spam requests, I manually remove them from the database. Today I thought of “Can I automate this process? where I don’t have to login to my database and remove them manually?“.

So this is how my new worflow looks like, I hooked up a new API to delete a subscriber by email and it is protected via a secret key. Now once the API is in place, I leverage the HTTP shortcuts ↗️ app which I was already using for Linkding to create a new shortcut that will send a DELETE request to the API with the email id of the subscriber.

Now whenever I see a spam request, I just open the shortcut, add the email id and hit the send button. The subscriber gets removed from the database and I get a notification in discord that the subscriber has been removed. This is so much better than going into the database and deleting the record, and I can do this on the go from my phone.

11th April, 2024 — Building a remark plugin

Recently, I have been getting lots of positive feedbacks on my blog posts, especially from the r/selfhosted community on Reddit. I have been sharing my blog posts there and I am glad that people are finding them useful. Infact, my articles are getting shared in selfh.st newsletter continously for the past 3 weeks, and they way I know about it is when I start seeing a burst of traffic with the referrer as selfh.st ↗️ (ref=selfh.st).

I liked the idea of knowing where the users are coming from to understand what type of my content is resonating more with the audience. So I thought of attaching referrers to my blog posts. One way to solve it would be to use some VsCode regex magic to find all the links in my blog posts and attach a ?ref=akashrajpurohit.com query parameter to them. But that would be a manual process and I don’t want to do that for every blog post.

That’s when the idea of remark-add-query-param ↗️. I had never previously created a remark plugin so it was a really good and fun opportunity for me to explore this. Fortunately within a couple of hours, I was able to hack together the plugin implementation and test it on my blog posts. It worked like a charm and I was able to attach the referrer to all the links in my blog posts.

Then I spend new few hours to add tests to the plugin and create a npm package out of it. I published the package to npm and now I can use it in my blog posts by importing the package instead of writing the regex magic everytime.

21st September, 2023 — Built and in-house newsletter system

The idea of building a solution to a problem which is already solved by many other services is something that I have always been fascinated about. I have always been a fan of self-hosting and building things on my own. So when I thought of starting a newsletter, I wanted to see how it works and what are the challenges that I might face if I had to reinvent the wheel.

And thus began the journey of building my own in-house newsletter system. I started with a simple idea of sending out newsletters to my subscribers. I wanted to keep it simple and not over-engineer it. I wanted to focus on the core functionality of sending out newsletters and not worry about the other features that other services provide.

But the basic idea was that I still wanted to continue writing in Markdown and have the newsletters sent out automatically. I wanted to automate the process of sending out newsletters and not worry about the manual process of sending out newsletters. To send out the actual newsletter I used one of the service that I have created called email-server ↗️ which is a simple API that sends out emails.

Here is a more detailed blog post where I talked about How I built my own in-house Newsletter system.

Overall, I am glad I took this decision, while I am not a frequent newsletter sender, I have the flexibility to send out newsletters whenever I want and not worry about the cost of sending out newsletters.

4th January, 2023 — Started my Homelabbing journey

This part of my journey started when I was already self hosting some of the services that I use regularly like website analytics, some tools etc but on public cloud. The idea of having my own hardware and running services on it was something started as a fun hobby but turned out to be a great learning experience and something I am going to continue for a long time.

This here again is one of the moments where I am glad I became a programmer. I have been able to learn so much about networking, hardware, linux, docker, and so much more. Taking things that I learned in theory and applying them in practice has been such a great and fun experience. Because of this I have also connected with so many people who have a similar interest and a different skill set compared to a typical software developer.

I have been constantly writing content around this on #homelab and I am glad that people are finding it useful and are able to learn something from it. I have also been able to contribute to the community by sharing my knowledge and helping others in their journey.


💡

The idea of this page sparked on 14th April, 2024. There have been many more stories like this in the past that I will be recollecting my thoughts and keep on adding to this page.

The order of this page would be in chronologically descending order, with the latest story at the top.

If you like what I am doing here and want to share your thoughts, feel free to reach out to me on Twitter ↗️ or Reddit ↗️ or even the good old fashioned email.