What are the responsibilities and job description for the Platform Engineer (Contract) position at Medley?
At Medley, we empower the next generation of leaders at the world’s most iconic companies through transformational group coaching. We run on Medley’s Small Groups OS (SGOS) – a custom operational platform that centralizes program design, cohort management, coach coordination, participant experiences, and AI-powered session facilitation into a single hub. This platform is the backbone of how we deliver and scale our programs.
We are looking for a Lead Platform Engineer to take ownership of the SGOS platform, transitioning development from our current partner. This is a hands-on, individual contributor role for someone who can own features end-to-end – from database migration to deployed UI – while also understanding the business context behind every feature they build. You will be the primary technical owner of a production platform that serves our internal team, ~60 contract coaches, enterprise partners, and program participants.
This role is expected to require ~20 hours per week with the ability to flex up to 40 hours during onboarding & peak periods. It is an independent contractor engagement. We have a strong preference for candidates based in North America, though we are open to any timezone with meaningful overlap with US Eastern Time hours.
What You’ll Do:
- Own Platform Development: Build, ship, and maintain features across the full SGOS stack – a TypeScript monorepo spanning a React SPA, Node/Express API, PostgreSQL database, event-driven microservices, and AWS infrastructure. You will work across the frontend, API, database, and deployment pipeline, often in the same sprint.
- Understand the Business: This is not a role where you receive pixel-perfect specs and execute. You will work directly with Medley’s product owner to understand program delivery workflows, coach and participant needs, and enterprise client requirements. You are expected to think critically about requirements, push back when something doesn’t make sense, and propose better approaches.
- Run UAT and Quality Assurance: Before releasing features to production, you will conduct user acceptance testing, coordinate with internal stakeholders for feedback, triage bugs, and ensure releases meet quality standards. You own the last mile of delivery.
- Make UX Decisions: Using the existing Mantine v8 design system and established UI patterns, you will make frontend design decisions for new features. You are expected to build interfaces that are clean, intuitive, and consistent with the existing application.
- Maintain and Extend AI Capabilities: The platform includes AI-powered features built on AWS Bedrock and Claude, including real-time session facilitation guidance, sentiment synthesis, and post-session distillation. You will maintain and extend these capabilities, including prompt engineering, streaming responses via WebSockets, and managing inference cost and latency.
- Manage Deployments and Light Infrastructure: You will deploy code via the existing GitOps pipeline (GitHub Actions, ArgoCD, EKS) and handle routine infrastructure tasks. Major infrastructure changes or architecture decisions will be supported, but you should be comfortable reading Kubernetes manifests, debugging pods, and understanding the deployment flow.
- Transition from Partner & Migrate Existing Data: You will onboard alongside our current development partner during a transition period, gaining full context on the codebase, architecture decisions, and operational patterns before taking over as the sole technical owner. You will also help us migrate the existing database.
What You’ll Work On:
- Frontend (medley-app-react): React 19 SPA built with Vite, using Mantine v8 as the component system, TanStack Query for server state, Zustand for client state, React Router 7, and Socket.io for real-time features. Editor and visualization work via TipTap, FullCalendar, Recharts, and DnD Kit.
- API (medley-api): Express 4 TypeScript service backed by PostgreSQL through the raw pg driver (no ORM) using a Controller > Service > Repository pattern. JWT auth, Google OAuth, express-validator, Swagger/OpenAPI docs, Helmet, Redis-backed rate limiting, S3 uploads via AWS SDK v3, and RabbitMQ producers.
- Microservices (medley-services): Node/TypeScript services on a shared library – communications (Resend email RabbitMQ consumers), exports (CSV/Excel generation, S3 presigned URLs), and session-intelligence (AWS Bedrock / Claude inference with Socket.io for live nudges).
- Database (medley-db): PostgreSQL with 185 Flyway migrations. All schema changes go through versioned SQL – no ad-hoc DDL.
- Infrastructure (medley-infrastructure): AWS (EKS, RDS Aurora Postgres, ElastiCache Redis, S3, ECR, Secrets Manager, Route53, KMS) provisioned with Terragrunt Terraform. GitOps via ArgoCD with Kustomize. Docker images built in GitHub Actions, deployed to staging and production EKS namespaces.
What We’re Looking For:
- 5-10 years building and shipping production web applications.
- TypeScript fluency on both Node.js and React, with comfort in strict-mode codebases.
- React (17 , ideally 18/19) with a real component-library mindset – you’ve built non-trivial UIs with a design system, not just glued pages together.
- Node.js Express REST APIs, including auth (JWT/OAuth), validation, and OpenAPI/Swagger documentation.
- PostgreSQL with hand-written SQL – joins, indexes, query plans, and migration discipline. Experience with Flyway or a comparable migration tool.
- AWS day-to-day: at minimum S3, Secrets Manager, IAM, and familiarity with one container platform (EKS/ECS/Fargate).
- Docker and Kubernetes comfort: reading manifests, debugging pods, understanding rollouts.
- Git GitHub Actions workflows in a multi-service repo.
- AI Tooling Fluency. We expect the right candidate to be comfortable using AI tools like Claude Code throughout development, feature design and product management to enable great output.
- Strong product sense and communication skills. You will work directly with non-technical stakeholders to understand requirements, and you need to be able to translate business needs into technical decisions. You should be someone who asks “why are we building this?” before “how do we build this?”
Strongly Preferred:
- Mantine (v7 or v8) experience, or strong fluency in another opinionated component library (MUI, Chakra, Ant) and willingness to adapt.
- TanStack Query, Zustand, or equivalent server-state and client-state libraries.
- Event-driven systems – RabbitMQ, SQS, Kafka, or similar – with at-least-once delivery and idempotency considerations.
- WebSockets / Socket.io for real-time UX.
- Rich-text editing (TipTap/ProseMirror) or calendar UIs (FullCalendar).
- Testing with Vitest, including integration tests against real Postgres.
- AI tooling fluency with tools like Claude Code (or equivalent).
Nice to Have:
- Google Workspace integrations (Calendar, OAuth).
- LLM integration in production – Bedrock, the Anthropic API, or OpenAI – with prompt design, streaming responses, and cost/latency tradeoffs.
- File-export pipelines (ExcelJS, csv-stringify) and S3 presigned-URL flows.
- Email deliverability with Resend or a comparable transactional provider.
- Terraform / Terragrunt for AWS infrastructure-as-code.
- ArgoCD or another GitOps deployment tool; Kustomize template authoring.
- SOC 2 / security-conscious development (RLS, audit logging, secrets management).
- Experience working with or transitioning from agency-built codebases.
How We Work:
- Yarn 4 workspaces; Node.js 22 (frontend) / 24 (services).
- Strict TypeScript, ESLint, and Prettier across every package.
- Controller > Service > Repository on the API; Page > Feature > UI on the frontend.
- No ORM. Raw SQL is a feature, not a problem to solve.
- Migrations are sacred. Schema changes ship as numbered Flyway files, never hand-applied.
- Lint and build pass before “done.” No exceptions.
- We use Asana for project management, Slack for communication, and GitHub for code. You will participate in regular check-ins and sprint planning with the product owner.
Physical Demands:
This is sedentary work that primarily involves sitting/standing in a home office environment.