Case studies

RK&GT: Applied ML & Document Intelligence

I built two Python ML systems: RFID localization from signal data, and document search with custom NER, QA and OCR.

400+
tagged products
RFID localization
2K+
labeled samples
simulation-generated
8
office zones
classification targets
20%
lower ingestion latency
4-stream + schema redesign

[1] RFID localization

RFID localization architecture

From simulated signal observations to product-level location classes.

Two primary systems

Two separate ML projects: locating things indoors and understanding documents.

Fig. 1 · RFID localization and document intelligence are independent paths.

End-to-end flow

Signal readings are turned into a fixed input for location classification.

Fig. 2 · From office simulation to product output.

Indoor RFID localization: simulated office readings → RSSI modeling → time alignment → fixed-width features → one of eight locations.

Office model

ItemCountDetail
Active landmarks8One per zone
Passive landmarks32Four per zone
Total landmarks40Signal/location model
Simulation products496Checked-in config

Observation contract

Per readingCapturedDistance · timestamp · RSSI · identity.
Expected classTargetLocation label tied to product/landmark context.
Signal modelPropagationRSSI = A - 10 · n · log10(distance), with n = 2.

Simulation let me generate repeatable data without live RFID hardware for every experiment.

[2] Features

Feature engineering & classifier

A fixed RSSI and count input feeding an eight-class neural classifier.

Feature pipeline

Signal readings arrive at uneven times and are converted to a fixed-width input.

Fig. 3 · From raw rows to 82 numeric features.

82-feature composition

GroupCompositionFeatures
ProductRSSI + count2 numeric features
Active landmarks8 RSSI/count pairs16 numeric features
Passive landmarks32 RSSI/count pairs64 numeric features

Classifier (saved model)

A dense classifier maps 82 features to one of eight location classes.

Fig. 4 · 82 inputs, two dense layers, eight outputs.

Engineering decisions

±200 ms windowTemporal alignmentTurn asynchronous readings into fixed features.
82 deterministic inputsFeature contractClear preprocessing ↔ inference boundary.
Stronger RSSI firstSignal filteringReduce weaker/noisier observations.
L0 to L7 classesOutput mappingMap prediction back to tagged product.

[3] Documents

Document intelligence systems

Semantic ranking, extractive QA, evidence highlighting, OCR and structured output.

Primary semantic ranking

Semantic similarity and entity matching are combined before candidates are ranked.

Fig. 5 · Semantic similarity and custom NER combine into one rank.

The output is ranked sentence-level context, as JSON for downstream document workflows.

Extractive QA path (Haystack / FAISS)

Page-preserving retrieval → answer extraction → evidence generation.

Fig. 6 · From PDF pages to answer evidence.

Document outputs

Sentence-level contextRanked searchSemantic + NER relevance.
Matched evidence regionsHighlighted PDFSource artifact.
EvidenceQA evidenceAnswer + context + page + score; drop answers below 0.05.
Sections · questions · options · answersOCR / JSONText or scanned PDFs.

[4] Ingestion

Ingestion & data engineering

Parallel processing, normalized schemas and clear data boundaries.

Ingestion path

Four parallel streams and a normalized PostgreSQL schema. The wider project parallelized four ingestion streams and redesigned the PostgreSQL schemas.

20%
lower ingestion latency
4 streams + normalized schemas

Structured data boundaries

Capture, preprocessing, features, inference and output stay separate.

Fig. 7 · Each stage hands off an inspectable artifact.

Data & persistence

StoreContentsRole
CSVRFID observations + engineered featuresInspectable handoffs
JSONPredictions + document outputsMachine-readable results
SavedModelTrained TensorFlow model directoriesLocal model artifact
FAISSLocal retrieval experiment storageDocument QA
Temp textPage-level processing intermediatesDocument workflows
PostgreSQLNormalized broader ingestion schemas4-stream working path

The repo snapshot passes data through local CSV and JSON files. The PostgreSQL ingestion belongs to the wider project and isn't in the snapshot.

[5] Results

Results, decisions & scope

Confirmed scale, trade-offs and what is safe to publish.

SystemResultFraming
RFID localization400+ tagged products across 8 zonesConfirmed project scale
Signal model40 landmark tags · 2K+ samplesSimulation-generated samples
Feature contract82 numeric RSSI/count inputsSaved classifier
Ingestion20% lower latency4 streams + schemas
Simulation snapshot496 productsChecked-in configuration

Engineering decisions

Repeatable signal generationSimulationAvoid hardware dependency every iteration.
±200 ms association windowTemporal alignmentMake asynchronous signals explicit.
Prioritize stronger RSSIStrong-signal filterReduce weaker/noisier observations.
Semantic + NER relevanceEntity-aware rankingCombine meaning with entity information.

Note on scope

This covers applied ML, NLP, RFID localization, document processing and data pipelines. I make no claims about web apps, auth, cloud deployment, Kubernetes, CI/CD, uptime, traffic or revenue.

Want to talk about any of this?

Happy to go deeper on signal modeling, feature contracts, or document retrieval.

© 2026 Tharun Pranav SakthivelHome