Satya Prakash Dahal · Pokhara, Nepal

Software engineer building web scrapers, data pipelines and MCP tooling for AI agents. Outside work I contribute to open source, with fixes and features merged upstream.

Now
Software Engineer at JyabaSince December 2025
In production
110+ Scrapy spidersRetail, jobs, real estate, finance
Upstream
Merged into KDE PlasmaBikram Sambat calendar, 6.8

Experience

Software Engineer · Jyaba

Dec 2025 — nowPokhara, Nepal

I work on the data side: getting information off the web reliably and into a shape other systems — and AI agents — can use.

  • Write production Scrapy spiders day to day: 110+ so far, across retail, reviews, jobs, real estate, finance and research sites. API-first, with a browser only when needed.
  • Built an agent pipeline that turns a URL into a working Scrapy spider.
  • Wrote MCP servers and extended Chrome DevTools MCP for AI agents.
  • Built a layered data pipeline on S3 and PostgreSQL, with LLM extraction.
  • Rebuilt contact extraction for a legal-PDF service, with OCR for scanned pages.
  • Build and package a patched Chromium for Scrapy and Playwright.
  • Python
  • Scrapy
  • Playwright
  • MCP
  • Chromium
  • PostgreSQL
  • AWS S3
  • Jenkins
  • FastAPI
  • Docker

Freelance web scraper · Omnimart

Dec 2021 — Feb 2022Remote

My first paid scraping job: stocking a Belgian online grocery store with products from three supermarket chains.

  • Scraped about 20,000 products, with prices, images, descriptions and categories, into the store’s import format.
  • Matched scraped items to the store’s existing catalogue and set prices from the source plus a fixed margin.
  • Python
  • Requests
  • BeautifulSoup

Open source

Merged  KDE Plasma 6.8 · 1 Sep 2026

Bikram Sambat support for Plasma’s alternate calendar

Plasma’s clock could show Chinese, Hebrew, Islamic and Ethiopian dates — but not the official calendar of Nepal. I wrote the C++/Qt provider that adds it: a century of government-published month lengths (BS 2000–2099) as compile-time tables, a fallback for dates outside them, and Devanagari labels.

Reviewed and merged by Nate Graham. It closes a feature request open since February 2025 and ships to every Plasma 6.8 user.

Projects

Things I’ve built, from face matching to terminal games.

Picatu

Find yourself in event photos from a single selfie. A team project where I built the face-recognition service.

Read moreShow less
  • A team of three. My part was the recognition service: a Flask API with Celery workers on Redis, called by the team’s Node.js gateway.
  • Uploaded event photos are encoded by a multithreaded C++17 program I wrote on Dlib’s ResNet face model, built against CUDA. Threads share a pool of model instances, and each photo gets a 128-number face descriptor.
  • A guest’s selfie is encoded once and compared against every photo in the event. A distance of 0.6 or less counts as a match.
  • Python
  • Flask
  • C++
  • Dlib
  • Celery

The Chrome Dino runner for the terminal, in C++17 with no libraries: just termios and ANSI escape codes.

Read moreShow less
  • Runs in any POSIX terminal, down to a bare Linux virtual console.
  • Asks the terminal if it speaks the Kitty keyboard protocol. If it does, ducking uses real key-release events; if not, a tunable key-repeat timer.
  • Sprites are drawn as ASCII art and compiled by a small Python script into ANSI cursor-skip strings and collision masks, so hits are exact to the character.
  • Delta-time game loop with rising speed. Pauses with a warning when the window gets too small, and always restores the terminal on exit.
  • Unicode by default, with an ASCII-only mode for consoles without it.
  • Packaged as an RPM from a spec file in the repo and published on Fedora COPR, so it installs with dnf install termrex. Elsewhere it builds with plain make on Linux, macOS and BSD.
  • C++
  • Linux
  • Fedora

The Plasma widget that came before the upstream work, published on the KDE Store. Month picker, holidays, and tithi calculated from sun and moon longitudes, with no network calls.

  • QML
  • JavaScript
  • KDE Plasma

Opens any KDE System Settings page straight from the Albert launcher, including the hidden ones Albert skips by default.

Read moreShow less
  • Finds settings modules through the Desktop Entry spec in the standard application directories.
  • Filters them by session type, so X11-only or Wayland-only pages don’t show up in the wrong one.
  • Type KDE to list them, or search globally; it can also match a module’s command, like kcm_s.
  • C++
  • Qt
  • KDE Plasma

A typing test for the terminal: live colour feedback, WPM, raw speed, accuracy, and a confidence score that tracks backspaces.

  • C++
  • Linux

TriNetra

Violence detection for home CCTV: an AI service watches live camera feeds, records the moment something happens and alerts the owner’s phone.

Read moreShow less
  • A team of three. I built the backend: FastAPI services for auth, cameras and AI behind an API gateway, on PostgreSQL, all run with Docker Compose.
  • The AI service reads each camera’s RTSP stream with OpenCV and classifies sequences of frames with a MobileNet + BiLSTM model in TensorFlow.
  • Once violence holds for 30 frames it saves the clip, riding out short gaps so one incident stays one video, then stores a notification and shares the clip with the app.
  • Python
  • FastAPI
  • TensorFlow
  • OpenCV
  • PostgreSQL
  • Docker

Toolbox

Scraping & automation

  • Scrapy
  • Playwright
  • Selenium
  • Zendriver
  • BeautifulSoup
  • HTTPX

Data & backend

  • Python
  • FastAPI
  • REST
  • WebSockets
  • SQLAlchemy
  • PostgreSQL
  • MySQL

AI agents

  • MCP servers
  • Agent browser automation

Systems & desktop

  • C++
  • Chromium (source builds)
  • Qt
  • KDE Frameworks
  • JavaScript
  • Emacs Lisp

Infrastructure

  • Linux
  • Docker
  • Jenkins
  • AWS S3
  • Git
  • Bash
  • CMake

Community

  • Founding member, GCES Linux Community

    Gandaki College

    Started a student community to get more people onto Linux and contributing to open source.

  • Mentor, Linux Training Program

    Dec 2023 — Jan 2024National Innovation Centre

    Mentored the two-week program at the centre’s ICT Lab in Pokhara: Linux fundamentals, the terminal and basic system administration.

  • 1st runner-up, 9th GCES IT Expo

    2023Gandaki College

    KeySecure — a tool that protects Linux machines from keyloggers.

Education

Bachelor of Engineering, Software Engineering Gandaki College of Engineering and Science

2020 — 2025Pokhara, Nepal

Coursework in data structures and algorithms, databases, operating systems and machine learning.

Have a project in mind?

Scraping, data pipelines or agent tooling: tell me what you’re working on.

Or send a message