Back to jobs

Back-End Engineer (Go or similar)

RivetRemote (United States)Posted 1w ago
Software Engineer (Python, AWS) - Remote
Full Time
Remote
Craft my tailored resume free

Free to start · No card

Job description

About Rivet

Rivet is an AI-native accounting firm. In less than 3 years, we've built a T500 firm in the US, combining corporate and personal income tax, sales tax, R&D credits, and bookkeeping into a single, all-inclusive experience that eliminates the worst parts of tax season for real businesses and the people who run them.

Our platform is designed to feel invisible: it guides clients through their tax to-dos, automates the drudgery for preparers, and gets out of the way when it's not needed. We measure success in time saved and returns completed, not vanity usage metrics. We run Rivet (the firm) on Rivet (the platform) because owning the stack makes it possible to deeply embed AI into every step of our workflows, far more than our competition will ever be able to relying on third-party/off-the-shelf tooling.

Our team of 75 supports more than 1,300 clients, including some of the most innovative companies in the US — Cursor, Cognition, and ModRetro — and their executives, investors, and employees.

And while we may have just gotten started a little over two years ago, this isn't our first rodeo:

  • Nick Abouzeid (cofounder & CEO) comes from Ramp, where he ran three of their Growth teams from $100M → $600M in ARR

  • Kyle Christenson (cofounder & Head of Tax) comes from the IRS, where he spent six years as an auditor before leaving to start his own firm over a decade ago

We're well-funded, growing quickly, and sustainable. We've raised over $7M to date, from investors like XYZ Ventures, Susa Ventures, Haystack Ventures, and 40+ executives from Ramp, Anduril, Physical Intelligence, & more.

Why this role is different

Tax software fails quietly. A number lands in the wrong box, nobody notices until a notice arrives, and by then it's a client's problem. The backend is where we decide that doesn't happen.

  • Ownership from first commit to production. Engineers design, build, ship, and maintain their work — no handoffs, no middle-management mazes.

  • Decisions happen at the edge. Engineers talk to clients and tax preparers directly. We optimize for speed and context, not committee consensus.

  • Clear is kind. We surface problems early, talk about tradeoffs openly, and don't sugarcoat. We're kind by being honest, not by being vague.

  • Pragmatic stacks. We pick tools that solve real problems. If it doesn't help us ship faster, safer, or better, we don't use it.

  • Skin in the game. We ship things we'd be proud to put our name on — and if something breaks, we own it and fix it fast.

Our stack

Six engineers today, five languages. Our platform and infrastructure are Go end to end:

  • Platform: Go, as a modular monolith — Connect RPC over protobuf, Go Fx for wiring, sqlc and goose against Postgres, River Pro for background jobs, Watermill for pub-sub over RabbitMQ.

  • Frontend: React and TanStack, deployed to Cloudflare Workers.

  • AI and eval: Python, in their own repos — ModelBridge (a gRPC service for AI building blocks) and TaxBench, our internal eval suite.

  • Legacy integration: a C# Windows agent that drives Drake, one of the tax platforms our industry never built APIs for.

  • Infrastructure: AWS — ECS Fargate, Amazon MQ, AMP, Loki, Tempo — provisioned by Pulumi, itself written in Go.

  • Around the edges: Buildkite for CI, OpenTelemetry throughout, Doppler for secrets, Linear for tracking.

What you'll do

  • Own modules in the Go monolith end to end — schema and migrations through Connect RPC surface, including the background jobs and pub-sub flows behind them.

  • Automate systems nobody meant to be automated. Our industry never built APIs. We drive a desktop tax platform through a C# agent, parse filings that arrive as scanned paper, and reconcile ledgers that disagree with each other. This is most of the interesting work.

  • Put AI on the critical path. Wire ModelBridge into real workflows and hold it to TaxBench, our eval suite — we treat eval as an asset, not a side project. A model that's right 95% of the time is a design problem, not a launch.

  • Own what you ship in production. Tracing, alerting, on-call, and the load curve of a firm whose traffic triples in March. April 15th doesn't move.

  • Work directly with preparers. The people who'll catch your bug are on Slack, and they'll tell you exactly what happened.

We're fully distributed — but if you want an office, we'll help you find one through our investor network.

What makes you a fit

  • 4+ years building backend systems, including 2+ years writing Go in production

  • Real Postgres depth — schema design, migrations against live data, and knowing why a query got slow

  • Have built and operated asynchronous systems: background jobs, queues, retries, and the failure modes that come with them

  • Bias toward correctness in a domain where a wrong number has consequences, and the judgment to know when it doesn't

  • Comfortable operating in a fast-changing, early-stage environment

  • Excellent verbal and written communication skills

Nice to haves

  • Connect RPC, gRPC, or protobuf-first API design

  • Event-driven architectures on RabbitMQ, Kafka, or similar

  • Infrastructure as code — Pulumi, Terraform, or CDK — and comfort owning your own deploys

  • Shipped LLM systems into production paths and evaluated them properly, not as prototypes

  • Built tax-adjacent software — fund administration, payroll, accounting platforms, filing systems

  • Enjoy getting creative with APIs and systems that were never meant to be automated

What we offer

  • Benefits and meaningful equity

  • A fully remote team, plus twice-yearly company offsites

  • A well-funded, fast-moving environment with minimal layers of management

  • A world-class client base that values your time and pays for the premium experience

  • Problems that are unusual — nobody else is writing daemons against 1990s tax software to feed a modern agent stack

We encourage you to apply even if you don't meet every qualification. Strong candidates rarely check every box.

Originally posted on Himalayas

Prepare your application

Use the description above to assess your fit for Rivet. This checklist is guidance from Resumize, rather than additional requirements from the employer. Imported listings can be shortened or change after collection, so confirm the complete description and current availability before sending an application.

Match requirements to evidence

Identify the responsibilities and skills the employer explicitly names. For each important requirement, choose one example from your work, education, training, or projects. Explain what you did, how you did it, and what changed as a result. Include a measurable outcome when you can support it. If you lack a requirement, describe related experience accurately instead of adding an unfamiliar skill to your resume.

Put the most relevant examples near the top of your resume. Keep job titles, dates, qualifications, and contact details consistent across your application materials. Use the employer’s terminology when it describes your experience accurately; a copied list of keywords does not explain your contribution. A short, specific bullet is easier to review than a paragraph that mixes several unrelated duties.

Check the working arrangement

Confirm the location, schedule, employment type, and any eligibility requirements on the employer’s site. A remote label does not establish worldwide eligibility or flexible hours. If compensation, benefits, equipment, travel, or contract duration are missing from this listing, write down your questions for the recruiter. Do not assume details from another opening at the same company apply to this role.

Review before submitting

Follow the employer’s requested file format and application instructions. Open your exported resume and check that its text is selectable, its sections read in order, and its links work. Proofread names, dates, and contact information. Share confidential work samples only when you have permission, and use an anonymized example when necessary.

Submit through a trusted employer or recruiting destination. If the original listing has disappeared, search the employer’s careers page for the title rather than assuming the vacancy remains open. Save the application date, job reference, and the version of your resume you sent. Those details help you prepare for a later conversation and avoid submitting conflicting information through several job boards.

Review your resume for writing and readability feedback, or browse other openings if this opportunity is unavailable.