About me
I build Java backend services and user-facing workflows, plus Python data/ML pipelines and grounded AI/RAG features. My projects emphasize clear documentation, reproducible runs, and tests where they add real confidence.
- Strengths: FastAPI + OpenAPI, SQL/ETL, reproducible runs, clear READMEs.
- Learning focus: testing depth, evaluation practices, and clean “run” workflows.
- Style: practical, measurable, reviewer-friendly projects.
Backend & API Delivery
I deliver backend APIs in Java and Python with production-minded defaults.
- Service/repository layering with SQLite/JDBC persistence and REST endpoints.
- FastAPI + Pydantic APIs with consistent validation and error handling.
- Review-ready docs with OpenAPI/Swagger and clear run paths.
Data Pipelines & Quality
I build practical ETL pipelines that are easy to reproduce and review.
- Raw-to-curated table flows for KPI reporting in DuckDB/SQLite.
- Versioned artifacts with sanity checks to catch regressions early.
- Simple scripted runs so reviewers can reproduce outputs quickly.
ML Prototypes (Project Work)
I prototype small, explainable ML and retrieval flows with transparent limits.
- Clear inputs/outputs and logged runs for debuggable experiments.
- Lightweight evaluation for quality checks and failure-case tracking.
- Grounded responses with explicit limitations and reviewer clarity.
Toolbox
I emphasize reviewer-friendly delivery: consistent repo structure, clear READMEs, scripted runs, and (where applicable) lightweight tests and basic CI checks.
Currently learning
- Java backend patterns: service/repository layering, persistence, and REST endpoints (Spring Boot-style).
- Testing discipline: JUnit 5 for Java and pytest for Python (API contracts + data transforms).
- Grounded AI/RAG: retrieval quality, citations, and simple evaluation harnesses.
- Reproducible delivery: tight run steps (1–3 commands), Docker when it reduces friction.
- Operational habits: logging, configuration hygiene, and lightweight runbooks.
- Grounding answers with citations and clear source passages.
- Simple evaluation: failure cases, query coverage, and run logs.
- Small UIs to make prototypes easy to demo.
- Dependency pinning and safer configuration patterns.
- Input validation and consistent error handling.
- Keeping secrets out of code and using environment configs.
Open to associate backend/data roles and structured, engineering-focused teams.