RSSAmplifier

Blog

Kanishk Singh

Runes of Undocumented Code

kanishk.ioRSS feed ↗16 posts

Latest posts

Should I raise kids in the age of social media?

Educational institutions are also using social media like whatsapp for facilitating communication between teachers, parents, and students which doesn’t help any attempt to reduce the usage.
This becomes especially difficult to delay the time at which your kids have their own cellphones, their own computers, because it becomes a hindrance to their education. 
 Personally, I’m…

What is your Philosophy of Life?

I was speaking to Mitesh recently and he mentioned he uses this question as an icebreaker when he’s meeting new people in an attempt to engage in conversation and learn more about the person. He mentioned how this one question can end up leading to learning various different things and incidents in a person’s life. In contrast to these deep and fulfilling conversations, he’s also…

On Writing Well

Very often at work, my writing receives praise from fellow engineers, managers, and non-technical folks alike. I wanted to write down a few pointers on my approach as a means of sharing what I’ve learned over the years. 
 Some guiding principles 
 
 Good writing is an exercise in organising your thoughts. 
 Good writing is honest, and doesn’t let you escape your…

The Death of the Nerd

How portrayals of tech geniuses in media and pop culture evolved and the impact on future generations. 
 We went from proper nerds like Dennis Richie, Stallman, Linus, Kernighan etc to charismatic leaders like Jobs. The image of jobs has now influenced a generation of entrepreneurs who are more focused with how they appear than being masters of tech and knowing what technology can do. At the…

Expensor - Design Decisions

I’ve been wanting to automate my expense tracking for some time now. Back in mid-2024 I started on expensor for this. This is a small entry describing my use case, initial design decisions, and preferences for what I need in a expense tracker. This used to live in the project README but I figured it’s better out here. 
 While I didn’t spend much time on the project in the…

I love computing

I love computing. I’m somewhat of a computing romantic, even. The history of computer is so rich, and so stimulating. 
 Fuzzy string matching is a problem not unique to computers and internet. It’s a important problem in Bioinformatics where edit distances are used for DNA Sequence Alignment that help determine how similar two organisms are from a functional or evolutionary point…

Internet - Global Consciousness or Tribalism at Scale?

The internet was purported to turn humanity into a global consciousness. Instead, what I notice today is that we’re all parts of circles, just a tad bit larger due to global communication. 
 We’re all victims of misinformation. And the people in control maintain control by depending on this form of tribalism. 
 Historically, the concept of a tribe emerged not from a want, but a…

Fixing the switch on Logitech MX Master 3S

Note: I will be going on a rant about this mouse and Logitech’s repairability programs, so if you want to skip it and go straight to the part where I discuss the fix, click here . 
 Like any respectable craftsman, I take pride in owning and using the best tools for my trade. So, in addition to using some fancy mechanical keyboards, I also use a fancy mouse, a Logitech MX Master 3S. I…

Paper Notes: The Part-Time Parliament

My thoughts as I read the paper 
 In this seminal work, Leslie Lamport describes the Paxos algorithm, which borrows its name and behavior from the way the ancient parliament of the Aegean island of Paxos conducted its affairs in regard to passing laws. 
 The algorithm helps maintain a distributed log consisting of various entries across multiple nodes in a cluster. In practice, this is…

Paper Notes: Understanding Real-World Concurrency Bugs in Go

TL;DR 
 This is a paper from 2019 titled “Understanding Real-World Concurrency Bugs in Go” which studies 171 concurrency bugs in popular open-source projects written in Go. The bug categorization is done along two axes: Behavior and Cause. 
 
 Behavior: whether the bug results in blocking or non-blocking bugs. 
 Cause: whether the bug results from the use of shared…

CPU throttling for containerized Go applications explained

EDIT: As of go1.25, the go runtime is now container-aware so you ideally shouldn’t see too much throttling due to the root cause described here if your service is using go1.25 or above and you’re not modifying GOMAXPROCS environment variable yourself. 
 It’s been a long time since I wrote something here. Past few years I’ve been busy at work which is where most of my…

Watching Spider-Man with Golang and AWS Lambda

I promise there are no spoilers in this blog, it’s perfectly safe to read if you’ve not seen the movie yet. 
 Last weekend I saw the new Spider-Man ( respect the hyphen ) movie No Way Home. Given that MCU movies are a big phenomenon, if you want to watch them opening weekend or the very first show, you need to book seats as early as possible or you can end up having to settle for…

Using GitHub Personal Access Tokens with Git CLI on WSL

I’ve been using my GitHub username-password for authenticating with GitHub through Git CLI for a long time now. GitHub announced in July last year that they’ll be moving to using token-based authentication for all authenticated Git operations (cloning private repos, pushing, etc.) Beginning from Aug 13, 2021 , any authenticated operation will require token based auth (personal access…

Creating AWS Lambda Layers for ELF Binaries

Last week a friend told me about a new app he was writing and it involved use of an application which was quite CPU heavy, and we wondered if we could save CPU costs by offloading that workload to an AWS Lambda function. I had never touched AWS Lambda prior to this, and I had a vague overview of what serverless applications were from a presentation I did for a college course, but I was very bored…

Building a Push Notification service for Telegram Bots (PART 2)

In the previous post, we came up with a multi-threaded asynchronous way to send push notifications to more than
300 users as quickly as possible. Since the last article, I’ve gone from 300+ users to ~700 users, and the solution
is still standing. 
 In this blogpost, we’ll discuss how to record all push notifications you send to our users into a database and how
it can…

Building a Push Notification service for Telegram Bots (PART 1)

So this winter break, I decided to create a push notification feature for my MIS-Bot, which you can checkout here . A little preface - The MIS-Bot is a telegram bot which pulls my attendance and other records from my college website, and sends a screenshot which is easier to assess for me. Apart from that, I’ve built some nifty functions which allow me to calculate how many classes I must…