Arogya-Sathi
Offline-capable multilingual AI healthcare platform • Jan 2025 – Jun 2025
Symptom checking, X-ray fracture detection, prescription summarization and a wellness chatbot, running fully offline on quantized models, demonstrated on a Raspberry Pi. A deterministic rule-based drug-interaction and crisis-detection safety layer sits underneath and the LLM cannot override it. A 62-case labeled evaluation harness scores those safety layers and runs as a CI merge gate at recall 1.00; building it found a real missed self-harm disclosure. A LangGraph pipeline turns an uploaded medical report into a plain-language explanation in the patient's own language, with a self-verification loop, and requests are routed across local Ollama models. Third place, college final-year showcase.
- Crisis detection: recall 1.00 / precision 0.93
- Emergency: 1.00 / 1.00
- Drug screening: 1.00 / 1.00
LangGraphOllamaQuantized modelsEvaluation harnessCI gateRaspberry Pi
Audier
Private reader and audiobook player for Linux
Reads your own books aloud in a neural voice, with follow-along highlighting and OCR for scanned pages. Everything runs locally; nothing is uploaded. Released as an AppImage, .deb and tarball.
- 202 tests
- v1.0.0 released
- Runs fully offline
FlutterDartPiper TTSTesseract OCR
agentic-devops
AI-powered CI/CD pipeline generator and monitor
Generates and monitors CI/CD pipelines for GitHub and GitLab repositories.
CI/CDGitHubGitLabAgents
pybridge.ai
AI access from a phone
Routes AI access across WhatsApp, Telegram and email so it can be driven from a phone.
PythonMessagingLLM integration
Audio Deepfake Detection
Synthetic speech detection
Flags AI-synthesized or cloned speech.
- AUC 0.957 ±0.015, leave-source-out 5-fold GroupKFold
- Brier 0.074 calibrated, against 0.264 for the classical baseline
- Per-artifact recall reported separately, 0.79 to 0.98
PyTorchAudioClassification
LLM Terminal
Terminal-based LLM assistant
A lightweight terminal-based assistant for working with LLMs from the command line.
PythonCLILLM integration
Knotes Central
Student resource platform
A student resource platform, adopted across 12+ departments.
Web platform
openplay
Open-source screen casting in Rust
Casts a screen to AirPlay and Miracast receivers with no proprietary software. AirPlay HAP pairing, FairPlay, RTSP negotiation and Wi-Fi Direct implemented from scratch in Rust.
- 11-crate Cargo workspace
- 8 crates with integration tests
RustGStreamerWebRTCmDNS
universal-converter
File conversion with multi-hop routing
Finds a conversion path across converters when no direct one exists, using graph search over the registry. Audits which conversions actually work on the current machine instead of advertising formats it cannot handle.
- 232 conversion pairs
- Multi-hop routing via graph search
PythonffmpegPillowpandas
MP3 Studio
Desktop MP3 tag, artwork and EQ editor
Edits MP3 tags, fetches album art and lyrics, and applies a five-band equaliser across a batch. Non-destructive: EQ is applied only on export. Packaged for the Snap Store.
- Five-band EQ with presets
- Batch queue and bulk export
PythonTkinterpydubmutagen
World Monitor, open-source contribution
Merged upstream PR, not my project
A contribution, not a project of mine. Added an expandable price chart to the markets panel of a 330k-line TypeScript intelligence dashboard maintained by Elie Habib, and fixed a dev proxy path bug. Merged as PR #5459.
- PR #5459 merged
- +892 / −39 across 37 files
TypeScriptVitedeck.glOpen source
Cyclomatic Complexity, Clang plugin
Compiler plugin measuring control-flow complexity per function • Aug 2026
A Clang plugin that reports the cyclomatic complexity of every function in the file being compiled. It loads into the compiler itself, so it sees the code after preprocessing, with the real include paths and feature flags, rather than reparsing text. It walks the AST instead of building a control-flow graph, which works because M = E − N + 2P collapses to decision points plus one for a single function. It analyzes C and C++ written for GCC as well as Clang, including the GNU extensions real codebases use: statement expressions, the binary conditional with an omitted operand, computed goto, case ranges and __attribute__. Originally a 2024 college project written to understand how a compiler represents code once it stops being text; rebuilt in 2026 for LLVM 18, which meant fixing four counting errors the original had, among them treating a switch as one decision rather than one per case, and folding a lambda's branches into its enclosing function.
- 15 tests, all passing
- LLVM 18, C and C++
C++ClangLLVMASTCompilers
Ansible community.general, open-source contribution
Merged upstream bug fix, not my project • Aug 2026
An open-source contribution rather than a project of mine. community.general is Ansible's largest community collection, depended on by a very large number of production automation setups. The snap module crashed with an IndexError instead of reporting a missing snap, because `snap info` reports that condition two different ways: a warning on stdout with return code 0 when several snaps are queried, and an error on stderr with return code 1 when only one is. The parser matched only the first form, so the single-snap case fell through to code that indexed an empty result. Pull request 12570, merged August 2026, handles both forms and fixes the reported issue.
- PR #12570 merged
- +59 / −2 across 3 files
PythonAnsibleOpen sourceBug fix