Skip to main content
Hubexo

Hubexo

At Ciklum, I led the backend development for Hubexo's research preparation platform. The core challenge was building real-time transcription pipelines that integrated with Azure Communication Services and Azure Speech, while also connecting to legacy systems without introducing latency. I reduced API latency by 25% through careful optimization of the RESTful layer and maintained 75%+ unit test coverage across all backend services. Security was a first-class concern — I integrated Azure AD with SSO and implemented granular role-based access control. The CI/CD pipeline ran on GitHub Actions with automated test gates, which helped cut production bugs by 60%. The team ran Scrum sprints, and I collaborated closely with stakeholders during the discovery phase to de-risk requirements early, reducing development rework by 30%.

Technologies

NestJS
React
Azure AD
AWS Bedrock
PostgreSQL
Jest
SuperTest
GitHub Actions

Key Highlights

  • Led backend dev with real-time transcription, reducing API latency by 25%
  • 75%+ unit test coverage, cutting production bugs by 60% via automated CI gates

Engineering Challenges

01

Fixing a Dashboard That Took 3–5 Seconds to Load on a Large Construction Dataset

Hubexo's Project Intelligence dashboard aggregates live data across a large volume of active construction projects — filtering by region, contractor, project stage, and tender status. Under real usage the dashboard was taking 3 to 5 seconds to load, making it feel broken rather than fast. EXPLAIN ANALYZE pointed to two compounding problems: join queries across projects, companies, contractors, and tender records were doing full sequential table scans because the foreign key columns had no indexes; and expensive aggregations — regional project counts, tender status breakdowns, contractor league tables — were being recalculated from raw rows on every single request, even though this data only meaningfully changed a few times per day. Adding composite indexes on the join and filter columns cut scan costs immediately. Materialized views were then introduced to pre-compute the heavy aggregations and refresh them on a schedule rather than on every request. Query time for the dashboard's most expensive calls dropped from several seconds to under 90ms — a 70%+ improvement in response time.

Command Palette

Search for a page or action...