AI engineering / Systems / Learning in public

From messy data
to useful AI.

I'm Dinesh. I build with Python, explore how models work, and connect the pieces that turn an experiment into a working system.

WORKING WITH Python + LinuxEXPLORING Document AI + PyTorchBUILDING TOWARD AI + Infrastructure
01 / SELECTED WORK

Build. Measure. Understand.

Projects at the intersection of machine learning and the systems around it.

PROJECT / 001Built · Document AI

Turning scanned documents into structured data.

A pharmaceutical document pipeline that combines image preprocessing, OCR, checkbox reading, and schema-based extraction. A retrieval layer answers questions over regulatory documents with cited sources.

PythonOpenCVTesseract / EasyOCRLangChainPydantic
Inside the project

I used OpenCV to prepare the scans, Tesseract and EasyOCR to read the text, and OMR to interpret checkboxes. LangChain structured output was checked against Pydantic schemas, with a regex baseline evaluated on the same labelled set.

The retrieval component used a regulatory corpus and source citations. I evaluated retrieval with hit@k and mean reciprocal rank (MRR).

The project evaluation covered 40 documents. Field-level accuracy was 0.974, and preprocessing increased mean OCR confidence from 81.6 to 93.3. These are results on that small evaluation set, not a guarantee for unseen documents.

DOCUMENT → STRUCTURED RECORD
{
  "document_type": "sample_form",
  "fields": { "demo_field": "value" },
  "review_required": true
}

Illustrative output only. No patient data.

97.4%FIELD-LEVEL ACCURACY
40EVALUATION DOCUMENTS
Project evaluation · mean OCR confidence 81.6 → 93.3
PROJECT / 002In progress · Self-study

Neural networks,
from the fundamentals.

Building character-level language models while working through Andrej Karpathy's Neural Networks: Zero to Hero. Starting with tensors, count matrices, and sampling.

PythonPyTorchLanguage models
What I've implemented

I implemented a bigram language model with tensor operations: counting character pairs, normalising the counts into probabilities, and sampling the next character.

The larger self-study track is ongoing. My focus is understanding how the model produces a prediction before moving to more complex architectures.

PROJECT / 003Built · Local lab

A repeatable path
from code to container.

A GitHub Actions pipeline for style checks, tests, Docker image builds, and publishing after tests pass, with Terraform and Kubernetes configuration for a local infrastructure lab.

DockerGitHub ActionsTerraformKubernetes
Inside the pipeline

The workflow checks code style, runs tests, builds a Docker image, and gates image publishing on passing tests. I also wrote Terraform and Kubernetes configuration for the application.

The infrastructure work was tested locally using LocalStack. This was a local learning project; it is not presented as a production Kubernetes deployment.

03 / WHAT COMES NEXT

From model to service.

Planned projects for the next stage of my AI engineering journey.

01 / PLANNED

Document AI API

Wrap a document-processing workflow in a FastAPI service with validated requests, a Docker image, and reproducible local setup.

Goal: process synthetic test documents and return structured results with clear validation errors.

02 / PLANNED

Kubernetes inference lab

Deploy a small model service to a local kind or Minikube cluster. Explore health probes, resource limits, configuration, and rolling updates.

Goal: demonstrate a healthy rollout and a deliberate rollback in a local cluster.

03 / PLANNED

RAG evaluation bench

Version a small question set and compare retrieval choices, citation coverage, and response time as the pipeline changes.

Goal: publish a repeatable evaluation and explain the tradeoffs without inventing results.

04 / THE DIRECTION

Curious about models.
Serious about systems.

I'm a computer engineering graduate working toward AI engineering. My foundation is Python, SQL, Linux, and practical document-processing projects.

I want to get better at the full path: preparing data, understanding a model, evaluating its output, and running it reliably with tools like Docker and Kubernetes. This blog is where I document that work.

Follow the work on GitHub ↗