Senior engineer with 5+ years of professional experience delivering production systems across software engineering, full stack development, mobile applications, and AI. Fluent in Python, Java, and .NET — I build things that scale and ship AI that works in the real world.
Open to remote contract & full-time roles · US Citizen · Available nationwide
I'm a Senior Software & AI Engineer based in Austin, TX with 5+ years of professional experience. I'm fluent across Python, Java, and .NET — I've shipped production code in all three and step into any of these stacks from day one.
My work spans financial services, healthcare, insurance, and enterprise software — backend services handling millions of transactions, microservices at 99.9% uptime, LLM integrations in production, full-stack and mobile applications, and high-volume data pipelines.
I believe the best engineers today sit at the intersection of solid software engineering and AI — I bring both. Clean architecture and strong fundamentals on one side; production-ready generative AI and agentic systems on the other.
Mentored working professionals through UT Austin's AI & ML certification — covering Data Science, Machine Learning, and AI fundamentals. Supported learners with project reviews, concept clarification, and Q&A sessions. Delivered entirely on weekends (Saturdays & Sundays, ~4 hrs/day) while working full-time as a Software Engineer.
Built up over 5+ years of shipping real products across different stacks and domains.
Production work across AI, backend, full stack, mobile, and data engineering. Client names withheld per confidentiality agreements.
ML risk scoring with open sanctions data for real-time AML compliance screening. Replaced a fully manual review process for a fintech client.
Enterprise RAG with vector indexing and NL Q&A across 10,000+ documents. 35% better retrieval; 50K+ queries/month in production.
Production multi-agent system with planning, tool-calling, and autonomous execution. Reduced operational overhead 40% for a Series A startup.
End-to-end multi-agent AI platform with 8 specialized agents working in coordination — from voice input to intelligent response via a live agent interface. Built for real-world production use with full AI infrastructure design and optimization.
Instructor + student dual apps with AI feedback analytics, cloud recording, and real-time communication for 100+ students per session.
Auto, Travel, and Healthcare insurance apps plus real-time AML fraud detection monitoring millions of banking transactions — 24/7 global compliance monitoring.
Large-scale academic publishing with global distribution, multi-level approval workflows, and order processing at millions of records. Resolved critical production incident under high load.
End-to-end data pipelines and Power BI dashboards replacing manual weekly executive reports — multi-source ingestion and Python/SQL transformations.
Reusable enterprise framework — millions of records/second with pluggable ingestion, transformation, and output pipelines. Adopted across multiple internal projects.
Designed and built a scalable FastAPI backend platform delivering analytics datasets to internal applications and dashboards. Integrated with a centralized data warehouse exposing secure REST APIs for high-volume data retrieval.
Designed and implemented a scalable end-to-end data pipeline collecting data from external APIs, processing large datasets with Apache Spark, and loading into Snowflake for Power BI analytics dashboards.
Built a real-time data streaming platform processing high-volume event data continuously using Apache Kafka and Spark Structured Streaming, storing results in Databricks Delta Lake for analytics and monitoring.
14 public repositories across AI engineering, full stack, backend APIs, Java, .NET, and data engineering. Every project ships real, working code.
Real-Time GenAI Document Q&A Platform using LangChain, RAG, and LLMs for intelligent document understanding.
AI PDF chatbot using LangChain and RAG architecture for intelligent document querying with OpenAI.
Starter kit for building autonomous AI retrieval agents with tool-calling, planning, and reasoning.
Real-Time Streaming Data Platform — Apache Kafka, Spark Structured Streaming, Databricks Delta Lake.
End-to-End Data Engineering Platform — Airflow orchestration, Spark processing, Snowflake warehouse.
Enterprise data warehouse architecture with ETL pipelines, Power BI dashboards, and analytics reporting.
Modern ASP.NET Core Full Stack Reference Application — .NET, C#, REST APIs, full stack architecture.
Full Stack Java Application with Spring Boot — healthcare domain, REST APIs, database integration.
Full stack boilerplate — FastAPI Python backend with React admin dashboard, ready to deploy.
Production-ready FastAPI + PostgreSQL authentication backend with JWT tokens and role-based access.
Modern Next.js Shopify storefront — full stack e-commerce with TypeScript and Shopify Storefront API.
RealWorld spec blog API built with FastAPI — production-grade REST API with full CRUD and auth.
Clinic management system built with Spring Boot — Java backend, appointment scheduling, REST APIs.
Medium clone API specification — REST API design with full CRUD, auth, and social features.
Thoughts on software engineering, AI systems, and building things that last.
Everyone is racing to fine-tune their own models. But after building RAG systems serving 50K+ queries a month in production, retrieval-augmented generation remains the most practical path for enterprise AI.
AI agents look simple in demos. But shipping an autonomous agent to production — where it runs real workflows for real users — is an entirely different challenge. Here's what I learned.
Everyone is racing to fine-tune their own models. But after building RAG systems that serve 50,000+ queries a month in production, I'd argue that Retrieval-Augmented Generation is still the most practical, cost-effective, and maintainable approach for most enterprise AI use cases.
Fine-tuning feels powerful. You give the model your data, it learns your domain, and suddenly it "knows" your company. But in practice, enterprise knowledge is never static. Product catalogs change weekly. Policies are updated quarterly. Fine-tuning a model on a snapshot of your data means you're constantly out of date — and re-training is expensive in both time and compute.
The question isn't "which approach is technically superior?" It's "which approach can my team actually maintain in production six months from now?"
RAG separates two fundamentally different problems: reasoning (which the base LLM already does well) and knowledge retrieval (which needs to stay fresh). By keeping your documents in a vector database and retrieving relevant chunks at query time, you get:
The hardest part of building RAG in production isn't the LLM — it's getting retrieval right. Naive vector similarity search works in demos. In production, you need:
On the RAG Knowledge Assistant I built for an enterprise client — 10,000+ documents, 50K+ monthly queries — the improvements that mattered most weren't LLM-related at all. They were retrieval improvements: better chunking, metadata filters, and query rewriting. The bottleneck was always: are we giving it the right context?
If you're building enterprise AI today, start with RAG. Get retrieval right. Fine-tune later — only if the retrieval-based approach genuinely can't get you there.
AI agents look simple in demos. LangChain, a few tools, an LLM call, and the agent "reasons" its way through a task. But shipping an autonomous agent to production — where it runs real workflows for real users — is an entirely different challenge.
In a demo, the happy path works beautifully. In production, you face: ambiguous inputs, tool call failures, infinite reasoning loops, hallucinated tool parameters, and users who give the agent instructions it was never designed to handle.
When a REST API fails, you get an error code. When an agent fails, you get a confidently wrong answer delivered after 45 seconds of "thinking."
The biggest mistake is giving agents too many tools. Every additional tool is another surface for the model to hallucinate incorrect usage. We went from 12 tools down to 5 — and reliability improved dramatically. Each tool should do exactly one thing and have an unmistakably clear description.
The agent we shipped has explicit checkpoints: before any action that modifies external state (sending emails, updating records, triggering downstream systems), it pauses and surfaces a confirmation step. Users trusted it far more once they understood it wasn't acting silently.
You cannot debug a reasoning trace by reading logs. We integrated LangSmith from day one — every agent run is traced: which tools were called, in what order, what the LLM was "thinking," where it got stuck. Tools like LangSmith, Langfuse, and Arize are table stakes for production agents.
Treat your agent like distributed systems — assume failure, build for observability, and earn trust incrementally.
Feel free to reach out — whether it's about a role, a collaboration, or just to connect.