Senior Full-Stack AI Engineer: Python/Flask + React/TypeScript, LLM Systems, AWS Infrastructure
Worldwide
NOTE: 1. Apply ONLY through this platform. DO NOT CONTACT US IN ANY OFF OF UPWORK. IF YOU DO YOU WILL BE DISQUALIFIED FROM CONSIDERATION, BLOCKED AND REPORTED TO UPWORK. We do not care how clearly qualified or superior to other candidates a candidate may believe themselves to be. 2. Individual contributors only — WE DO NOT WORK WITH RECRUITERS, AGENCIES, BODY SHOPS, ETC. 3. Our CEO is PARTICULARLY STRICT about not being contacted directly. If you ignore this and message him in any way you should expect a very unpleasant response. We regret having to be so assertive on this matter, but our long experience on Upwork has taught us that polite requests are often ignored. We are truly very nice people to work with, and very respectful. As long as we're also respected. From him: "If a candidate refuses or is unable to respect company policies during the application process, then they could never be trusted to respect them once they have a job" Violators will be reported to Upwork and permanently disqualified from consideration for this and any future positions. About the role We're a small, fast-moving team looking for a senior full-stack AI engineer to take ownership of an existing production stack. This is a replacement for a departing senior engineer, so the codebase, architecture, and roadmap are already in place. What we need is someone who can read unfamiliar code, get productive fast, and then own their areas without being managed. You'll work across two products: a data-intensive analytics platform with a computational modeling core, and a large-scale data acquisition pipeline. Both are in production. Both have real users. Neither is greenfield, and both involve areas where a black-box approach won't work. You'll need to understand the systems, not just call them. The AI side of this role is real engineering, not prompt-writing. LLM calls sit on live production paths where wrong or missing output has consequences, so the work is as much about failure handling, evaluation, and cost control as it is about model capability. What you'll own AI / LLM systems: Production integrations with the Anthropic API across both products, all designed to fail closed rather than degrade silently. LLM-assisted structured extraction with automated QA, prompt design and versioning, output validation, evaluation of whether a change made things better or worse, and keeping inference cost and latency under control at real volume. Model strategy and infrastructure: Deciding what belongs on a managed API versus self-hosted, and building the path for it. There's room here to expand into AWS Bedrock, open-weight models (Llama, Mistral, Qwen and similar), and self-hosted inference on GPU instances. Both Bedrock and GPU capacity are provisioned but not yet in production, so getting them there could be your work. Retrieval: RAG and vector search with a partially rolled-out path already in place: embeddings, chunking strategy, retrieval quality, and finishing the rollout. Backend: Python services and APIs (Flask, SQLAlchemy, Postgres), including computation-heavy in-process logic and schema/migration work. Numerical / computational work: Mathematically dense Python built on NumPy. Real linear algebra and numerical methods you'll need to reason about and modify, not library calls. Data acquisition & automation: Production browser-automation pipelines at scale: proxy infrastructure, anti-bot and CAPTCHA handling, fallback chains, and deterministic deduplication. Frontend: React 19 + TypeScript + Vite, including a real-time interface backed by WebSockets and UI for AI-driven workflows. Infrastructure & delivery: Containerized deployment on AWS (ECS/Fargate, RDS, IAM), managed with CDK on one product and a Docker Compose / reverse-proxy setup with a self-hosted CI runner on the other. Two different deployment patterns you'll need to be comfortable holding in your head at once. Test discipline: Substantial existing pytest and Playwright E2E coverage, with accessibility checks wired in. We expect you to hold that bar, not erode it. Requirements - 8+ years professional experience, with real depth in both a Python backend and modern React/TypeScript - Production LLM engineering. Anthropic and/or OpenAI APIs on live paths, including structured output, validation, retries, timeouts, and cost/latency control. Prototypes and demos don't count - RAG in production. Embeddings, chunking, retrieval evaluation, and a vector store you've actually operated - Comfortable with numerically dense code: NumPy linear algebra you can reason about, not call as a black box - Real production browser-automation scraping: proxy rotation, anti-bot and CAPTCHA handling, fallback chains - Real AWS (ECS/Fargate, RDS, IAM), ideally CDK - GitHub Actions CI/CD, including OIDC auth and multi-runner setups - Strong automated-testing habits (pytest + Playwright or equivalent) - Works independently against a written spec, and writes the spec when there isn't one - Clear written English and the discipline to communicate proactively in an async setup Nice to have - AWS Bedrock. Model access, IAM, provisioned throughput, evaluating hosted models against direct APIs - Open-weight models. Llama, Mistral, Qwen, DeepSeek or similar: selection, quantization, fine-tuning or LoRA, and knowing when self-hosting is genuinely cheaper than an API - Self-hosted inference. vLLM, TGI, Ollama, or Triton; GPU sizing, batching, and throughput tuning Agentic systems. LangGraph, LangChain, or hand-rolled: tool calling, retry and loop control, cost ceilings - LLM evaluation and observability tooling (LangSmith, Langfuse, custom eval harnesses) - Vector stores at scale: pgvector, Pinecone, Qdrant, Weaviate - Applied cryptography in an application context (signing, authenticated encryption, canonical serialization) - Redis / ElastiCache - Comfort working in a codebase mid-migration, with two deployment topologies coexisting How we work - Async-first, with a required daily overlap window - Written specs before non-trivial work; problems surfaced early, not at the deadline - Regular check-ins and working discussions on how tasks get planned, split, and sequenced. We talk through approach before building, not after - You're expected to bring proposals to those conversations, not just take direction - We use AI coding tools heavily and expect you to as well, with judgment about what gets reviewed line by line To confirm you have read this entire posting, include the following sentence verbatim in your cover letter: "I confirm that I have read and followed the application instructions and will not contact the CEO or team members directly."
- More than 30 hrs/weekHourly
- 6+ monthsDuration
- ExpertExperience Level
$8.00
-
$20.00
Hourly- Remote Job
- Ongoing projectProject Type
Skills and Expertise
Activity on this job
- Proposals:50+
- Last viewed by client:4 hours ago
- Interviewing:1
- Invites sent:1
- Unanswered invites:0
About the client
- United StatesNew York11:39 AM
- $735K total spent91 hires, 13 active
- 57,052 hours
- Tech & ITMid-sized company (10-99 people)
Explore similar jobs on Upwork
How it works
Create your free profileHighlight your skills and experience, show your portfolio, and set your ideal pay rate.
Work the way you wantApply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
Get paid securelyFrom contract to payment, we help you work safely and get paid securely.
About Upwork
- 4.9/5(Average rating of clients by professionals)
- G2 2021#1 freelance platform
- 49,000+Signed contract every week
- $2.3BFreelancers earned on Upwork in 2020
Find the best freelance jobs
Growing your career is as easy as creating a free profile and finding work like this that fits your skills.
Trusted by