Userevidence

Senior Full-Stack engineer (Typescript)

This role is also available in other regions. Choose where you'd like to apply:
Apply Now

Job Description

UserEvidence is a SaaS platform that unlocks stories from happy customers, and automatically creates a library of beautiful content assets. We are the only platform purpose-built to unlock customer love at scale. Credibility and noise are huge issues in B2B marketing and sales. We believe companies can sell a lot more when they let their customers do the talking, and show real-life evidence and feedback from their users.

About this role. UE Advocacy is a customer advocacy product we acquired because it fits our north-star mission. The product demos beautifully and customers love what it does, but the codebase was built fast and is now showing the strain. We are in active remediation: porting a legacy Express API to a modern Hono/Bun backend, decomposing oversized React pages, hardening data integrity, retiring AWS Lambdas in favor of in-monorepo BullMQ workers, and adding real test and observability coverage. We need senior engineers who can ship inside a codebase under construction, follow established patterns rigorously, and trust the safety net (canary deploys, feature flags, automated review) instead of relying on manual full-app QA.

Stack

  • Language: TypeScript (strict mode on new code)
  • Backend: Hono on Bun, OpenAPI-driven routing, Prisma + PostgreSQL, BullMQ for background jobs and crons, AsyncLocalStorage-aware transactions
  • Frontend: Next.js (Pages Router), React Query, Tailwind, Base UI primitives, an auto-generated SDK client from OpenAPI
  • Testing: Bun test runner with factory-based real-DB integration tests; Vitest + React Testing Library for components; Playwright for E2E
  • Infra & observability: Render, AWS, New Relic, PostHog feature flags, Auth0
  • Tooling: Macroscope automated code review, a comprehensive in-repo agent guide, and canonical reference modules that define the patterns we expect every new module to match

Responsibilities

You'll be part of a senior engineering team responsible for stabilizing and evolving UE Advocacy. Depending on focus area, you may work in one of three lanes:

  • Re-architecture. Port modules from the legacy Express API to the new Hono API with full integration test coverage. Decompose large React components (3,000-5,000 LOC pages) and convert .jsx to strict-mode .tsx. Improve frontend performance — bundle splitting, dynamic imports, mobile-first defensive coding, embed reliability. Harden data integrity by introducing real state machines and typed enums.
  • Feature work. Build new customer-facing features behind feature flags with canary rollouts, against PM-written acceptance criteria. Follow established backend patterns and frontend conventions exactly — we have reference modules for a reason.
  • Bug triage and fixes. Investigate customer-reported bugs using New Relic traces, structured logs, and database queries. Reproduce, fix, and add tests to prevent regression. Most bugs live in legacy code; finding them is a code-archaeology skill.

Across all three lanes, you will:

  • Write clean, maintainable, well-tested code following established patterns
  • Conduct thoughtful peer code reviews and respond constructively to the same
  • Use automated code review (Macroscope), automated tests (Bun, Vitest, Playwright), and canary deploys as your safety net — not manual full-app QA
  • Troubleshoot production issues using New Relic, structured logs, and direct database queries

Requirements

  • At least six years building software in a team environment, or equivalent demonstrable experience. Years of experience don't always capture expertise — apply if you can show your work.
  • At least four years working professionally with TypeScript, including in strict mode. Experience refactoring weakly-typed code to strict TypeScript is a strong plus.
  • Production experience with at least one modern Node/Bun backend framework (Hono, Fastify, Express, Koa, or similar).
  • Production experience with a typed ORM (Prisma strongly preferred; Drizzle, TypeORM, or similar are acceptable).
  • Production experience writing complex SQL queries against PostgreSQL.
  • Production experience with a background job system (BullMQ, Sidekiq, Celery, SQS-backed workers, or similar).
  • Production experience with React. Next.js experience is a strong plus.
  • Production experience writing integration tests against a real database. You understand why mocking the ORM is the wrong default.
  • Comfortable working in a codebase under active rewrite, where the answer to "how should I do this?" is "go read the canonical reference module and match its pattern."
  • Comfortable working remotely in an autonomous environment — you don't mind asking questions and problem-solving in public communication channels.
  • Able to collaborate during US time zones — you don't have to live in them, but you have to overlap.
  • You must be located in South or Central America. We are not currently accepting US-based or Europe-based applicants.

AI-forward — required, not optional

This is a non-negotiable for this role. We treat AI agents as primary force multipliers in daily engineering work, and we expect every engineer here to operate the same way. We aren't looking for AI-curious; we're looking for AI-fluent.

What that means concretely:

  • You drive agents to do substantive work, not just autocomplete. Claude Code, Cursor, Codex, or similar — your tool of choice. You can decompose a task, give the agent the right context, review what it produces critically, and iterate.
  • You have shipped real production code substantially authored by an agent. You can talk about a specific recent example: what worked, what failed, where you had to push back.
  • You treat agent output like a junior engineer's PR. You verify behavior, you write the tests, you read every line before committing. You never commit code you don't understand.
  • You know when not to use an agent — when prompting takes longer than typing, when the problem needs intuition the agent doesn't have, when correctness needs hand-verification.
  • You produce the artifacts that make agents more effective: clear specifications, well-shaped tasks, reference modules, skill definitions, review checklists. You understand that good context-engineering is the new senior-engineer skill.
  • You're comfortable in agent-driven workflows — spec-then-implement, parallel subagents, plan-then-execute, TDD with an agent pair.

If you've been quietly skeptical of AI tooling, this role won't be a fit. If you're enthusiastic but haven't actually used agents on production code yet, you'll need to ramp fast — we expect substantive agent-driven work within your first two weeks.

Benefits

  • Competitive salary and bonus + a large equity stake. We pay in the 75th percentile of market rates.
  • Unlimited PTO + 13 paid holidays per year.
  • $4,000 equipment allowance for your first two years, $3,000 budget every following two years.
  • Health, dental, vision insurance.
  • Individual learning + development budget (up to $2,500/year).
  • Flexible work schedule and remote work options.
  • Coworking space membership reimbursement.

About UserEvidence

While we are a fast growing remote-first tech startup, we prioritize a fulfilling and stable lifestyle for our employees. We have a real opportunity to get to $50M/yr+ in recurring revenue within 4-6 years and see a large exit, but we’re going to do so in a smart and sane way that is financially prudent and ensures that any exit substantially benefits all employees rather than simply founders and investors. We’ve raised a $4.5M from great investors including Afore.vc, Founders Collective, GTMFund), and FirstMile Ventures.

We want everyone to have a good work-life balance - there will of course be (a lot of) times where we’re grinding, but we want to enjoy the journey, not only the destination. Remote work and flexibility will be key, and we will also bring together our team in Jackson Hole (or other cool locations) once a year.

Our culture is one that prioritizes creativity, honest and open communication, transparency, smart risk-taking, humility, and growth.