Role: Senior Product Engineer (Frontend & Design Systems)
Location: Remote (Global)
Type: Full-time
The Mission
Aura is looking for a Product Engineer who sits at the intersection of Design and Engineering. You aren't just handing off tickets from Figma; you are a "Design Engineer" who cares deeply about interaction physics, micro-interactions, and the "feel" of the application.
You will own our core workflows—complex, multi-step interfaces like our Booking Engine and Call Analysis Dashboard. You will leverage the bleeding edge of React 19 and Next.js 16 to ensure these flows aren't just beautiful, but run at 60fps even on low-end devices.
The Stack
- Frontend Core: Next.js 16 (App Router), React 19, TypeScript (Strict).
- Styling & Motion: Tailwind CSS, shadcn/ui, Framer Motion.
- Testing: Vitest (Unit/Component), Playwright (E2E).
- Performance: React Compiler, Web Vitals (INP), Sentry Replay.
- Architecture: Repository Pattern (Server Actions), Turborepo.
What You Will Do
- Design Engineering: Bridge the gap between Figma and Code. You will architect our design system to be composable and type-safe, ensuring UI consistency across the platform.
- Testing Culture: You don't verify features by "clicking around." You write Vitest specs for complex logic and Playwright tests for critical user journeys (e.g., the booking flow).
- Architecture: You respect the boundaries. You build Server Actions that call our shared repositories (not direct DB queries), ensuring our frontend code remains decoupled and testable.
- Frontend Performance: Obsess over Core Web Vitals, specifically INP (Interaction to Next Paint). You will use the React Profiler to optimize re-renders and implement virtualization for large datasets.
- Error Resilience: Implement granular Error Boundaries and Sentry tracking so that if one component crashes, the rest of the dashboard stays alive.
Who You Are
- Pixel-Perfectionist: You notice when a border is 1px off or an animation easing feels "wrong."
- Testing Advocate: You believe that if it isn't tested, it's already broken. You are comfortable writing E2E tests for async flows.
- Performance Native: You know exactly why a component is re-rendering and how to fix it without memoizing everything blindly.
- Strict Typer: You enable strict: true and never use any. You know how to derive types from Zod schemas or Database definitions.