About
The Project
Payroll Engine is an open-source, domain-specific framework for payroll automation — built for software teams who need to embed payroll processing into larger platforms rather than build it from scratch.
The idea emerged in 2018 during a consulting engagement where existing payroll solutions were either too rigid, too opaque, or impossible to integrate cleanly into a modern software architecture. After years of development, the result is a framework that treats payroll as a composable, testable, and scriptable domain — not a black box.
The engine is maintained by a single developer and shaped by real-world payroll requirements across multiple countries and industries.
Design Goals
| Design Decision | Rationale |
|---|---|
| Embeddable | Payroll must integrate into any platform — a full REST API with no UI dependency was non-negotiable |
| Regulation-driven | Hardcoded payroll logic doesn't survive country changes or client customization — versioned, exchangeable modules do |
| Scriptable | Domain experts need to own calculation logic without waiting for developers — No-Code actions and C# scripting cover both ends |
| Testable | Payroll errors are costly and hard to reproduce — a built-in test framework for cases, payruns, and regression is mandatory |
| Multi-tenant | SaaS payroll platforms share regulation layers across clients — tenant isolation had to be a first-class concern, not an afterthought |
| Time-aware | Overwriting past data destroys auditability — every change is a time-stamped event, enabling retro recalculation and full history |
Current Status
The Payroll Engine is in pre-release. Version 1.0 is the first stable release targeting production use.
See Releases for the versioning policy and breaking change scope.
Open Source & Funding
The Payroll Engine is released under the MIT License and lives from community support.
If this project saves you time or forms the foundation of your product, please consider sponsoring it. Every contribution — however small — directly enables continued development.
A sincere thank you to everyone who has supported the project so far. ❤️ Sponsors
Contributions
Community contributions are welcome in the following areas:
| Area | Details |
|---|---|
| Docker | Docker Compose Stack |
| CI/CD | Pipeline integrations — see Repositories |
| Linux | Container setup and Linux compatibility — Container Setup |
| Web App Localization | Translation files for the Web Application — Localizations |
| MySQL | Alternative persistence layer — SQL Server reference |
Please get in touch if you are interested in contributing.
About the Author
Jani Giannoudis is an independent software consultant and architect based in Switzerland, with over 30 years of experience building technical and business frameworks across demanding domains — including CAD systems, GMP-compliant electronic batch record applications, and XBRL processors for financial reporting.
The Payroll Engine is the culmination of that experience applied to payroll: a domain-specific framework designed the way software architects think about the problem, not the way legacy payroll vendors built their black boxes.
He has published 13+ technical articles on dev.to and his Time Period Library for .NET is a widely used open-source library in the .NET ecosystem.
Alongside the Payroll Engine, he advises companies on the architecture and development of complex software systems.
Help and Contact
| Channel | Purpose |
|---|---|
| GitHub Discussions | Questions, ideas, feature requests |
| GitHub Issues | Bug reports, technical problems |
| Partnership and direct inquiries | |
| Business inquiries, partnerships |
Payroll Engine is maintained by a single developer. Please allow a few business days for responses.