
info 23 • Systems and Backend Engineer • ENGLISH / हिंदी
location_on Bangalore, India
I’m a final-year Computer Science undergrad who builds backend systems that are fast, boring to operate, and interesting to build.
Most of my time goes writing code and shipping straight to production.
What I work with:
Backend Engineer Intern at SuperDash
Bengaluru, Karnataka · June 2025 – Present
Owning voice agent infrastructure end-to-end — edge ML models for interruption detection, de-noising, and forced alignment; self-hosted TTS at sub-200ms; WebSocket refactor that cut call latency by 80%. Also designed and shipped an event-driven automation pipeline as a core product feature, from client co-design through production rollout.
Backend Engineer Intern at Superdash
Bengaluru, Karnataka · June 2025 – Present
Python Developer Intern at Weya.ai
Noida, Uttar Pradesh · Dec 2024 – Feb 2025
Summer Research Intern at NIT Jalandhar
Jalandhar, Punjab · May 2024 – July 2024
star 250+ stars across GitHub - here are a few worth calling out.
Spectacle OCR Screenshot
star 89
A C++/Qt desktop utility for Linux that integrates Tesseract OCR and ZXing for low-latency text extraction and QR decoding giving native-performance system integration, no Electron in sight.
DeadEnv
star 15 • Cross-platform CLI secrets manager in Go
Replaces plaintext .env files with OS-native keychain storage (cgo/macOS, libsecret/Linux, WinCred/Windows) behind biometric auth. Encrypted exports use AES-256-GCM + Argon2id, with deliberate error collapsing to prevent oracle attacks and a git audit log baked in.
Weekly commits
star 27 • GNOME Extension to visualise your weekly GitHub commits in the top bar.
Weekly Commits transforms your GitHub activity into a beautiful visual representation directly in your GNOME Shell top bar. Stay motivated and track your coding consistency at a glance!
Blogger & Backend Developer at Let’s Code
Remote, Part Time · Feb 2025 – Present
Writing technical blogs on backend systems, Linux, and GenAI. Also shipped an AI interview simulator and a resume analyzer that are both live and in use. Writing code and words, occasionally at the same time.
AIML Club · Google Developer Groups OnCampus
April 2023 – Present
Context I have this Ricoh SP 200 printer, a simple and cheap black-and-white laser printer. The issue is that the official drivers are only available for Windows. CUPS on Linux is excellent and supports most printers out of the box, so naturally I tried everything: foo2zjs, OpenPrinting, HPLIP, Gutenprint. Nothing. This printer is truly one of a kind in the worst possible way. My only option was a Windows VM with USB passthrough, which worked but required booting into a VM just to print something. So I decided to take matters into my own hands and write the driver myself. How hard could it be?
I have been running Linux on my HP Pavilion Plus Laptop 14-eh0xxx since 2022, and inevitably, as with most Linux installations, some things will not work perfectly with your hardware. Initially there were a few rough edges, like the fingerprint scanner and the mute LED on the function key. The mute button itself worked, but the small orange LED that should indicate the muted state did not. My knowledge of how to fix these kinds of issues was very limited back then, so I just decided to live with it.
A little backstory So for those of you who don’t know, I have been working as a Backend and AI engineer at Superdash for two weeks at the time I am writing this. And so far, I have worked on voice based AI agents and made them sound more natural. And, I’m sharing whatever I have scratched my head for. You can use this as a extra reading material while building anything related to voice based communication over the internet.
Many of you must have worked with AWS or GCP at some point, and even if you were scared of the terminals, you might have been forced to use it. And you also must have accessed the terminal of your service from your local terminal. But wait, how is that possible? How can you access the console of another system from your own? The answer: SSH So, what SSH actually is, and how can you use it effectively without just copy-pasting commands from the internet? Let’s explore that in this blog post.
As a computer science student, you’ve likely encountered the terms “open source software” or “free software” while working on projects. But what exactly does open source mean, and why should it matter to you? Let’s explore that in this post. What Does Open Source Stand For? Technically, open source software (OSS) refers to software whose source code is publicly available, allowing anyone to view, modify, and redistribute it freely, often under specific open source licenses . However, open source is more than just a technical standard; it’s a philosophy. It benefits a wide range of people, not just programmers – even if you’ve never written a line of code, you likely benefit from OSS every day.

Every developer I know has a .env file they shouldn’t. Maybe it has a production API key. Maybe it’s tracked in git with a .gitignore entry that someone forgot to add. Maybe it’s just sitting there, world-readable, on a shared dev machine. We all know it’s bad. We keep doing it anyway because there’s no real alternative that doesn’t add significant friction. deadenv is my attempt to fix that. It’s a cross-platform CLI tool written in Go that stores secrets in the OS-native keychain: Keychain on macOS, libsecret/GNOME Keyring on Linux, Credential Manager on Windows, and injects them into subprocesses at runtime. Secrets never touch the filesystem in plaintext.

Weekly Commits GNOME Extension — Visualize Your GitHub Activity Right from the Top Bar Why I Built This As developers, we spend hours coding, committing, and pushing changes — but rarely do we take a moment to reflect on our consistency. While GitHub contribution graphs are nice, they live on a webpage, buried behind a few clicks. I wanted something more immediate and minimal. I wanted to see my GitHub commit activity at a glance — right from my GNOME desktop environment. So I built Weekly Commits, a GNOME Shell extension that brings your GitHub commit stats to your system’s top bar.

This is a simple, customizable shell script designed to help users back up specific parts of their home directory to an external drive. It leverages the power of the rsync command for efficient file synchronization. GitHub Repository: funinkina/rsync-backup-script Since it is just a script, you can just copy from here #!/bin/bash # List the FOLDER NAMES within your home directory you want to back up. # Do NOT include the full path, just the name relative to $HOME. # Example: SOURCE_DIRS=("Documents" "Pictures" "Projects" ".config/some_app") SOURCE_DIRS=( "Academics" "assets" "Codes" "Documents" "dotfiles" "Pictures" "Hackathons" "Notes" "Projects" ".mozilla" ".ssh" # Add more directories here... # ".config" # Be careful with large hidden dirs, they might contain caches too # ".local/share/some_app" # Example of nested path ) # --- !!! IMPORTANT: External Disk Path !!! --- # Example: DEST_BASE_DIR="/media/your_username/MyExternalUSB/Backups" # Ensure this directory exists and you have write permissions. DEST_BASE_DIR="/mnt" # <<< --- CHANGE THIS --- # --- !!! IMPORTANT: Destination Subfolder Name !!! --- # Define the name of the FOLDER *INSIDE* DEST_BASE_DIR where this specific backup will go. # Leave empty to use the default (current date and time). # Example 1 (Fixed Name): DEST_SUBFOLDER_NAME="MyHomeBackup" # Example 2 (Date Based): DEST_SUBFOLDER_NAME="backup_$(date +%Y-%m-%d)" # Default (Date & Time): _DEFAULT_SUBFOLDER_NAME="backup_$(date +%Y-%m-%d_%H-%M-%S)" DEST_SUBFOLDER_NAME="archlinux_backup" # <<< --- SET YOUR DESIRED FOLDER NAME HERE, OR LEAVE EMPTY FOR DEFAULT # List of directory NAMES to exclude. These will be excluded wherever they appear. EXCLUDE_DIRS=( "node_modules" "venv" ".venv" "env" "__pycache__" "Cache" "cache" ".cache" "build" "dist" ".gradle" "target" ".DS_Store" "Thumbs.db" ".Trash" "*-cache" ".npm" ".yarn" ) if [[ -z "$DEST_SUBFOLDER_NAME" ]]; then DEST_SUBFOLDER_NAME="$_DEFAULT_SUBFOLDER_NAME" echo "INFO: Using default destination subfolder name: $DEST_SUBFOLDER_NAME" fi FULL_DEST_PATH="$DEST_BASE_DIR/$DEST_SUBFOLDER_NAME" if [[ "$DEST_BASE_DIR" == "/path/to/your/external/disk/backup_area" ]] || [[ -z "$DEST_BASE_DIR" ]]; then echo "ERROR: Please configure the 'DEST_BASE_DIR' variable in this script." exit 1 fi if [ ! -d "$DEST_BASE_DIR" ]; then echo "ERROR: Base destination directory '$DEST_BASE_DIR' not found." echo "Please ensure the external disk is mounted and the path is correct." exit 1 fi if [ ! -w "$DEST_BASE_DIR" ]; then echo "ERROR: Base destination directory '$DEST_BASE_DIR' is not writable." echo "Please check permissions." exit 1 fi RSYNC_EXCLUDES=() for dir in "${EXCLUDE_DIRS[@]}"; do RSYNC_EXCLUDES+=(--exclude="$dir") done RSYNC_OPTS=(-av --progress --delete "${RSYNC_EXCLUDES[@]}") # RSYNC_OPTS=(-av --progress "${RSYNC_EXCLUDES[@]}") # Default: Safer without --delete echo "Attempting to create destination folder: $FULL_DEST_PATH" mkdir -p "$FULL_DEST_PATH" if [ $? -ne 0 ]; then echo "ERROR: Failed to create destination folder '$FULL_DEST_PATH'." echo "Please check permissions and path validity." exit 1 fi echo "Destination folder ready." echo "===========================================" echo "Starting Backup" echo "Source Base: $HOME" echo "Destination: $FULL_DEST_PATH" echo "Excluded Directories: ${EXCLUDE_DIRS[*]}" echo "===========================================" echo errors=0 processed_count=0 DEST_PARENT_FOR_RSYNC="$FULL_DEST_PATH/" for src_dir in "${SOURCE_DIRS[@]}"; do SOURCE_PATH="$HOME/$src_dir" echo "--- Processing: '$src_dir' ---" if [ ! -e "$SOURCE_PATH" ]; then echo "WARNING: Source '$SOURCE_PATH' does not exist. Skipping." echo "--------------------------------------" continue fi echo "Running: rsync ${RSYNC_OPTS[*]} \"$SOURCE_PATH\" \"$DEST_PARENT_FOR_RSYNC\"" rsync "${RSYNC_OPTS[@]}" "$SOURCE_PATH" "$DEST_PARENT_FOR_RSYNC" rsync_exit_status=$? if [ $rsync_exit_status -ne 0 ]; then echo "ERROR: rsync failed for '$SOURCE_PATH' with exit code $rsync_exit_status." errors=$((errors + 1)) else echo "Successfully processed '$src_dir'." processed_count=$((processed_count + 1)) fi echo "--------------------------------------" echo done echo "===========================================" echo "Backup Finished" if [ $errors -gt 0 ]; then echo "WARNING: Encountered $errors errors during backup." echo "Processed $processed_count directories successfully before errors or completion." echo "Backup located at: $FULL_DEST_PATH" exit 1 else echo "All specified source directories ($processed_count) processed successfully." echo "Backup complete in: $FULL_DEST_PATH" exit 0 fi echo "===========================================" How it is built The project is implemented as a standard shell script. It utilizes the command-line utility rsync as its core engine for performing the backup operations, known for its efficiency in handling file transfers and synchronizations. The script is designed to be highly customizable by directly editing its contents, facilitated by being “well commented” to guide users in modifying parameters like source folders, excluded paths, and the backup destination.

QueryMD is an AI-powered application designed to help users interact with and query their personal markdown notes. It allows you to ask questions and search your notes using natural language, leveraging the power of large language models. GitHub Repository: funinkina/QueryMD Main usage of this? If you are like me, who writes all their notes using markdown that is locally stored, this tool will be super handy. I use it frequently to manage and search some obscure reference I wrote somewhere.

Bloop is a web application designed to analyze exported WhatsApp chat files, offering insights into conversation dynamics, popular words, user activity, and more. It provides a comprehensive look into your chat history. Try it live at: bloopit.vercel.app The GitHub Repos: Backend Frontend How it is built The backend of Bloop is built with GoLang using the Gin framework. GoLang was chosen for its speed and lightweight nature. Gin is utilized for its high performance and efficiency in handling a large number of requests, making the server suitable for potentially high-traffic scenarios. The frontend is developed using Next.js, a popular React framework, chosen for its capabilities in building fast, scalable, and SEO-friendly web applications.

Spectacle OCR Screenshot is a straightforward Qt application designed for the KDE desktop environment. It integrates seamlessly with KDE’s native Spectacle screenshot tool to enable users to quickly extract text and decode QR codes directly from captured screen regions. GitHub Repository: funinkina/spectacle-ocr-screenshot Why I made this? Oftentimes I needed to copy a error or debug message from the screen but it won’t be in a nice text box, so i decided to make this simple utility to do that for me. Basically the same tool as funinkina/Gnome-OCR-Screenshot but for KDE desktop.