RSSAmplifier

Blog

Ketan Vijayvargiya

Recent content on Ketan Vijayvargiya

ketanvijayvargiya.comRSS feed ↗553 posts

Latest posts

Making coffee in a Moccamaster

Obviously quite simple, the only thing to keep in mind is grind setting on my Baratza Encore: 18-20. I usually keep 19.

CV

Find it here .

3ff79bf3

Last two days, I’ve been working on one of those projects in my homelab which wasn’t technically needed (because the existing solution was more than adequate) but had been lingering in my mind for awhile. Specifically, I had couple of things running in their own containers, one a Wireguard VPN and other a service that relied on that VPN for network connectivity, and the containers were…

5bb21678

On the current state of affairs in my startup journey: Who seems my ICP thus far? A company for which their APIs (externalized or otherwise) need to be operationally healthy for their business success. One possibility is that this is a search problem (like that YC video mentioned). So, I could keep searching and, if I find a few such customers, I could work on making them successful and go from…

Sync SSH public keys from GitHub to rsync.net

rsync.net has documentation on how to manually add SSH keys to their storage server. But it’s too manual for me, so I found a simpler way: curl -s https://github.com/font44.keys | ssh de1682@de1682.rsync.net 'dd of=.ssh/authorized_keys'

Thoughts on how to start building a startup

Eventually, I’ll need to build a product, not a feature. So, something that has multiple layers/features and will eventually be complex. Sales is everything. It’ll be hard, the process will feel foreign and time consuming, but there will be zero success without it. So, the overall process will be something like this: idea validation (probably lightweight, because how much will I even…

Arch LXC on Proxmox

It was surprisingly tricky to setup an Arch LXC on top of Proxmox. Some notes: The latest template is here . And I found that link from the official Arch wiki . I had to enable nesting , before I started the container for the first time. Otherwise, it never seemed to connect to the network. The template doesn’t have OpenSSH in it. So, I had to use a password for the root user during setup…

SFTP based datastore for Proxmox Backup Server

I rent SFTP storage from rsync.net . It took me awhile to figure out how to properly mount it on my Proxmox Backup Server but, in the end, looks quite simple. (This should work for Hetzner Storage Boxes as well.) First, install sshfs or something. Second, put the following in the /etc/fstab file: de1682@de1682.rsync.net:proxmox-backup-server/mnt/datastore/local-1 /mnt/rsyncnet fuse.sshfs…

Migrate Docker data across VMs

I had a large Docker Compose project on a Proxmox LXC and I recently decided to migrate that to a new VM. So, in addition to code, I had to create an exact copy of my Docker volume and non-volume data. Here’s how I did that. First, a few things to note: I used the destination VM to trigger the rsync command. I used sudo on both sides because the files were owned by multiple arbitrary users.…

ACME through Step CA on Proxmox

I recently setup Step CA in my homelab. Proxmox UI allows setting up ACME only through Let’s Encrypt, but apparently you can setup other providers through the command line. So, this is how I went about it. cp /root/root_CA.crt /usr/local/share/ca-certificates/homelab.crt update-ca-certificates # For Proxmox VE pvenode acme account register self-hosted-ca foo@bar --directory…

Step CA: Generate root and intermediate CAs

Update: I (re)(re)setup Step CA in my homelab, hopefully for the last time! The following is from 2024-10-19 with updates from this week’s learnings. I recently (re)setup a Step CA instance in my homelab. By default, the root certificate generated by Step CA has a validity of 10 years, but I wanted that to be longer. So: docker run --rm -it \ -v ~/app-data/step-ca:/home/step…

Now

Work: I currently work in SageMaker HyperPod in AWS, where we enable customers to run large-scale Generative AI training and inferencing workloads on Slurm and Kubernetes. Workout: I row once a week in the beautiful Snohomish river and bike a couple of times per week. I plan to restart top-rope climbing and weight-lifting in the near future. Books: I am reading Mom’s Test and The Stand,…

Learnings from our Europe trip this month

Note : Previous version here . Some cities aren’t stroller friendly. For example, Rome (because of its cobbled streets) or Venice (because of narrow streets and staircased bridges). Still, it’s impractical to travel here without a stroller. Maybe get a light one. Some cities may not have enough train connections between them. (For e.g., Naples to Sorrento.) So, book trains early for…

Ntfy notifications on Proxmox

Here’s how I configured Proxmox (and Proxmox Backup Server) to send notifications to Ntfy through their webhook method. POST URL: https://ntfy.sh/{{ secrets.channel }} Headers: X-Title : {{ title }} Markdown : Yes Priority : low Authorization : Bearer {{ secrets.token }} Body: {{ severity }} {{ message }} Secrets: channel token Here’s a screenshot:

Hung networking hardware in Proxmox

I one day woke up in the morning to the following error on my Proxmox server: Apr 20 00:06:20 pve kernel: e1000e 0000:00:1f.6 eno1: NIC Link is Down Apr 20 00:06:20 pve kernel: vmbr0: port 1(eno1) entered disabled state Apr 20 00:06:23 pve kernel: e1000e 0000:00:1f.6 eno1: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx Apr 20 00:06:23 pve kernel: vmbr0: port 1(eno1) entered blocking…

Break down of Staff+ role

Different aspects of the job: Project delivery. Big picture thinking. Could be both vision or strategy. Mentorship. Different skills they need: Technical skills. Product management. Project management. People skills: how to organize people to work as a team, grow their careers etc. Different archetypes, i.e. style of work they do: Team lead: usually a starting point for a Staff engineer, something…

How to approach the interviews

Speak slowly . Pause before you respond to anything . Story telling tips (for behavioral rounds): STAR technique - very important. In most cases, the technical details (of the situation or actions) don’t matter too much, so no need to delve into those unless cross-questioned. As for actions, try to answer in numbered bullet points: I did 3 things: One, … When asked a question, pause a…

Reverse interviewing

Questions to ask if I am talking to a medium sized company: How do you handle difficult decisions? Can you talk about a situation where you changed your company/product direction because of such discussions? What’s the long term vision? Or are you thinking of one?

Automatic disk decryption on Fedora Workstation

Note : See this for how I played with disk encryption for an external drive on my Raspberry Pi. I recently setup a Fedora machine and (obviously) enabled disk encryption on that. However, that meant that I had to enter a long passphrase every time I rebooted my computer and, in my setup, this was different from my user account. So, I wanted to enable automatic decryption if a USB drive was present…

Official train websites in Italy

As of today, seems like the 2 official sites are: https://www.trenitalia.com/en.html https://www.italotreno.com/en

Fstab with special characters

I wanted to mount a Samba share to my (new) Fedora Workstation machine and that share had some special characters, a ' and a space. Escaping those wasn’t sufficient. Instead, I had to use Ascii octal codes. Here’s what worked in the /etc/fstab file: //10.0.1.179/Ketan \0 47s \0 40Drive /mnt/samba-at-home cifs credentials = /etc/samba/credentials,uid = 1000,gid = 1000 0 0…

Platforms for mock interviews

https://igotanoffer.com/ https://www.hellointerview.com/ https://interviewing.io/ Things to keep in mind: I feel these work well for people interviewing at an SDE-3 or Staff level roles. For more senior roles, such as Senior Staff or Principal, I couldn’t find suitable interviewers at least on the first website above.

Automate SOPS encryption in Git

Note: While the following worked, the entire setup felt fragile. Plus, I realized there was little point in encrypting the source code in my repository, given the repository is hosted locally on my home network where I already have encryption at rest. So, I reverted this stuff after trying it for a few days. Initial setup Ensure the Age private key is available in the right place (i.e.…

Dell R730XD or a similar server

Similar to earlier , I was looking at enterprise servers again. Primarily, R730 or R730XDs. Some notes from that: Don’t get hardware RAID controller as it has bugs. Don’t expect NVMe for booting OS. If you set it to ‘off’ by the ‘Fanspeed offset’, and you enable ‘Maximum exhaust temperature limit: Default (70c)’, it runs really quiet and you can use…

Questions for behavioral interviews

Scope (of my role at current organization). About me, as an individual: Strengths. Growth areas, in terms of technical skills. Growth areas, in terms of leadership skills. Feedback that surprised you. What inspires me. What drains me. Leadership skills: Conflict with teammate. (Could be an example where you changed your mind.) Conflict with cross-functional team. Conflict with a…

Takeaways from latest trip to India

This time, we flew into and out of Delhi to save costs and that was tiring. Especially flying out because, 1st day, we left Ahmedabad at 8 am and, 2nd day, at 4 am for Seattle, so we couldn’t sleep properly for 2 consecutive nights. The Dubai to Seattle leg felt long, so maybe try flying to through another city. So, a flight that reaches Ahmedabad in a single hop but divides the two legs…

NAS build

Case: Mini or micro ATX for sure. Fractal Design or Jonsbo. https://www.wundertech.net/diy-nas-build-guide/#Selecting_Hardware_For_a_DIY_NAS_Build

Data-only eSIMs for traveling

Used https://www.airalo.com/ on our previous trip to Europe and it worked well. Recently found out about https://esimdb.com/ which seems to be an aggregator of prices across multiple providers. Might try that next time.

Side-projects on India trip

As usual, I spent quite some time on side-projects during my ongoing trip to India. Here’s a quick run down: I realized that the firewall I use at home, Opnsense, is a powerful piece of software and I could leverage it more than what I do today. First, I installed Wireguard on it and gradually switched from Tailscale to Wireguard for all self-hosted connections. Well, almost all, because I…

TunnelBroker on Opnsense

I recently got a (free!) IPv6 tunnel from he.net and I set it up on my Opnsense firewall. Here are some links that I found helpful: Official documentation . https://scribe.rip/swlh/ipv6-on-opnsense-router-599a9198aaed https://subnettingpractice.com/ipv6-subnet-calculator.html https://www.niksa.dev/posts/he-ipv6-tunnel/

Goa

I was traveling to Goa for 4 days with my sister and I am now at the airport heading to my next destination. I was excited about the trip before I got here and it turned out good enough. A few things on my mind: Like last time, we headed straight to the northern part of Goa. We stayed in Seolim but it wasn’t north enough. Next time, I should try to stay near, say, near Morjim or Ashwem.…

Research on Opnsense hardware

Today, I run Opnsense in a VM on my Proxmox node. That creates issues once in awhile when my fiddling with the Proxmox server brings down internet for the whole home. So, I was looking online on what dedicated machine I could purchase to run Opnsense. Here’s what I found: Qotom looks like a good choice, kind of like a cheaper yet similar version of Protectli. I found 2 nice versions. Both…

Would a thought exercise like "10 years from now" work?

I saw a video recently that suggested the following: Write up a story about your life 5 years from now with the understanding that you cannot possibly fail It’s pitch was that such a story will help figure out the first steps, however small, you need to take to move towards your goals.

First steps on a new Proxmox server

Enable management interface on LAN , in case I (still) have a virtualized firewall. ZFS: Enable encryption at rest . Limit memory usage . Enable notifications .

How to enable, and then migrate to, native ZFS encryption in Proxmox

Introduction My use case: Add encryption-at-rest to an existing unencrypted Proxmox host. Encryption only for LXC and VM data. None for the root installation. Automatic decryption on server startup (and not requiring me to enter any encryption key). It took me awhile to figure everything out but eventually, as with most ZFS stuff, things turned out fairly straightforward. Pre-requisites Verify the…

Recommended BIOS setup

Verify and, if required, enable hardware support for encryption. Configure machine to start up whenever power is restored (after an outage etc.).

Dell desktop BIOS upgrade

It wasn’t exactly rocket science but I updated BIOS for the first time today. High level steps for my Dell desktop: https://www.dell.com/support/home/en-us -> Enter “service tag” -> “Drivers & Downloads” -> Choose “Operating system” as “BIOS”. Make sure the BIOS I want to install doesn’t require an older version to be installed first. Put…

Mount a remote filesystem over SSH

Install SSHFS. Add something like the following to the /etc/fstab file. (Here, you can put more specific path after the colon in the first term.) de1682@de1682.rsync.net:foo /mnt/rsync fuse.sshfs noauto,x-systemd.automount,_netdev,IdentityFile=/root/.ssh/id_ed25519,allow_other,reconnect 0 0 Restart the computer. If you aren’t able to use this as a datastore in Proxmox Backup Server, try this…

Proxmox Backup Server in the cloud

Spinning up PBS in the cloud seems fairly easy: Add deb http://download.proxmox.com/debian/pbs bookworm pbs-no-subscription to the /etc/apt/sources.list file. apt install proxmox-backup-server . (Not proxmox-backup as this requires ZFS etc.) That’s it?

Setting up mailcow

I’ve been interested in setting up a self-hosted email server for quite sometime. I initially tried Mail-in-a-Box, then NixOS Mailserver and I recently moved to mailcow . Some setup notes for my future self: I used a plain Debian instance on Hetzner. Usually, I create a non-root user and disable password-based SSH, but mailcow wants to run everything as root and so I didn’t bother. I…

Validate snapshots on a Restic Rest Server

I setup a Restic Rest Server and this is how I can validte snapshots for it: export RESTIC_REST_USERNAME = a export RESTIC_REST_PASSWORD = b export RESTIC_PASSWORD = c export RESTIC_REPOSITORY = 'rest:https://restic.a.ketanvijayvargiya.com/a' restic snapshots

Optimal bond duration

How do you pick the right bonds? (Assuming my understanding from random internet forums is accurate) One important aspect is: match bond duration with your investment horizon . For e.g., if you want to invest for the long term (say, 20-30 years down the line), then pick bonds that have ultra-long duration. Also, the duration of a bond fund will remain the same even if your investment horizon…

Revocable trust

I recently worked with an attorney to setup a revocable trust, here in Washington. Some notes from that: What happens when someone dies and leaves their spouse behind? There is portability or unlimited transfer to spouse at the federal level, i.e. the estate tax limit of the latter automatically doubles. You need a credit shelter trust to achieve the same in Washington. 3 roles in a trust: keep in…

Unified AI & ML runtime: How SageMaker Distribution aims to radically simplify ML development

Event : Community Over Code . Venue : Grand Hyatt Denver, Denver, Colorado. See slides here Abstract: Managing Machine Learning environments is hard: “Where do I install package X from? If I install Y, will it break my current environment or change the package closure in any way? How do I share my code and the corresponding environment with a colleague in a reproducible way? If my code runs…

About

I am Ketan Vijayvargiya. I am a Principal Engineer at work. That practically means, at least at my current company, that I am some part each of the following: tech lead, software architect, product manager, security engineer and mentor. You can find my full CV here . Outside work, I self-host a bunch of services for personal use, so that makes me part sysadmin as well. On non-technical front, I…

Static site, Nix flakes and GitLab

I was preparing a technical talk but later discarded it because I decided it wouldn’t have enough depth. Following are my notes from that. Title: Over-engineer your blog with Nix flakes, IaC (i.e. infrastructure as code) and CI/CD Description: Imagine you have a simple system that works with a handful of CLI commands and a few clicks on a cloud provider’s console. What happens if you…

Orphan directory or datastore in Proxmox

Couple of times, I had an orphan Directory in Proxmox. The solution is simply to remove the corresponding file in /etc/systemd/system . See this . Apparently, this also works for orphan Datastores in Proxmox Backup Server.

Limit ZFS's memory usage

It’s fairly easy to limit ZFS’s overall memory usage on Proxmox. Add the following to /etc/modprobe.d/zfs.conf to allocate maximum 16 GB. (Here, 16 * 2^30 = 17179869184 .) options zfs zfs_arc_max = 17179869184 See this .

Convert ZFS RAID0 to mirror and vice versa

ZFS makes it so easy to convert striping to mirroring or vice versa: # Assume 'foo' already existed and 'bar' is new zpool attach spinning-rust /dev/disk/by-id/foo /dev/disk/by-id/bar zpool detach spinning-rust /dev/disk/by-id/bar No need to initialize the drives or anything - just pass the raw disks.

Enterprise-grade server hardware

I was recently contemplating on getting a used enterprise server. And, unlike my previous attempts, I made more progress this time in narrowing down what kind of hardware to buy. So, here are some notes from that: Minimum 2U to keep noise down (and even then it’ll likely be noisy enough to keep in an office). 4Us can be expensive. I may need a closed (but ventilated?) rack to keep the noise…