Reporting · Workflow
Enterprise Report Center Platform
Centralized reporting hub consolidating fragmented exports into a governed, searchable platform.
Problem
Business users were generating reports from many disconnected internal tools, each with its own format, access model, and history. There was no consistent way to schedule, share, or audit those reports.
Business context
An enterprise life-sciences organization where regulated workflows demand traceability and consistent formatting across hundreds of report variations and dozens of downstream teams.
My role
Senior full-stack engineer responsible for API design, background job orchestration, Angular UI for report search and management, and stakeholder communication with reporting owners.
Solution
- Designed a report registry where each report definition owns its parameters, schedule, retention, and access list.
- Built a queued generation pipeline so heavy SQL/PowerPoint/Excel work runs out-of-band without blocking the UI.
- Added a searchable Angular UI for users to find, preview, and re-run their reports.
- Wired role-based access on top of the existing OIDC identity provider.
Architecture highlights
- ASP.NET Core Web API as the orchestration layer, with EF Core for metadata.
- Background workers consume a durable job queue with retry-safe processing.
- Generated artifacts stored in object storage; metadata + audit trail in SQL Server.
- Angular SPA consumes the API with feature-flagged rollout per business unit.
Challenges
- Legacy reports had inconsistent parameter shapes; needed a normalization layer without breaking existing schedules.
- Large generations occasionally timed out; required idempotent retries and progress visibility.
- Multiple teams owned different report families with different SLAs.
Outcome / impact
- Reduced manual effort for recurring reports.
- Improved traceability of who ran what, when, and with which parameters.
- Enabled faster reporting turnaround by moving heavy work off the request thread.
What I learned
- A small, well-named metadata model is worth more than a clever generic engine.
- Treat report generation as a long-running job from day one — not as a synchronous API call.
Related posts
How I Design Enterprise .NET APIs for Maintainability
A practical checklist for designing ASP.NET Core APIs that stay easy to change three releases from now.
Lessons from Building Enterprise Reporting Workflows
Hard-earned lessons from years of building report generation, scheduling, and distribution systems.