Role: Senior Frontend Engineer - Web UI / API Integration
Location: Hybrid NYC
Duration: 6+ Months with possibility of extension
Financial services domain
Role Summary
We are looking for a Senior Frontend Engineer to join a domain-focused product team within a large financial services client. You will work inside a mature micro frontend ecosystem where the architectural complexity is abstracted away by tooling, so your day-to-day focus is on delivering well-tested, resilient features that integrate against GraphQL and REST APIs.
What you will do
- Implement features against atomic user stories, inside an SSR-first, independently deployable micro frontend module.
- Integrate against GraphQL and REST APIs, handling partial data, schema-level errors, transport errors, and the difference between retryable and terminal failures.
- Aggregate data across multiple resources utilizing built-in Javascript features, and surface it through well-typed client state.
- Own the server-state vs client-state boundary, TanStack Query for server state (caching, refetch, dedup, lifecycle), Redux for cross-module and derived UI state.
- Deliver features with 100% code coverage using Jest and React Testing Library, and know when each tool is the right choice.
- Participate in Agile Scrum ceremonies, branch, and PR hygiene via Git, and code review with a quality-first mindset.
Required Skills:
- Strong React 18+ experience: hooks, suspense, concurrent rendering implications, component composition over inheritance.
- Total type safety in TypeScript: discriminated unions, generics, mapped and conditional types, type narrowing.
- Comfortable modeling API responses, error states, and domain entities as precise types, not just as interfaces with optional fields.
- Redux (Redux Toolkit) for client and cross-module state, slices, selectors, memoization, normalized state shape.
- TanStack Query for server state, staleTime vs gcTime, query keys, refetch strategies, optimistic updates with rollback, error and loading lifecycle.
- Articulates clearly where the boundary sits between the two and does not put server responses in Redux by default.
- GraphQL consumption: reading schemas, understanding partial data plus errors arrays, fragment design, query co-location.
- REST integration with explicit handling of HTTP semantics (idempotency, status code classes, retry policy, timeouts).
- Defensive integration: input validation, output validation against contract, and explicit failure modes for every external call.
- Comfort merging, reducing, filtering, and shaping data from multiple sources before it reaches the UI layer.
- React Testing Library as the default for component and integration tests, user-facing behavior, not implementation details.
- Jest for unit tests, utilities, reducers, selectors, and the fragments RTL is not the right tool for.
- Comfortable working towards 100% code coverage as a sustained standard, not a one-time push.
- Parrot or equivalent for mocking the API boundary in tests.
- Agile Scrum: estimation, sprint commitment, breaking work into atomic stories or tasks.
- Git: clean history, focused PRs, meaningful messages, follow the git linter, conflict resolution under pressure.
- Code Review discipline: Rejects PRs lacking error handling, type safety, or test coverage, including your own.
Fullstack Awareness
You don t need to be a backend engineer, but you should not think of the API as a blackbox.
- Understand why a N+1 problem in GraphQL resolver is a frontend concern (page load tail latency).
- Reads a schema and infers what the upstream cost of a query likely looks like.
- Knows enough about HTTP, auth boundaries, and idempotency to write integration code that doesn t cause downstream incidents.
- Can converse with backend engineers about contract design rather than just consuming what they hand over.
What you will walk into
The client operates a SSR-first micro frontend architecture. Modules are independently deployable, isolated at runtime, and composed at request time. The platform abstracts the complexity, you work inside a single workspace with one CLI, one bundler, one runner. You will not be expected to know the internals of the platform on day one. You will be expected to respect its boundaries and not work around them.
Seniority Expectation
This is a Senior individual contributor role. You will own your stories end to end, including their failure modes. You will not be designing the platform, but you will be expected to push back (with evidence) when a story written would introduce fragility, leaky abstractions, or untested edges.
Logistics
- Engagement: Long-term staffing with a financial service client.
- Methodology: Agile Scrum, two-week sprints typically.
- Tooling: React, TypeScript, Redux, Redux Toolkit, TanStack Query, GraphQL, REST, Apollo Client, RTL, Jest, Figma, Git.