How Imprint Works
For everything we write on this blog, our goal is to help future colleagues get a sense for working with us. Most of the time we think the best approach to that goal is sharing the details about what we’re actively working on now, but in this post we wanted to take a slightly different tack and give an overview of what we do and how we do it.
Our Business
Imprint powers modern, co-branded credit cards for partners like H-E-B and Brooks Brothers. Co-branded credit cards are a unique business to work in because everybody wins: partners get more loyal customers, and cardholders get superior benefits from the partners whose cards they use.
To power co-branded credit cards, we coordinate card issuing, money movement, and rewards across four parties:
- Partners like H-E-B or Brooks Brothers who offer branded credit to their customers
- Cardholders who use a branded credit card offered by a partner
- Financial Integrations including payment processors and banks who support technical and compliance requirements
- Imprint (that’s us!) who coordinate the interactions across the other three parties
The more partners that choose to run their program with Imprint, and the more cardholders that join each partner’s program, the more Imprint’s business grows. Cardholders can always choose a new card, requiring that both Imprint and our partners work to earn their business.
Our Architecture
Much of our approach to architecture at Imprint is anchored on uncontroversial good practices: decoupling services to allow independent progress across teams, MySQL databases isolated to each service, using a hosted Kubernetes solution, and so on.
Below is a simplified version of our current architectural diagram, showing our service-based architecture, running on EKS on AWS. Each service has a dedicated MySQL database, ensuring data and data access is isolated across services. If you’re interested in more detail, we’ve previously described the earliest version of that technology on this blog.
Directionally accurate architecture diagram!
Relative to a theoretical company that spun up today to compete with Imprint, one area where we’re opinionated is owning our core: for most things we prefer using best-in-class solutions over building our own, but we believe owning the core of our platform enables a truly differentiated, superior co-branded credit card program. Each partner’s business has different opportunities for rewards, and owning our core allows us to offer novel integrations between payments, our ledger, and cardholder rewards that stretch to meet our partners’ imaginations.
Our Tech Stack
Imprint has adopted a modern technology stack similar to many other technology companies founded in 2020. Our technology stack is:
- Web: TypeScript and React applications
- Mobile: native applications in Swift and Kotlin
- Backend: service oriented architecture of Go (and a few Java) services and MySQL storage
- Data Eng & Data Sci: Python, Airflow, DBT, Snowflake, Jupyter
- Infrastructure: Terraform, AWS, EKS
Our Development Process
We optimize our development process for single-threaded product engineering squads (e.g. cardholder experience), and multi-threaded infrastructure teams (e.g. infrastructure, data engineering). For single-threaded teams, we consider it a bug to fix any time they take a dependency on another product engineering team. That being said, we’re still a small team so we don’t want to pretend dependencies never happen: they do, but we work diligently to reduce them over time.