Tech Debt
Per-project tech debt backlog and what I want to build next — honest engineering notes on what's incomplete and where I'm taking these projects.
An engineering-honest view of where my personal projects stand — what’s deliberately cut, what’s accumulating debt, and what each project could become with more investment.
This is a living document. It’s updated as projects evolve.
Why publish this?
Because “my projects are production-ready” is rarely true, and I’d rather be honest about the gap between what’s built and what’s production-hardened. Shipping a working proof-of-concept is different from shipping a product. The debt list below is how I track that gap.
Open debt by project
Smart Irrigation IoT
Status: Working end-to-end · ships to hardware
- Firebase API key is hardcoded in firmware — needs build-time env injection (
build_flagsinplatformio.ini) - Single-user Firebase structure — one device per account; multi-field deployment requires schema redesign
- SVM model retrained manually — no pipeline to retrain on new field data without code changes
Next: TFLite micro model to replace SVM (runs on-device, no cloud round-trip for predictions); MQTT instead of Firebase for lower latency and offline tolerance.
TrueShot (Image Validator API)
Status: Prototype — auth commented out, no live endpoint
- JWT auth middleware is wired but commented out in
server.js— no endpoint is actually protected JWT_SECRETfalls back to a hardcoded string if env var is missing — should crash on missing config instead- No frontend — the API works but there’s nothing to demo without Postman
Next: Wire auth middleware, build a minimal demo UI (upload image → validation result), containerize with Docker.
EvalSheet (Handwritten Answer Checker)
Status: Prototype — OCR pipeline works, not production-hardened
- Running
debug=True— needs Gunicorn + proper WSGI for any non-local use - Similarity threshold for grading is a hardcoded heuristic — needs validation against real exam data
- No test coverage for the OCR → grading pipeline
Next: Swap Google Vision dependency for a self-hosted OCR option (Tesseract or PaddleOCR); benchmark grading accuracy on a real answer-sheet dataset.
ENTHRAL.IN Product Data Change Detector
Status: Working — ran in production, Windows-only
- Uses
os.startfile()for opening files — Windows-only, breaks on Linux/macOS - Pricing formula (12% + 100) hardcoded — changing supplier margin requires code edit
- All file paths hardcoded — no config file
Next: Config-driven pricing rules via YAML; cross-platform file handling; supplier-abstraction layer to support multiple data sources.
Blockchain NGO Donation Tracker
Status: Finished · needs testnet migration
- Deployed on Goerli testnet — Goerli is deprecated, needs migration to Sepolia
- No multi-sig protection on payout transactions — a single compromised key can drain funds
- No frontend UX for reviewing donation history beyond raw transaction hashes
Next: Sepolia migration, multi-sig payout flow (Gnosis Safe), donation history UI.
OMR Sheet Reading Automation
Status: Working · core algorithm is vendored
- Core OMR detection algorithm is from an open-source library — README doesn’t document this attribution
- No unit tests for edge cases (torn sheets, partial fills, multiple marks)
- Hardcoded sheet template — doesn’t generalize to different question counts or answer formats
Next: Write original algorithm or clearly document vendored attribution; parameterize sheet template via config.
image_hotspot Flutter Package
Status: Finished · published on pub.dev
- No
Semanticswrapping — hotspot widgets are not accessible to screen readers - No animation support for hotspot appearance/disappearance
- Test coverage is minimal — most edge cases untested
Next: Add Semantics wrapper, animation parameter, increase test coverage for pub points.
NO-CODE ML Environment
Status: Working · proof-of-concept scope
- Running
debug=True— same issue as EvalSheet - No dataset validation before model training — bad inputs silently produce bad models
- No model versioning — retraining overwrites the previous model
Next: Production WSGI, input validation, model registry with version tracking.
NMOLD Inventory Redevelopment
Status: Prototype · not end-to-end yet
- Image recognition hook exists but isn’t fully integrated — manual entry still required
- No error handling for failed Express → MongoDB writes
- Flutter app and Express backend not containerized — deployment is manual
Next: Complete image recognition pipeline, containerize with Docker Compose, deploy backend on Railway free tier.
Crickiaa (Gully Cricket App)
Status: Scaffold · UI only
- No business logic — scoring, match state, and leaderboard are all missing
- UI was built against a design but not connected to any data layer
Next: Implement match state machine (innings, overs, wickets), add Firebase for live score sync, basic leaderboard.
Skill Matrix LMS
Status: Scaffold · pipeline not working end-to-end
- Audio extraction → TTS → dub loop doesn’t produce usable output yet
- No subtitle export format (SRT/VTT)
- Tight coupling to one specific video format/language pair
Next: Wire the full pipeline using Whisper (local, free) + Coqui TTS; add SRT export; test with a real educational video.
Advancement opportunities (2026 framing)
Projects I built 1–3 years ago that could be significantly leveled up with current tools:
| Project | Original approach | 2026 upgrade path |
|---|---|---|
| Smart Irrigation IoT | SVM on cloud | TFLite Micro on-device, MQTT transport |
| AI Financial Chatbot | TF-based NLP | RAG pipeline (LangChain + embeddings) |
| EvalSheet | OCR + NLTK similarity | Vision-language model (GPT-4V or Gemini) |
| CSXIIP School Admin | Tkinter + raw MySQL | Refine.dev or AppSmith on top of a REST API |
| OMR Automation | OpenCV heuristics | Roboflow for training, Vision AI for detection |
| Skill Matrix LMS | Custom pipeline | Whisper + Coqui TTS (fully local, no API cost) |
Last updated: 2026-06-30. See the project portfolio for write-ups on the completed work.