Tyagi // Engineering Log

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_flags in platformio.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_SECRET falls 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 Semantics wrapping — 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:

ProjectOriginal approach2026 upgrade path
Smart Irrigation IoTSVM on cloudTFLite Micro on-device, MQTT transport
AI Financial ChatbotTF-based NLPRAG pipeline (LangChain + embeddings)
EvalSheetOCR + NLTK similarityVision-language model (GPT-4V or Gemini)
CSXIIP School AdminTkinter + raw MySQLRefine.dev or AppSmith on top of a REST API
OMR AutomationOpenCV heuristicsRoboflow for training, Vision AI for detection
Skill Matrix LMSCustom pipelineWhisper + Coqui TTS (fully local, no API cost)

Last updated: 2026-06-30. See the project portfolio for write-ups on the completed work.

Share: X LinkedIn