Senior Software Engineer, Data Platform
- Hiring from
- Ireland
- Work type
- Hybrid
- Posted
Show job descriptionHide job description
About Empyrean
Empyrean Solutions is the fastest growing financial risk management and performance solutions platform, specifically designed for banks and credit unions. Since 2008, we've been trusted by financial institutions across the globe to deliver cutting-edge ALM, budgeting, profitability analysis, and compliance tools through our unified Empyrean Dataverse® platform. Our solutions emphasize speed, accuracy, and ease of use to help financial institutions make faster, more informed decisions.
At Empyrean Solutions, you won't just have a seat at the table - you'll help build it. Every person here has a direct, visible impact on where we go next. You'll work alongside a genuinely collaborative team, backed by AI tools available to every employee from day one.
The role
The Data Platform will be the home of all Empyrean data. Some products already run on it, others are moving over now, and new products, including our AI and reporting products, will be built on it from the start. The services, interfaces and patterns you build now are the ones they'll all run on. Over the next two to three years, volume per customer grows from a few million rows a month to more than 100 million rows a day.
We're hiring a senior software engineer to build that platform the way you'd build any enterprise SaaS backend, with services that load each record exactly once, contracts that don't break the products downstream, and tenants that can't see each other's data. You don't need a data engineering background. You do need to have shipped and run production backend systems, and you need to care whether the data is correct.
You'll join a platform team of four to five engineers and test automation engineers, working with a data architect who sets platform direction.
The role is hybrid requiring three 3 days a week in our office in Cork, Ireland.
What you'll work on
Event-driven ingestion services. Build the services that bring customer data onto the platform, delivering exactly-once results over at-least-once delivery. You know how they behave when things fail: retries, redelivery, reordering and late changes.
Versioned contracts and APIs. Build the interfaces, shared SDKs and data feeds that Empyrean products, and later our customers, use to read platform data. Keep them versioned, tested in CI and safe to evolve, so a platform change never surprises a team downstream.
Correct, reproducible results. Build point-in-time history and exact decimal arithmetic into the platform's types, tests and interfaces, so every product gets them by default, and any result can be reproduced exactly as it was on any past date.
Scale without runaway cost. Grow services and storage by orders of magnitude while keeping queries fast and costs rising more slowly than volume. Measure first, and back changes with load tests and cost data.
Self-service onboarding. Build the control-plane services and tooling that bring a new product or a new customer onto the platform in days, not months, within our multi-tenant model.
Data ready for AI and ML. Make customer data usable by models and AI features, with the same contracts, tenant separation and reproducibility as everything else on the platform.
Operability built in. Ship SLOs, alerting and CI gates with every service, and take part in incident response for what you own. Each incident ends with a fix that stops it recurring.
What you bring
5+ years building software professionally, including backend services you designed, deployed and ran in production. We care more about what you've built and operated than about the count.
Production experience in Python, C#/.NET, Java or a similar backend language. Our platform services are mostly Python, and our shared data SDK and the products that use it are .NET. We use AI tooling heavily, so if you come from Java or another language, you'll pick up Python and C# quickly.
Instincts for distributed systems: idempotency, ordering, concurrency, retries, and what "exactly once" costs.
Testing as a habit: unit tests, integration tests against real dependencies, and CI that fails when it should.
Experience evolving APIs and schemas: versioning, backward compatibility, and moving consumers over without a big-bang cutover.
Strong SQL, and a working understanding of how a cloud data warehouse executes and bills a query.
You understand how multi-tenant software keeps each customer's data separate, and you build within that model: scoped service identities, least-privilege access, and no shortcuts.
You mentor through code review and pairing, and you leave behind patterns and docs that others can follow without you.
You write clearly. You measure before you propose a design, and your PRs say what changed, why, how you tested it and what could go wrong.
Nice to have
Experience with systems where exact numbers and audit history matter, such as payments, billing, ledgers or accounting.
Our stack
Python and C#/.NET, Snowflake, dbt, Terraform, Azure (Functions, Container Apps, Service Bus), GitHub Actions. Beyond a strong backend language, you don't need experience with any of these. You'll pick them up here.
How we work
Small team, high autonomy. You know how your area is designed, built and run in production. Our data architect owns the overall platform direction, and you bring evidence to those decisions.
AI-first. Claude Code and Cursor are part of how we build. We expect you to use them well, and to review what they produce as hard as you review your own work.
Significant decisions go through written RFCs with measured evidence.
Someone other than the author verifies every change, and code reviews have substance.
This probably isn't the role for you if
Your production experience is mostly notebooks or scheduled SQL, with no service you've had to keep running.
You'd rather deduplicate in a downstream query than fix why the duplicates arrive.
You work best from fully specified tickets.