About this role
We're looking for mid-level and senior engineers software engineers with strong, frontend, product, and backend experience to build the systems that power billing for modern B2B companies.We're a lean team growing to 20+ engineers. You'll have real influence on what we build and how we build it. Early enough to shape fundamental architecture. Late enough that customers depend on what you ship.Right now we're hiring across two areas of the engineering team:ProductYou'll ship features end-to-end and build the experiences our customers use every day.AI-powered approval workflows. Enterprise deals need approval chains, but rigid workflows break when every company has different rules. You'll build flexible routing that customers configure in natural language - "require VP approval for deals over $100k with annual terms" - and turn that into deterministic, auditable business logic.An intelligent collections agent. Chasing late payments is tedious, manual work. We're building an agent you instruct in natural language (“send a reminder at 7 days overdue; escalate at 14 days”), which then runs the entire workflow autonomously.Scaling billing infrastructure 10x. We’re building revenue-critical infrastructure and currently rearchitecting our billing pipeline for an order of magnitude more throughput - rethinking storage strategies, horizontal scalability, and how we’ll handle 10x load without 10x cost.You'll design systems that process high-velocity event streams, make technical decisions that balance cost and performance at scale, and build infrastructure that never compromises on reliability. This is business-critical infrastructure: a dropped event means someone isn’t charged correctly. An outage at month-end means finance teams can't collect revenue from their customers.PlatformAs a part of the platform team you'll own revenue-critical infrastructure - the kind where correctness isn't negotiable and downtime isn't an option. Our usage events platform processes every merchant action that determines how their customers get billed, making it one of the most critical systems we run. You'll work on the evolution of this platform to handle exponential growth while maintaining perfect accuracy.Core responsibilities include:Own revenue-critical event infrastructure. You'll work on systems that process customer usage data on which billing and invoicing depend. Design event streaming pipelines that handle high throughput with low latency. Build robust systems where data accuracy is non-negotiable and uptime is measured in nines.Design scalable data systems. You'll work with event streaming architectures, building sophisticated ingestion pipelines and query optimization strategies. Our event volumes grow with every new customer, so you'll architect systems that scale efficiently while keeping costs reasonable.Shape our backend architecture. You'll tackle our most complex technical challenges and set the standards for how we solve them. Our services run on Kotlin with Spring Boot, and you'll have significant influence over architectural patterns and how we approach infrastructure problems.Build for the next phase of growth. You'll design systems that work beautifully today and scale to 10x the load tomorrow. This means thinking about data storage strategies, horizontal scalability, and how your architectural decisions affect performance as volume increases.Drive impact on a small team. We've built an engineering culture around collaboration, learning, and shipping. You'll have significant influence on what we build, how we build it, and how we work together.You should apply ifYou're a builder who wants to solve problems end-to-end:You've shipped production backend systems and care about the difference between "it works" and "it's reliable"You care about customers - you want to understand why you're building something, not just whatYou’re comfortable with ambiguity. You thrive in early ideation stages, share work-in-progress to gather feedback, and adapt easily based on inputYou communicate clearly. Thoughtful communication is a superpower that sharpens how we collaborate and buildYou're interested in distributed systems and writing resilient softwareNice to have: Deep relational database expertise. We do a lot of complex queries and care about performance.This might not be right ifWe're a small team moving fast on hard problems. That might not be a fit if you:Enjoy larger organization structures and staying only within your area of expertise. Taking ownership here means doing whatever the problem needsWant a traditional engineering team set up, with a predictable roadmap and clearly scoped out tickets provided for youPrefer a slower pace. Customers are depending on what we shipAren't comfortable with production responsibility. We're revenue-critical infrastructure - on-call matters hereSome other cool stuff!What our newest hires have shippedWatchtower: our command center for AI agents. As we introduce agents that automate financial workflows, customers need visibility and control. This included building our first agent - a contract intake system that extracts customer and pricing information from uploaded or emailed contracts, taking customers from signed contract to automated billing in minutes.A fully integrated e-signature experience for quotes. When a customer is closing a deal, friction kills momentum. We rebuilt the signing experience - including embedded authentication and branded emails - into a seamless signing experience used by teams at the top tech companies every day.Role-based access controls across the product. Different companies have different structures, but they all need tight control over who can approve deals or access sensitive data. This meant designing a flexible RBAC model that handles resources across every API endpoint and UI surface.See more of what we’ve shipped in our public changelog.Tech stackWe hire for ability, not a specific tech stack. Most of the team learned Kotlin here:Backend: Kotlin (modular monolith using Http4k, Spring Boot, Exposed, Result4k)Storage: Postgres, BigQueryAsync messaging: Google Cloud Pub/SubInfrastructure: Google Cloud, TerraformFrontend: TypeScript, ReactMonitoring: Google Cloud Monitoring, SentryTools: GitHub, Slack, Notion, LinearInterview processWe move fast - typically 1-2 weeks start to finish:Initial interview (30 mins)Technical interview (60 mins)Product interview (30 mins)System design interview (45 mins)Founder interview (30 mins)We've also written a detailed blog post about the interview process with tips about how to prepare.