I’m a software engineer, founder, and consultant. Over the past decade I’ve worked across web applications, distributed systems, APIs, databases, developer tooling, and AI-assisted software development. I’ve founded companies, built products from scratch, and helped startups navigate technical challenges ranging from architecture to execution. This blog is where I write about…
Note: This post was not written/edited/reviewed by any LLM/“AI”. Introduction After about a year of working part time on greenfield projects at Outlogic , like small product demos / low scope crypto MVPs, I was tasked with developing a coin swap platform from scratch. At this time I was fully recharged from my days at Widgetic and had moved into a stable cadence of product level…
Table of Contents Introduction Main Concepts asgi Websockets Channel Implementation Chat Testing Final Thoughts This tutorial is for django developers who are comfortable with the primitives and want to build real time applications using django + channels. We’ll be building a minimal intercom clone(backend only) to simulate chat support provided to client websites who embed our widget for…
Note: This post was not reviewed/edited/written by any LLM/“AI”. Prelude Prior to joining Widgetic I was a Java/Android developer turned Node.js / backend developer, had worked at a Swiss cryptocurrency startup as a backend/desktop developer, and had built more than a few MVPs in the years prior(mobile apps, electron apps etc but not a full stack application). At this point I was…
tl;dr : Neovim has come a long way from an experimental vim fork that it was at inception and is veritably, in my opinion, the hotbed for open source editor innovation currently. However customising it can feel daunting especially since things are changing rapidly. Having lived through vi vs emacs I was a full on emacs person jumping through my ocaml code with the venerable tuareg mode which is…
(screenshot taken from diffview.nvim repository) Over the years, I’ve gone through so many merge tools - kdiff3, meld, beyond compare, Kaleidoscope. Nvim being my editor of choice, fortunately, has a rich ecosystem of plugins where I can set up an uber merge workflow using diffview.nvim and avoid using external tools altogether. Getting started Make sure you have the latest nvim installed (I…
I’ve been learning haskell for some time now and it has been amazing grappling with pure functional programming concepts. Although it’s not for everyone, I believe its potential is too much in terms purity. The best way for me to learn anything is to just build something and i’m quite infatuated with yaml right now, so I suppose i’ll build a very basic yaml parser to learn…
In my previous post , I discussed some general purpose command line utilities that help ease your way around the command line. In this post we’ll discuss some command line utilities that are indispensable to my web development workflow, and might come in handy for you too :) pgcli/mycli All web apps depend on a database of some kind. Thus, communicating with a database is one of the most…
In the previous post I profiled my zsh load to debug the monumental shell load time which is really annoying for me, since I spend all my time in the shell. I think I’m gonna get rid of compinit totally and look at the profiling data. Let’s dive in # autoload -Uz compinit # if [[ -n ${HOME}/.zcompdump(#qN.mh+24) ]]; then # compinit; # else # compinit -C; # fi; Launching the profiler…
I’m a big fan of the z shell . I use it with the spaceship prompt and zplug for plugin management. Right now, it takes an uncomfortable amount of time to load up the prompt on terminal emulator launch, which is annoying for me since I like everything to be snappy, at least on the command line. Overview of my zshrc It’s pretty basic, boasts of a zplug installation for plugin management…
If you’re like me, you spend most of your time in the command line, where saving even a few keystrokes can help you become significantly more productive (and happier :). Here are some tools that I’ve found to be incredibly helpful and have augmented my love for the command line through their sheer awesomeness Bat Bat is a successor to the unix cat command that boasts many superpowers,…