net·devs
← Work
InternalHR / Internal Tooling

OSKI CRM

OSKI CRM screenshot 1
OSKI CRM screenshot 2
OSKI CRM screenshot 3

An internal company CRM used daily to track employee worklogs, manage internal boards, calculate salaries, run reporting, and send notifications. We stabilized a legacy Umbraco/.NET codebase that had accumulated significant technical debt — fixing calculation bugs, optimizing SQL queries, correcting stored data, and hardening the Excel export and notification flows that the business depends on.

Challenges

Legacy codebase with accumulated debt

The CRM had grown organically without a clean architecture. Bug fixes required understanding deeply coupled logic before touching anything — any change risked cascading side effects in the salary calculation or reporting pipeline.

Data integrity issues affecting calculations

Incorrect or inconsistent data stored in the database flowed directly into salary calculations and Excel exports. Fixing the calculation logic required first identifying and correcting the underlying data problems.

Performance bottlenecks in frequently used queries

Several SQL queries used for daily operational reports had no indexing strategy and ran full table scans. Profiling and optimizing these reduced execution time significantly for the most-used operations.

Our approach

01

Codebase orientation and bug triage

Mapped the existing system — worklogs, boards, salary engine, reporting, notifications — and triaged the backlog by severity and business impact. Prioritized data integrity and calculation bugs above all else.

02

Data correction and calculation fixes

Identified and corrected inconsistent records in the database that were producing wrong salary figures. Fixed the calculation logic in the reporting engine and validated outputs against expected values.

03

Query optimization

Profiled the most-used SQL operations, identified missing indexes and inefficient query patterns, and rewrote the bottleneck queries. Verified improvements against the production data volume.

04

Excel exports and email notifications

Fixed the Excel report generation to produce correct, consistently formatted output. Configured the email notification flows for internal events and tested delivery across all trigger conditions.

Result

Stabilized salary calculation and reporting. Improved query performance on frequently used operations. System remains in active use after handoff.

By the numbers

Internal

Project type

fixed & stable

Excel reporting

corrected

Salary calculation

configured

Email notifications

Tech stack

.NETUmbraco CMSAngularSQL Server

We want to hear your thoughts.

our CTO Kyrylo Osadchuk, will reply within 24 hours. No SDR funnel.