Daud Farzand's Work | ContraWork by Daud FarzandDaud Farzand
AI Platform Engineer · RAG & LLM Infra Specialist . DevOps
NG12 Cancer Risk Assessor
Purpose: Clinical reasoning agent that combines structured patient data with unstructured NG12 cancer guidelines to deliver risk assessments and conversational support.
Core functionality: FastAPI service exposing assessment (/assess) and chat (/chat) endpoints; uses function‑calling to fetch patient data, a shared RAG pipeline (Vertex AI embeddings + ChromaDB vector store) to ground responses in the NG12 guidelines; returns structured JSON with citations and confidence scores. POS (Point of Sale) System
(https://ai-point-of-sale-software.vercel.app/)This is a production-ready Point of Sale web application designed for retail operations, fully containerized with Docker. It's a modern full-stack system combining a Next.js frontend with a FastAPI backend, PostgreSQL database, and complete business logic for managing sales, inventory, customers, and reporting.
Key Capabilities
Authentication & Access Control — JWT-based auth with role-based permissions (Admin, Manager, Cashier)
Core POS Functions — Fast checkout with product grid, cart management, and multiple payment methods
Business Operations — Product/inventory management, customer tracking with loyalty points, sales & refunds, receipts
Analytics — Dashboard with KPIs, sales trends, product performance, inventory status
Admin Tools — User management, store settings, audit logging, stock movement tracking
Skills Required
CategorySkillsFrontendReact/Next.js 14, TypeScript, Tailwind CSS, component libraries (shadcn/ui), state management (Zustand), async data fetching (TanStack Query)BackendPython, FastAPI, async database patterns, SQLAlchemy ORM, API design (REST/v1)DatabasePostgreSQL, SQL, schema design, database migrations (Alembic)DevOpsDocker, Docker Compose, container orchestration, environment configurationSecurityJWT authentication, refresh token flows, role-based access control (RBAC)
Tools & Technologies
LayerToolsFrontendNext.js 14, TypeScript, Tailwind CSS, shadcn/ui, TanStack Query, ZustandBackendFastAPI, Python 3.12, SQLAlchemy 2.0 (async), Pydantic v2, AlembicDatabasePostgreSQL 16InfrastructureDocker, Docker ComposeArchitectureMonorepo (backend/ + frontend/), RESTful API, JWT-based auth
The project emphasizes simplicity and production-readiness — no Redis/background workers, direct API calls from browser (CORS-enabled), and idempotent startup migrations for reliability.
https://ai-point-of-sale-software.vercel.app/ MyJobs is an AI-powered job application automation platform for LinkedIn
🎯 Core Mission
Automate the entire LinkedIn job application lifecycle—allowing users to apply to dozens of relevant jobs per week with minimal effort. Target: 75% time reduction in job searching.
🏗️ Architecture Highlights
Frontend: React 18 + TypeScript + Vite (chat, dashboard, automation controls)
Backend: FastAPI + LangGraph agent orchestration + MCP servers (Jobs, Resume, Interview, Analytics)
AI/ML: Multi-LLM (Ollama local + Anthropic Claude), RAG pipeline with Qdrant vector store
Data: PostgreSQL (relational) + Qdrant (vector embeddings)
Automation: Playwright for LinkedIn interactions, VAPI for voice screening calls
💡 Key Features
Chat Interface — Natural language commands (/apply, /status, /search)
Resume Management — Upload, AI-optimize for ATS, tailor per job
LinkedIn Automation — Auto-fill applications, send follow-ups, track status
Job Profiles — Create multiple search profiles (keywords, locations, levels)
Applications Dashboard — Kanban board + table view of all applications
Interview Prep — VAPI voice agent for HR screening calls
Analytics — Insights on response rates, time-to-interview, etc.
📊 Data Flow
User message → WebSocket → LangGraph Agent → RAG retrieves resume/job context → LLM (Ollama/Claude) → MCP tools execute → Response streams to user ServeLLM, an OpenAI-compatible, multi-tenant LLM platform with token metering, 5-tier RBAC, and 99% uptime. Also shipping RAG + MCP on Vertex AI for a US team: 10M+ chunks, <100ms p99, 35% lower inference cost.
https://blog.servellm.com/introducing-servellm