Role Summary
Contribute 15–25 hours per week on a production web application with real-time features, subscriptions, and AI-assisted workflows. The stack uses FastAPI, Motor/MongoDB, httpx, WebSockets, Pydantic, Stripe Checkout, JWT/OIDC auth, and a React SPA with Tailwind.
Responsibilities
- Design and maintain FastAPI HTTP and WebSocket endpoints.
- Implement auth flows with passlib/bcrypt, JWT (python-jose), and Google OIDC (Authlib).
- Model and validate data with Pydantic; operate MongoDB via Motor (AsyncIOMotorClient).
- Orchestrate scheduled/background jobs using asyncio.create_task (refreshers, monitors, results processing, daily tasks).
- Build subscription logic and plan limits (Free, Premium Monthly, Premium Yearly).
- Integrate Stripe Checkout through the in-repo wrapper; add idempotent webhooks and lifecycle handling.
- Deliver persona-aware chat features through internal LLM modules; persist sessions and messages.
- Apply robust timezone handling with zoneinfo and pytz.
- Ship targeted fixes and small features in the React SPA (Tailwind, PostCSS, CRACO); maintain token refresh and localStorage hygiene.
- Add logging, metrics, and data-freshness checks; write nightly handover notes.
Minimum Qualifications
- 4+ years in Python with FastAPI or Starlette and async I/O.
- Experience with WebSockets, background jobs, and idempotent task design.
- Proficiency with MongoDB schema design, Motor, and Pydantic.
- Production experience with password hashing, JWT, OAuth/OIDC, sessions, CORS/CSRF.
- Hands-on Stripe Checkout or comparable subscription systems.
- React proficiency with REST/WebSocket integrations and token management.
- Sound knowledge of timezone utilities and serialization.
Preferred Qualifications
- Work with multi-provider external APIs and failover patterns.
- Delivery of LLM-backed functionality and prompt design.
- Familiarity with Tailwind, CRACO, and PostCSS.
- Practice with observability, incident response, and secure secrets handling.
- Exposure to CI/CD and containerized deployment.
Schedule and Engagement
- Night shift aligned to North American evenings/nights; 15–25 hours per week.
- Independent contractor engagement; remote.
Success Metrics (first 90 days)
- p95 API latency under target thresholds across odds and results endpoints.
- WebSocket stability with high uptime and automatic reconnection strategies.
- Accurate subscription enforcement and low payment failure rates; reliable webhook handling.
- Data freshness SLAs met for each league provider with graceful failover paths.
- LLM chat reliability with safe prompt design and durable session storage.
Work Style and Collaboration
- Write clear design docs and PRs with explicit acceptance criteria.
- Coordinate with product and design to scope features for the React dashboard and chat UX.
- Document internal modules (emergentintegrations.*) for reuse and onboarding.
Tech Environment
- Backend: FastAPI, Starlette, Motor, Pydantic, httpx, Authlib, python-jose, passlib/bcrypt, asyncio.
- Payments: Stripe Checkout (custom wrapper), plan limits in code.
- AI: OpenAI models via internal chat engine with persona prompts.
- Data: The Odds API; league APIs listed above with provider fallbacks.
- Frontend: React SPA, Tailwind, PostCSS, CRACO; tokens in localStorage; AuthContext refresh.
- Time: zoneinfo (America/New_York), pytz.
Application
Send a short portfolio or repo links that demonstrate:
- A FastAPI service with async jobs or WebSockets.
- A React SPA that consumes WebSockets and handles token refresh.
- Any Stripe subscription or LLM integration work.