RSS Amplifier

Blog

Aaqa Ishtyaq

Aaqa Ishtyaq, infrastructure engineer exploring ML systems, inference engineering, and distributed computing.

aaqa.devRSS feed ↗35 posts

Live Last read · last published · next check

Written by

Latest posts

dvito.cloud: AI Lab

dvito.cloud is an AI lab for building practical products around AI infrastructure, agents, and developer tooling. The lab owns and builds zei.sh , an ephemeral microVM sandbox platform for AI agent execution. More products are in development.

zei.sh: MicroVM Sandbox Platform

zei.sh is a cloud platform providing ephemeral microVM sandboxes (Firecracker and Cloud Hypervisor) for AI agent execution. Clone, branch, and snapshot environments, built for reproducible agent runs, untrusted code execution, and evals. Currently in public beta (v0.1), with a TypeScript SDK, an HTTP API, SSH/WebSSH terminal access, and real-time metrics and logs dashboards. Highlights: 124ms…

What AI Infrastructure Actually Needs from MicroVMs

I have been thinking about AI infrastructure from the compute side more than the model side. There is a lot of noise around AI infrastructure right now. Most of it is about models. The part I care about is everything around the model: where work runs, how fast sandboxes start, how isolated they are, how they reach private tools, how you measure usage, and how you keep the whole thing…

Scheduling Dense Compute Without Lying to Yourself

I have been thinking a lot about scheduling lately, especially once warm starts and reservations enter the picture. Schedulers are easy to make impressive in a slide deck. They are much harder to make honest. You can pack nodes aggressively, overcommit a little, and brag about utilization. Then a few bad placement calls land on the wrong hosts and the whole thing feels brittle. That is why I care…

Observability for a MicroVM Platform

I love logs, but logs alone have not been enough for the kind of machine lifecycle work I have been doing. You do not really know a platform until something slow or broken happens. That is when the nice diagrams stop helping. A request takes five seconds instead of two hundred milliseconds. A machine gets stuck during startup. A route exists, but traffic still fails. A node looks healthy until you…

Host Reconciliation with a Host Agent

I actually like SSH. It is useful, fast, and hard to avoid when you are building infrastructure. Still, there is a point in every infrastructure project where SSH becomes a bad habit. At first it feels fast. Jump into a box. Edit a file. Restart a service. Fix the thing. Then the fleet grows, and you realize your operating model is just "hope the last person remembers what changed." That is not a…

Why We Built Our Own Machine Proxy

When I started thinking about exposing services from machines, one plain question kept showing up: How does traffic reach a machine? That question sounds smaller than it is. Public ingress is not just HTTP. It is TLS, SNI, raw TCP, SSH, WebSSH, machine ownership, and route cleanup when the guest disappears in the middle of the day. That is a lot of stuff to hand-wave. In this post, I want to…

Making Internal DNS Boring for Private Machines

Once private networking starts to work, DNS becomes the next obvious problem. If private networking is the road system, DNS is the street sign. And like street signs, you only notice it when it is wrong. Nothing makes a platform feel flaky faster than this: the machine is up the network path works the name still does not resolve That gap is small on paper and painful in real use. I have run into…

Private Networking for MicroVM Fleets with WireGuard and IPv6

After getting machines to boot reliably, networking was the next thing that forced me to slow down and think properly. Private networking sounds simple when you say it quickly. "Just let the machines talk to each other." Then you try to do it across hosts, across regions, across reboots, without handing every guest a pile of custom firewall rules and mystery routing. That is where the clean model…

Fast Starts: Snapshots, Clones, and Warm Slots for MicroVMs

One of the things I care about most in a compute platform is startup time. People say they want fast machine starts. What they usually mean is they do not want to wait while your platform does cold work right in front of them. That distinction matters a lot. If you create a machine from scratch on demand, you are paying for a bunch of slow steps in public: prepare a root filesystem create overlays…

Stateless Regional Control Planes and Replicated State

I like control planes that can die without drama. If a regional API process restarts, I do not want a rescue mission. I want it to come back, rebuild what it needs, and keep serving traffic. That pushes you toward a simple rule: The control plane should not own more durable state than it has to. I ran into this while thinking through the regional control plane. The more state I wanted to push into…

How a Worker Node Runs a MicroVM

After removing the earlier draft for this slot, I still wanted a post here that explains one of the most important parts of the platform: what actually happens on the worker node when a machine gets created. This part matters because a lot of the rest of the system only makes sense once you know what the worker is responsible for. The control plane can pick a node. The proxy can expose traffic.…

Why a MicroVM Platform Needs a Crash-Resistant Machine FSM

While working on the worker side of the platform, one thing became obvious pretty quickly: machine lifecycle code looks easy only when you test happy paths. Create a machine. Start it. Stop it. Delete it. That idea falls apart the first time a host reboots halfway through startup. Now you have harder questions: Was the VM process created? Did networking finish? Did the root filesystem get…

Building a MicroVM Control Plane in Public

Over the past couple of years, I have been spending a lot of time with Firecracker, microVMs, and a distributed compute platform I have been building. It started with a simple goal: run Firecracker on a machine I control and understand every moving part. That sounds small, but it really is not. The first few steps are easy enough to explain. Boot a VM. Get KVM working. Start Firecracker. Launch a…

Move untracked git files to another directory

I had a lot of files in a git repository, which I didn't want to add in git , So to remove all of them to a temporary directory I used a collection of Unix commands. git status - -porcelain | awk ' {print $2} ' | xargs mv - t ../scratch

Animal Farm by George Orwell

Image generated using Adobe Firefly AI I picked up Animal Farm right after 1984 . I expected something smaller and easier. It is smaller. It is not easier. The plot is almost too neat. Animals kick out the farmer, promise a better world, and end up under a new set of tyrants. Orwell keeps it plain, which is exactly why it works. Nothing feels dressed up. You watch the hope drain out of the farm…

Pulga, Kalga - Himachal Pradesh 2024

In the heart of Himachal's Parvati Valley lie its hidden gems: Pulga and Kalga. Picture-perfect villages embraced by towering mountains, where every corner tells a story of nature's magnificence. Here, snow-capped peaks stand tall, kissing the sky, while icy waterfalls dance down the slopes, painting the landscape with their pure, untamed beauty. Despite the biting cold, every moment…

1984 by George Orwell

Image generated using Adobe Firefly AI I knew the broad shape of 1984 before I read it. Big Brother. Surveillance. Thought Police. All that. What I was not ready for was how suffocating the book feels page by page. Orwell does not rely on giant twists or clever worldbuilding tricks. He just keeps pressing on the same sore spot. The telescreen is always there. The slogans are always there. The…

The Idiot by Fyodor Dostoevsky

Image generated using Adobe Firefly AI The Idiot is not a smooth read. It is crowded, restless, dramatic, and at times almost too much. That is also why I liked it. Prince Myshkin is the reason the whole thing works. He is kind in a way that feels dangerous to everyone around him. Not flashy. Not saintly. Just open, honest, and weirdly free of the usual games people play. That makes him hard to…

Firecracker Dev Machine Setup (GCP)

VM on Google Compute Engine (GCE) supports nested virtualisation, unlike AWS, and allows to run KVM. We can create a VM on GCE to run and test Firecracker microVM. Here are the steps Setup GCP Project and Zone FC_PROJECT = y o u r _ n a m e - f i r e c r a c k e r FC_REGION = u s - e a s t 1 FC_ZONE = u s - e a s t 1 - b gcloud config set project $ { FC_PROJECT } gcloud config set…

Linux Container Networking from Scratch

In this article, we will be looking into setting up networking on a linux box from scratch. We will be creating a fresh new VM using Lima on macOS. You can create a new VM using VirtualBox, Vagrant, or even create a VM on OCI for free. Isolation based on Network Namespace The common thing that constitutes a network stack includes the: Network Devices Routing Rules Netfilter Hooks We can create a…

Git exclude files from working copy

How to ignore new files Globally Add the path(s) to your file(s) which you would like to ignore to your .gitignore file (and commit them). These file entries will also apply to others checking out the repository. Locally Add the path(s) to your file(s) which you would like to ignore to your .git/info/exclude file. These file entries will only apply to your local working copy. How to…

Open markdown links in a new tab

I created a static website linkbin , Where I could save links in a markdown file that can be viewed later. It is serving its purpose and because it uses hugo , I don't have to think about VPS cost. Recently, I ran into an issue where my website serves links but when you click on it, It will open the link in the same tab. Ugggh! I don't want to close my website just to open a link.…

The Recipe for a Great RESTful API

I personally love writing APIs. It's my favourite thing about backend development. As developers, we interact with APIs all the time: to process payments with Stripe, handle geolocation with Google Maps, retrieve tweets, etc. So what exactly makes a RESTful API great? What can you do to ensure that it's easy for other developers to use? Let's dive right in. Responses In your…

How to Set Up the Scrapy Splash Plugin

Scrapy is great for scraping static web pages with Python, but when it comes to dynamic pages it can only do so much. That's where Selenium usually comes in, but as good as Selenium is, Scrapy still beats it in terms of speed. The web these days is full of dynamic JS-based pages and AJAX. For exactly that scenario, the folks over at scrapy-plugins created scrapy-splash . Scrapy-Splash is a…

Build and Deploy a React App with Sass and Nginx

A couple of days ago (at the time of writing), I started my newest side project. It's a portfolio showcasing my (very very very) amateur photography. It's written in React.js with Sass and I have to say it was extremely enjoyable to work on. Unsurprisingly though, I ran into some issues while deploying to production which, after a lot of head banging against every possible flat surface I…

The Ultimate PostgreSQL Cheat Sheet

So I'd been working with Django, Flask, and Express.js for a while, and my database of choice for pretty much every project had, of course, always been Postgres. What makes these frameworks great (regardless of language) is the ability to use an ORM (Object Relational Mapper) that sits between your code and the DB. It does all the heavy lifting for you and takes care of executing SQL queries…

The Ultimate Remote Development Setup

I'm a programmer. Like most programmers, I use an Apple laptop. They're just the best on the market and the best purchase you can make as a developer. No fanboyism here, just stating facts. They're fast, well built, and durable. I rely on this laptop for all my personal / client work. I run Vagrant boxes, Docker containers on it and all the usual stuff. As a result, I've…

Deploy a Django App with Git

I'm going to make a bold statement: Django replaced Ruby on Rails in the hearts of many developers. With this increase in popularity, we've seen tons of articles, videos, and websites dedicated to setting up Django and creating apps with the framework. Unfortunately, when it comes to deployment, many of these resources only mention heroku or pythonanywhere. While these are excellent…

Useful File Operations in Python

In this short post (spoiler: it's actually quite lengthy), I'm going to walk through a list of useful methods in the os module (which is part of the Python standard library) for handling files and directories. 1. Create a directory This one is pretty straightforward. If you're comfortable with the linux shell, you know that mkdir is the command to use to create directories.…

Mind-Blowing Python Tips and Tricks

A short list of Python tricks that make day-to-day code a little nicer. Nothing too magical, just handy stuff. 0 - Loop over a range of numbers Use range instead of xrange . In Python 3, the former creates an iterator-like object that produces values one at a time, which makes it much more efficient. nums = [ 0 , 2 , 34 , 55 , 32 ] for i in range ( nums ) : print i 1 - Looping backwards Just use…

Mind-Blowing Git Tips for Beginners

As developers, we all (hopefully) use git. It's not extremely hard or time-consuming to get started with it, and you'll surely thank your future self for taking the time to learn it. Ok, that was the cringy intro. Now let's get down to business: what I really want to share in this post is a list of tricks I've learned during the past 2 1/2 years of using git. Some of it…

Don't Be Scared, Switch to Vim

I'm currently sitting at the most boring meetup I've probably ever attended in Delhi. It's about chatbots. I don't care about chatbots, I care about free stickers and pizza. So I'm using this opportunity to open up about a subject that's dear to my heart: vim. I used to believe vim was exclusive to this superior race of developers who gulp coffee like it's water…

Algorithms in Python: Understanding Bubble Sort

Some theory Bubble sort is one of the most commonly known sorting algorithms. The idea is simple: scan a list of items (say integers) sequentially, from left to right, and compare consecutive pairs of elements starting at index 0. Example: my_numbers = [ 92 , 11 , 45 , 2234 , 0 , 7 , 65 ] # 92 is index 0 and the consecutive pairs are # (92,11), (11,45), (45,2234) and so on ... First we compare…

Algorithms in Python: Understanding Quick Sort

Theory Quicksort is a "divide and conquer" type of algorithm. One good thing about it is that the worst case can almost always be avoided by using what's called a randomized version of quicksort (more on that later). The idea of Quicksort is to take an unsorted list and select one element from it called a "pivot". Then the list is rearranged such that all elements greater (in value) than the…