Senior Software Engineer
Software Engineering
San Francisco, CA, USA
Posted on Jul 5, 2026
Software Engineer @ Caspian
Overview
40 million unique shipments enter the US every year, accounting for about $3 trillion worth of goods. In 2024, Customs and Border Protection collected $88 billion in duties. In 2025, CBP is on track to collect $200 billion, an over 2x increase from prior years.
The burden is extremely high on US importers. Not only do they face record-high duty expenses, but the regulatory landscape is shifting faster than ever. Importers are struggling to keep up and adapt.
Our mission is to reduce the burden of trade and compliance so that importers can focus on doing what they love: building and selling products. We believe those who participate in the global economy should be able to do so with minimal friction and high visibility. We also believe that smaller business should have access to the same tools that larger corporations can take advantage of.
What we’re building
Our journey begins with duty drawback - a tax recovery process that puts cash back into companies’ hands. It’s a cumbersome process that requires an immaculate record of trade documents and industry expertise. Because the process is so specialized and cumbersome, 70-80% of the estimated $10B in eligible refunds go unclaimed every year.
Caspian is building a data model and intuitive interface that lets users view, analyze, and action their trade volume; we connect to data sources across the supply chain to create a centralized repository of their trade network. With this data asset, customers go through the duty drawback process compliantly and efficiently. We collect a fee only when they’re paid, creating an incentive structure that is low commitment and benefits all.
The challenge is in the data - trade data is notorious for being fragmented and messy, coming in various forms such as raw documents, Excel sheets, CSVs, and/or API integrations. We’re leveraging technology to pull it into our system and connect it all together. As we expand, the same foundation will power future trade compliance products (link).
Because of the sensitive and compliance-heavy nature of this industry, building trust with our customers is of utmost importance. This has shaped our product and engineering culture into prioritizing reliability and thoughtfulness. We’re leveraging AI in an industry with a high consequence for inaccuracies. We take pride in the work we’ve done to keep that level of trust high.
The team
The Caspian team is currently 8 people; 3 of us are in engineering and the rest are scattered across sales, operations, and customs. Many of us are startup and trade veterans with product and logistics experience at some of the best companies in the industry. The core team cut their teeth at Flexport, where we built out the customs and drawback products while helping the company scale from hundreds to thousands of people.
The engineering team is currently based in San Francisco, working out of a private office space in a WeWork 3 days a week. The non-engineering team is split between San Francisco and remote.
We are a seed stage company and have raised $5.4M in total funding. We’ve built an initial product, onboarded tens of customers, and have real revenue. We are a licensed customs organization and many members of the team are LCBs (Licensed Customs Brokers). We’re growing fast and establishing a solid footing in the space.
The role
We’re growing our engineering team! We’re looking to hire a Senior Software Engineer to help own and contribute to the foundation of our tech.
Some of the technical challenges we’re working on:
Document Ingestion: We’re processing tens of thousands of unstructured documents on behalf of our customers. Each is run through an AI/ML pipeline to categorize and transform them into structured data.
Data Modeling: Global trade is messy. The truth is extremely difficult to narrow down. Building a data model that can not only handle, but can excel in a fragmented world is key. It needs to be flexible, reliable, and transparent.
Frontend and UX: Intuitive user experience is important to scale. The challenge is building an interface that both captures the complexities of global trade and is easy to navigate.
Matching Optimization: A duty drawback claim is the world’s biggest matching problem. We’re connecting imports to exports across years of transactions, through manufacturing transformation, fungible pooling, and regulatory constraints to get as much money back as possible.
Infrastructure: We’re growing, our computing needs are increasing exponentially, and our infrastructure is rapidly evolving. We’re always iterating on our tooling to make sure the developer experience is not frustrating.
About you:
Experience: You’re at a Senior level with 5+ years of experience. You’ve owned and built products from the ground up, maintained complex systems, and are excited to continue pushing the boundaries of your abilities. Startup experience is a nice-to-have but not necessary.
In-person: Our ideal candidate is in-person and able to work with us in San Francisco 3 days a week. We’re open to remote if you think you might be a great fit; there would be semi-frequent travel to San Francisco to collaborate with the team.
Product Minded: You’re not just here to code. You’re here to shape Caspian’s product, technical roadmap, and culture; making your voice heard on strategic decisions. You thrive in a fast-paced environment, ready to make a tangible impact with a team that brings expertise and a fresh perspective to a mature industry.
We’ve built a lot but are running up against the limits of what you can do with 3 people. That’s why we need you! We’re still learning what the perfect candidate looks like, and we encourage anyone excited about these challenges to apply.
The tech
Our backend is a Node + NestJS app written in Typescript. PostgreSQL is our database and we use Prisma + Kysley as our ORM and query layer. Workers are handled using BullMQ backed by Redis. The frontend is served via GraphQL.
The frontend is built with React and Relay (for GraphQL). Everything is inside a monorepo on GitHub, this allows us to share a lot of code between the stack and minimize friction when developing.
The infrastructure is hosted on Render and deployed using Pulumi (IaC). We use CI/CD and every PR, once approved and merged, is deployed immediately to staging and production environments.
We use Nix and direnv for our development environment. Package versions are pinned and local infrastructure is preconfigured. This ensures every developer’s environment is identical and new engineers can hit the ground running immediately.
We believe in inherited over acquired complexity. The team is small and our capacity for maintaining infrastructure is low, so we put an emphasis on choosing tools and patterns that keeps us focused on building what truly matters.
Hiring Process
We understand that this is a big decision for us and also for you. We have a few steps in our process to ensure that both sides are able to evaluate each other and get a feel for what working together would feel like.
(Optional) Recruiter Chat: A chat with a Caspian recruiter to determine your interest level and overall fit for open roles. If you’re seeing this document for the first time, chances are you are here (or about to be)!
CTO Chat (30-45 min): A chat with Matthew Ebeweber to get to know you, tell you more about Caspian, and assess whether there’s a mutual interest and fit.
Technical Screen #1 (45-60min): You’ll go through an algorithmic question together in any language and framework of your choice (Coderpad). The goal of this interview is testing how we communicate together, how you navigate ambiguous specifications and general programming competency. We’re not trying to trick you.
Technical Screen #2 (45-60min): Same as #1.
On-Site: You’ll meet more folks on the team and have a series of interviews to better understand your experience, background and skillset.
Cross Functional #1 / #2: You’ll have 1-2 cross functional interviews that dive into your story, experience and career. The goal is to understand how you operate, how you make decisions and what’s important to you.
Project Deep Dive: We’ll dive into a project that you’ve worked on. This should be a project that you’ve worked on in a professional capacity with multiple stakeholders and shipped.
Technical Screen #2/3 (Optional) (45-60min): Similar to #1.
Reference Checks: We will ask to speak to 2-3 people who you’ve worked with.
This is a rough guide to what you can expect. The actual steps may vary depending on your role, background and availability. In the past, we have done work trials and entertained alternative processes.