Principal Software Engineer, Back End
About the role
About Us
CD Baby is a globally recognized leader in the music industry and the first platform to offer artists direct distribution to their fans. Our technology organization has a deep history and a strong foundation, built by long-tenured, dedicated professionals. As we navigate the next era of music technology, we are committed to modernizing our core systems, fostering an agile culture, and leveraging cutting-edge platforms to better serve our artists, partners, and fans worldwide.
The Role
We are seeking a Principal Software Engineer to be the technical leader of back end engineering for CD Baby’s flagship customer-facing software: the member-facing application our artists use to distribute their music, get paid, and understand their audiences, and the .com marketing site that brings new artists into the platform. This is a hands-on, individual-contributor role with broad technical authority and informal mentorship responsibility — the kind of engineer who raises the team’s bar by example.
In the near term, you will help us complete a full platform migration from on-premises infrastructure to the Azure cloud — the foundation our customer experience will be built on for years to come. Beyond that milestone, your defining technical mandate is to lead the architectural evolution of our customer-facing stack from a .NET monolith into a modular, API-driven, service-based architecture.
Equally important is the product mandate. CD Baby is a working software product that artists rely on daily. You will partner with a cross-functional agile team to deliver a steady cadence of new features and improvements — so every cycle of modernization is paired with real, shipped customer value.
This is a role for an engineer who is energized by both the discipline of shipping software customers depend on every day, and the craft of redesigning the system underneath.
What You’ll Own
Architecture & Technical Strategy
- Define and drive the multi-year architectural evolution of CD Baby’s customer-facing platform from a .NET monolith to a modular, service-based architecture with clean API contracts between front end and back end.
- Decompose the monolith into encapsulated services aligned to the core domains of the product — distribution, royalties, analytics, catalog management, account — with clear ownership, contracts, and operational boundaries.
- Choose the right language and the right data store for each service. We are .NET and SQL Server today and will be for some time; we want a future where Go, Node, Python, and other languages live alongside .NET where they earn their place, and where data stores are selected to fit the workload rather than by default.
- Own the application data model end-to-end, setting ORM patterns, schema design, and data access conventions that the back end team operates by.
- Partner with Data Engineering to design data models and pipelines that flow cleanly into Snowflake, so analytics and reporting are first-class outputs of the platform.
Hands-On Delivery
- Write production code. This is a Principal IC role; your influence comes from the work as much as from the design.
- Help carry our platform cloud migration across the finish line, ensuring the back end matches the quality of the front end work already underway.
- Establish and uphold engineering standards — CI/CD, automated testing, observability, performance, security — across the back end. Set the bar by writing the code that defines it.
- Run a continuous-delivery cadence: every product cycle on distribution, royalty splits, analytics, or catalog tooling is also an opportunity to modernize a slice of the stack. You’ll plan th