← Вакансии

AI Engineer for Saas

Бюджет: $25.0 - $47.0 HOURLY / FULL_TIME ⭐ 5.00 (9) USA

artificial-intelligence, python, saas, react-js, data-science

Preferred qualifications

  • Experience: Expert
# 1. What we need from you ### Must have **Backend (primary)** - Strong TypeScript. Production Express (or equivalent Node backend) — middleware, auth, validation, error handling, background workers. - **Real database design skill.** Not "I've used an ORM." You should be able to argue normalized-vs-JSONB with reasons, write migrations that are reversible, index for the query you actually run, and reason about transactions and idempotency. We run Postgres with Drizzle + hand-written SQL, one schema per module, ~190 tables. If you can't defend a schema decision, this role will hurt. - Comfort with async job systems (BullMQ / ARQ / SQS-style), retries, idempotency keys, and callback contracts between services. - Python is not required on day one, but you must be willing to work in the FastAPI sidecar. If you're allergic to Python, this isn't the role. **Frontend** - Next.js App Router and React in production — server/client component boundaries, data fetching, caching pitfalls. - React Query (or equivalent) for server state; comfort with Tailwind + a Radix/shadcn-style component system. - Able to build a dense, data-heavy UI — virtualized tables, inline editing, PDF viewers — not just marketing pages. **Information extraction + LLM (the differentiator)** - You have shipped a document-extraction system to production, and you know that **OCR/layout comes before the LLM**. Experience with Textract, or an equivalent OCR/layout stack, and an opinion about what to feed the model: raw text, layout-preserved markdown, images, or all three. - **Structured output** as your default. Pydantic/Zod schemas as the contract, tool-use or JSON mode, and a considered answer to what happens when validation fails. - **Prompt caching** — not the marketing version. You should be able to explain the prefix rule, why cache-write costs more than a normal input token, why a 5-minute TTL changes how you order your fan-out, and how to read `cache_read_input_tokens` to prove the cache is working. - **Prompt engineering with the Anthropic API specifically** — system-vs-user placement, XML-tagged context, multimodal messages, `max_tokens` and streaming thresholds, and the difference between Bedrock and first-party Anthropic auth. - **Evaluation instincts.** You've built a golden set, measured a change, and rolled back a prompt because the numbers said so. - Token-cost awareness as a first-class engineering concern. ### Nice to have - AWS: Bedrock, Textract, S3, SQS, EC2, RDS. - Python/FastAPI, SQLAlchemy async, Alembic, ARQ. - PDF internals — PyMuPDF, pdfjs, pdf-lib, rasterization, coordinate spaces. - Docker Compose, pm2, nginx path-routing; you can deploy your own work to staging. - CASL / policy-based authorization; multi-tenant RBAC. - Construction domain knowledge (CSI MasterFormat, submittals, RFIs, SOV, pay applications) — genuinely valuable, but we can teach it. ### How we work — read this before applying - **Verify before you claim.** "It should work" is not a status. We check staging, read the logs, and quote the output. - **Docs are part of done.** A merged feature updates the relevant wiki standard and the sitemap. - **Separate authoring from review.** You don't approve your own work. - **Local-first.** Verify locally, then deploy deliberately. No surprise staging pushes. - **No placeholder completions.** A `TODO`, a skipped test, or an unimplemented branch is a blocker to be reported, not evidence of progress. --- ## 2. Stack summary | Layer | Tech | |---|---| | Frontend | Next.js (App Router), React, TypeScript, React Query, Tailwind, shadcn/Radix, Zustand, pdfjs/react-pdf, recharts, reactflow | | Backend | Node/TypeScript, Express, Drizzle ORM, Zod, Jest + Supertest; Python/FastAPI sidecar with SQLAlchemy (async), Alembic, Pydantic, ARQ | | Data | PostgreSQL (RDS), Redis, S3 | | AI | Claude via AWS Bedrock (Sonnet + Haiku), `instructor`, Anthropic prompt caching, AWS Textract, embeddings/Pinecone, LangSmith tracing; Gemini + OpenAI as alternate providers behind one client interface | | Infra | Docker Compose, pm2, nginx, EC2, SQS/NATS, GitHub |
Открыть заказ

AI-черновик отклика

Короткий текст отклика для копирования в оффер: интерес + готовность работать.

Войдите, чтобы сгенерировать AI-черновик.

Войти