Back to Projects

Analytics & Monitoring

Activity Monitoring

A platform activity monitoring system that aggregates user activity into dashboards for operational visibility.

Software Engineer at PT Bank Mandiri (Persero) Tbk. · April 2022 - July 2024

10 -> 2,400

User Adoption

2,400

Weekday Active Users

3,000-6,000+

Reported Records / Transactions

1-3

Requests / Second

The Problem

Business stakeholders needed visibility into user activity and transaction-related activity across the platform, while the available environment did not provide external message-queue infrastructure.

My Role

Delivered the initial analytics foundation as the sole developer, then contributed as technical lead for the follow-on activity monitoring and dashboard implementation.

Architecture

The monitoring system collects activity information through an in-memory queue, prepares reporting data through PostgreSQL aggregation, and exposes the resulting data to the activity dashboard.

  1. Platform Activity

    User and transaction-related activity generated by the platform.

  2. In-Memory Queue

    HashMap-based queue used because external message-queue infrastructure was not available.

  3. PostgreSQL

    Pre-calculated aggregations prepared for reporting and dashboard queries.

  4. Activity Monitoring Dashboard

    Dashboard providing activity visibility for business stakeholders.

Activity events
Reporting data
Aggregated reporting data

Engineering Decisions

  • In-memory queue

    Used a HashMap-based in-memory queue because external message-queue infrastructure was not available.

  • Pre-calculated aggregation

    Used PostgreSQL aggregations to prepare reporting data efficiently for dashboard consumption.

  • Gradual rollout

    Introduced the system incrementally, beginning with a 10-user test group before expanding to the broader user base.

What I Built

  • Delivered the initial productivity monitoring foundation as the sole developer in 2 months.
  • Built the activity reporting mechanism using an in-memory HashMap-based queue.
  • Implemented PostgreSQL pre-calculated aggregations for dashboard reporting.
  • Led a 3-person cross-functional team during the follow-on Activity Monitor and Dashboard Reporting implementation.
  • Supported a gradual rollout from an initial 10-user test group to 2,400 weekday active users.

Constraints

  • External message-queue infrastructure was not available.
  • The initial analytics foundation had to be delivered within 2 months.
  • The system needed to support a substantial increase in active users during rollout.

Outcome

The monitoring system grew from a 10-user test rollout to 2,400 active weekday users, using an in-memory queue and pre-calculated PostgreSQL aggregations for dashboard reporting.

Technology

JavaSpring BootPostgreSQLHashMap-based In-Memory QueueJasper Reports

Engineering Highlights

Spring BootData aggregationPerformance optimizationTechnical leadershipProduction rollout