Customer-facing Walmart Business feature for converting uploaded receipts into matched Walmart items using backend services, Azure storage, LLM output, and item-matching workflows.
REST APIs • Azure Cosmos DB • Azure Blob Storage • LLM Integration • Kubernetes • openObserve~2 sec + ~1 sec
Two backend latency reductions through parallel processing and asynchronous persistence.
71% → 92%
Unit test coverage increased, alongside E2E, contract, regression, and performance testing.
5 Categories
Defined the item-matching taxonomy with Data Analytics and drove the supporting backend/data-contract changes.
4 Escalation Paths
Built targeted monitoring and on-call routing for application failures, infrastructure issues, emerging spikes, and sustained incidents.
Walmart Business wanted to make it easier for organizations already purchasing supplies from retailers such as Costco, Home Depot, and Staples to transition their purchasing behavior to Walmart Business. Rebuilding an existing purchasing basket manually created friction, so the Receipt Scanner allowed customers to upload a receipt and identify corresponding Walmart items.
The client sends a receipt through the GraphQL orchestration layer to the backend POST API.
Backend validates file size, format, image corruption, and Customer ID (CID).
A receipt ID is generated while Blob Storage upload and LLM processing execute in parallel.
Returned LLM output is consumed by the backend and used to match products through downstream item-matching services.
Receipt metadata, extracted results, and matching information are stored in Azure Cosmos DB.
GET retrieves validated receipt results; DELETE removes associated stored data and receipt artifacts.
I led requirements discovery with Data Analytics to define this five-category taxonomy and coordinated the supporting Data Science output and backend data-contract changes.
Direct product identifier match
Fallback using extracted product attributes
Additional fallback when stronger identifiers were unavailable
Used for eligible receipts up to approximately 4 months old when the item identifier was available.
Explicitly classified when a reliable match could not be established
I identified and drove parallel execution of Azure Blob upload and LLM processing, removing the Blob upload from the sequential critical path and reducing user wait time by approximately 2 seconds.
I implemented decoupled Cosmos DB persistence so the immediate response did not wait for the database write, reducing user wait time by approximately 1 additional second.
I proposed and helped shape Phase 2 architecture around deterministic image-hash identity/deduplication, asynchronous background processing, workflow-state tracking, polling/backoff, and budget/quantity-aware suggestions.
Increased unit test coverage from 71% to 92%.
Added contract, E2E, regression, and performance testing.
Conducted functional/performance validation using approximately 50–60 real-world receipts.
Added API linting and refactored high-complexity backend code to improve maintainability.
Built an openObserve dashboard for service latency, errors, and production health.
Integrated the service with Walmart's MMS/on-call system using 4 targeted escalation paths.
Application failures → On-call
Server-down events → DevOps
Emerging spikes → Developer Slack channel
Sustained/escalated issues → L2
Configured Akeyless-backed secrets for application database and LLM credentials.
Coordinated application-side Kubernetes sidecar configuration with DevOps.
Supported the production service as part of the backend team.
Collaborated with Walmart Legal on privacy risks associated with arbitrary image uploads containing potentially sensitive information.
Receipt Scanner was delivered by a cross-functional team. I owned significant backend responsibilities while partnering with specialized engineers and teams across the surrounding architecture.
LLM/model behavior and prompt engineering were owned by the Data Science team. I consumed the structured LLM output in the backend and integrated it into persistence and item-matching workflows.
The other backend engineer on the two-person backend team owned the direct connection and execution code between the backend and the LLM pipeline.
A dedicated engineer owned the GraphQL orchestration layer between the frontend clients and Receipt Scanner backend services.
Separate engineers owned the web, iOS, and Android user interfaces. My responsibilities were focused on the backend service and its integrations.
DevOps owned the underlying Kubernetes cluster and platform infrastructure. I collaborated on application-side sidecar configuration, service operations, and production capacity work.
Legal owned formal policy and compliance interpretation. I collaborated with Legal on privacy risks associated with arbitrary image ingestion and related deletion/retention behavior.
My core ownership: backend APIs, validation, Cosmos DB and Blob integration, receipt lifecycle, LLM-output consumption, item-matching backend logic, testing, observability, secrets configuration, and production support.
Explore another engineering project or ask my AI portfolio detailed questions about my architecture decisions, technical ownership, production experience, or fit for a specific role.