Senior Full-Stack Developer

Posted last week

Only freelancers located in the U.S. may apply.U.S. located freelancers only

Summary

Location: Remote Team size: Small (you’ll know everyone’s name) Stack: Java 21 / Guice / Gradle backend + React 19 / TanStack / MUI frontend About the role QAction is a large-scale Java enterprise document, records, and workflow platform — multi-project Gradle build, ~15 modules, customer-specific deployments (USDA, Ditco, Ascension, Mayo). The backend is being modernized behind an OpenAPI v2 surface (oasv2); the frontend is being rebuilt off GWT onto React 19 + TanStack Router/Query/Start with MUI v7. We need a developer who’s equally comfortable extending a v2 endpoint in a Guice-wired Java service as they are wiring up a TanStack Query call behind a Lexical editor or a virtualized data table — and who treats Claude Code as a peer on the keyboard, not a novelty. You’ll work directly with the product lead. No layers, no JIRA theater. Ship, review, iterate. What you’ll do Own vertical slices end-to-end: OpenAPI spec → Manager/ManagerImpl + EndpointImpl in QAction Java → React 19 / TanStack Query UI → JUnit + Playwright coverage. Extend the QAction Java backend: Guice (constructor injection only), Hazelcast-aware code paths, customer-deployment-aware module wiring, JUnit under oasv2. Build Modern UI features in the React 19 stack: TanStack Router/Query/Start, MUI v7 + Emotion, React Hook Form + Zod, Lexical, dnd-kit, OIDC auth (oidc-client-ts), TypeScript with the wrapper-component discipline already in place (Button, Icon, LabeledObject, ScrollShadows, etc. — never raw MUI in features). Move features off GWT onto the React 19 stack one slice at a time, without breaking the legacy app. Pair with Claude Code daily — write prompts that ship code, review agent diffs critically, and improve our skills/agents library when the workflow has friction. Keep integration tests honest: real DB + Solr + Keycloak at the seam, not mocks. Tech direction you’ll be living in Backend Java 21, Gradle multi-project (build single modules — ./gradlew QAction:build — never clean build) Guice DI, constructor injection, Manager/ManagerImpl naming (we don’t use “Service”) OpenAPI-first v2 endpoints in oasv2, canonical error model, paginated response classes as standalone beans in oasv2.beans Hazelcast clustering, Solr search, Postgres/MSSQL, Keycloak/OIDC FileNet integration, document import/migration tooling, RMT/remote services Frontend (modern) React 19 + TypeScript, Vite 7, TanStack Router + Query + Start + Table MUI v7 + Emotion, MUI X Date Pickers + Tree View Lexical (rich text), @dnd-kit + Atlaskit pragmatic-drag-and-drop, react-virtualized, react-pdf React Hook Form + Zod, oidc-client-ts + react-oidc-context, notistack, pino File naming kebab-case, @/ path imports, theme-first styling, wrapper components over raw MUI Adjacent surfaces in scope over time qaction-vectorizer, qaction-shared (qcore / qdatabase / qcontent-search / qdomain-model), qaction-simple-api, qaction-load-tests, qaction-helm deployment What we’re looking for 8+ years shipping production app code across backend and frontend. You’ve owned services and UIs, not just one or the other. Java fluency — Guice or Spring DI, REST/OpenAPI design, JUnit. Bonus if you’ve worked in a 1M+ LOC enterprise Java codebase with customer-specific module deployments and didn’t flinch. Modern React fluency — React 18/19, TypeScript, TanStack Query (or React Query), a real opinion about effect dependency graphs, comfort with virtualized tables and rich-text editors. OpenAPI-first thinking. Specs are the source of truth, not documentation written after the fact. Claude Code power user. You write prompts that delegate well, you know when to use a subagent vs. inline, you’ve built or extended skills/hooks/MCP integrations. You can show us a recent session where Claude shipped something non-trivial under your direction. Small-team temperament. You’re allergic to ceremony. You read code before asking. You raise a small PR when it’s ready. Nice to have GWT (you won’t write new GWT, but you’ll need to read and migrate it). Workflow / BPMN, records management, e-signature, or ECM domain experience. Hazelcast, Solr, Keycloak operational familiarity. Lexical or another modern rich-text editor. Playwright (you’ll inherit a calibrated suite — we want you to improve it, not rewrite it). Podman/Docker compose stack bring-up across Postgres, MSSQL, Solr, Keycloak. Python services or Helm/Kubernetes deployment experience. How we work Small PRs. Every change ships through review. If it’s getting big, split it. Test-driven design. Tests come with the code, not after. JUnit on the Java side, Vitest + Playwright on the React side. Daily standups. 15 minutes, async-friendly, but we show up. Memory-backed Claude Code sessions — agents learn the codebase with you, not against you. To apply Send a link to a recent PR you’re proud of (any language) and a 5–10 minute Loom of you using Claude Code on a real task. We care more about the second one.

  • More than 30 hrs/week
    Hourly
  • 6+ months
    Duration
  • Intermediate
    Experience Level
  • $45.00

    -

    $100.00

    Hourly
  • Remote Job
  • Ongoing project
    Project Type

Contract-to-hire opportunity

This lets talent know that this job could become full time.
Learn more
Skills and Expertise
Mandatory skills
Java
Google Guice
Gradle
Activity on this job
  • Proposals:50+
  • Last viewed by client:last week
  • Interviewing:
    2
  • Invites sent:
    5
  • Unanswered invites:
    2
About the client
Member since Feb 28, 2023
  • United States
    St. Louis6:35 PM
  • $70K total spent
    7 hires, 0 active
  • 1,474 hours
  • Tech & IT
    Mid-sized company (10-99 people)

Explore similar jobs on Upwork

Hype Video for Chrome ExtensionFixed-price‐ Posted 1 month ago
Google Chrome Extension
JavaScript
Video Ripping
Video Upload
Remove cloaking from IIS and Classic ASPFixed-price‐ Posted 6 months ago
ASP
Microsoft IIS

How it works

  • Post a job icon
    Create your free profile
    Highlight your skills and experience, show your portfolio, and set your ideal pay rate.
  • Talent comes to you icon
    Work the way you want
    Apply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
  • Payment simplified icon
    Get paid securely
    From contract to payment, we help you work safely and get paid securely.
Want to get started? Create a profile

About Upwork

  • Rating is 4.9 out of 5.
    4.9/5
    (Average rating of clients by professionals)
  • G2 2021
    #1 freelance platform
  • 49,000+
    Signed contract every week
  • $2.3B
    Freelancers 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

  • Microsoft Logo
  • Airbnb Logo
  • Bissell Logo
  • GoDaddy Logo
Other open jobs by this Client (1)