Penang, Malaysia · Building operational software since 2019

Hazwani Razak

Senior Software Engineer Systems & Product Builder

“I build operational software that connects physical infrastructure, resilient backend systems, and interactive interfaces.”

Curiosity. Clarity. Code.
7+Years building
production software
4Layers: embedded,
backend, web, mobile
2Major app stores
shipped to users

How I think · Before the stack

I solve the system before I solve the screen.

Good operational software starts with understanding the real work: what must stay reliable, where information changes hands, and what people need to decide next. Technology comes after that picture is clear.

My engineering lens

Context first. Boundaries second. Code third. Production always.

  1. 01

    Observe the operation

    I start with the people, equipment, and decisions around the software. What must they complete, and what gets in their way?

  2. 02

    Trace the whole system

    I follow one event across every boundary: physical input, edge device, service, database, interface, and the person acting on it.

  3. 03

    Find the failure boundary

    I look for stale state, competing workloads, weak connections, constrained hardware, and unclear ownership before they become production problems.

  4. 04

    Choose the reliable shape

    I prefer clear responsibilities, deliberate lifecycles, and recoverable flows over clever code that is difficult to operate.

  5. 05

    Close the loop

    I validate the real workflow, release it, observe how it behaves, and feed what production teaches us back into the design.

System / scope

End-to-end is how I see the problem.

Operational
01PhysicalControllers / Assets
02EdgeC++ / ARM Linux
03BackendNode.js / TypeScript
04InterfacesWeb / 3D / Flutter
05OperationDecision / Action
DesignBuildShipObserveImprove

Selected work · The thinking in practice

Selected work, as evidence.

Three examples showing the constraint I found, the decision I made or contributed to, the system flow, and what it enabled in production.

01

Data · Concurrency · Reliability

Time-Series & Alarm Analytics

Turning continuous operational data into historical reports that are practical to query.

Problem

Continuous point data and alarm events needed useful historical views without letting summarisation compete with realtime application work.

Engineering decisionKeep analytics workloads away from realtime application work.

Dedicated Worker Threads handle period generation and statistical aggregation while raw data is retained until processing succeeds.

My role

Implemented and maintained analytics and alarm-processing subsystems within a wider team-owned platform.

System / conceptual
  1. 01Raw telemetry
  2. 02Batch ingestion
  3. 03Worker threads
  4. 04Timezone normalisation
  5. 056 reporting horizons
  6. 06Analytics
  • 6 reporting horizons
  • Timezone-aware aggregation
  • Worker-thread processing
  • Failure-safe retention
Result

Supported day-to-year historical reporting, with retries and cleanup only after processing succeeds.

02

Realtime · Sessions · Distributed state

Cluster-Safe Realtime Platform

Authenticated real-time communication across a multi-process Node.js system.

Problem

Several server processes shared session state while delivering targeted realtime events. A stale full-session write could erase an unrelated concurrent change.

Engineering decisionAvoid stale full-session writes across concurrent processes.

Targeted atomic updates protect unrelated state, while session revalidation, IPC correlation and permission checks keep events scoped correctly.

My role

Contributed to and extended the clustered backend, session, IPC and Socket.IO workflows.

System / conceptual
  1. 01Client
  2. 02HTTPS + session
  3. 03Node worker
  4. 04Session validation
  5. 05Primary + IPC
  6. 06Socket.IO cluster
  • Multi-process Node.js
  • Authenticated WebSockets
  • Atomic session updates
  • Permission-aware events
Result

Protected concurrent session changes while keeping real-time events authenticated and scoped to the correct workspace.

03

Spatial interfaces · Application state

3D Facility & Heatmap Interfaces

Spatial engineering interfaces where floor-plan surfaces and scene objects respond to operational data and user interaction.

Problem

Operational 3D scenes needed predictable navigation, selection and data binding across changing models, camera modes and component lifecycles.

Engineering decisionTreat scene resources as lifecycle-managed application resources.

Geometry, materials, textures, helpers, controls and animation state are created, updated and deliberately disposed with the surrounding application.

My role

Engineered and maintained the reusable Three.js interaction layer and camera workflows within a larger product.

System / conceptual
  1. 01GLTF scene
  2. 02Camera system
  3. 03Raycasting
  4. 04Selection state
  5. 05Data-bound objects
  6. 06Lifecycle cleanup
  • Three.js
  • Camera mathematics
  • Raycasting + selection
  • GPU + scene lifecycle
Result

Created a reusable spatial interaction layer with fit-to-content cameras, metadata-bound objects and deliberate GPU-resource cleanup.

Explore public demo

Operational domains

Systems shaped around real work.

My work spans physical infrastructure, maintenance operations, data-centre visibility, and mobile products. Each one starts with the operational problem.

01

System case

ARM, NanoPi & IoT Edge Systems

Constraint

Field controllers and constrained Linux devices need to acquire protocol data, retain operational history, and recover cleanly when networks are unreliable.

My contribution

Implemented and maintained cross-layer components for ARM-based controllers, from native C++ integration and device services to Node.js application workflows and deployment support.

Engineering decision

Keep edge storage compact, isolate expensive processing, and make reconnection and replay part of the normal system flow.

  1. 1BACnet / Modbus
  2. 2C++ services
  3. 3ARM Linux
  4. 4Node.js APIs
  5. 5Web + mobile
  • C++
  • Node.js
  • TypeScript
  • Embedded Linux
  • Systemd
Production outcome

Operational data remains useful across the edge, backend, dashboards, and mobile interfaces even when hardware and connectivity are constrained.

02

System case

CMMS & Work-Order Systems

Constraint

Maintenance teams need dense asset, request, assignment, status, and completion data to become a workflow people can use during real operations.

My contribution

Shaped CMMS workflows and interfaces, and contributed across supporting APIs, database design, validation, and production support.

Engineering decision

Organise screens around the work being completed and the state of each asset or job, rather than exposing the underlying data model.

  1. 1Request
  2. 2Asset context
  3. 3Assignment
  4. 4Work status
  5. 5Completion
  • Node.js
  • TypeScript
  • MySQL
  • MongoDB
  • Web UI
03

System case

Server Racks & DCIM Workflows

Constraint

Data-centre teams need infrastructure, rack, equipment, and operational information to be visible without losing the context of the physical facility.

My contribution

Contributed to a separate DCIM product, working across product features and the supporting system for day-to-day monitoring and infrastructure management.

Engineering decision

Connect infrastructure records to clear spatial and operational views so complex facility data remains understandable.

  1. 1Rack + asset data
  2. 2Service layer
  3. 3Operational state
  4. 4Facility view
  5. 5Team action
  • DCIM
  • Three.js
  • Node.js
  • APIs
  • Operational UI
Production outcome

Infrastructure information becomes easier to inspect and use during routine data-centre operations.

Explore the facility demo
04

System case

Cross-Platform Mobile Products

Constraint

A useful mobile product has to coordinate device capabilities, offline behaviour, background media, localisation, and store requirements across two native platforms.

My contribution

Built and shipped a Flutter lifestyle application with sensor-driven features, localisation, background audio, dark mode, and release workflows for iOS and Android.

Engineering decision

Keep shared product logic in Flutter while treating permissions, sensors, media, and release behaviour as platform-aware concerns.

  1. 1Flutter UI
  2. 2Application state
  3. 3Native capability
  4. 4Offline behaviour
  5. 5Store release
  • Flutter
  • Dart
  • iOS
  • Android
  • Native integrations
Production outcome

A production mobile experience was delivered through both major app-store workflows.

Open the mobile tool

Engineering for production

Across the system

I consider reliability across the whole system, from the first protocol event to recovery in production.

01

Edge & protocols

BACnet · Modbus TCP / RTU · C++ native integration · Embedded Linux

02

Mobile delivery

FCM · APNs · APNs VoIP · Notification lifecycle

03

Offline reliability

Persist → Queue → Reconnect → Replay → Acknowledge

04

Production

Linux · Services · Deployment · Recovery · Operational support

Open source · Built by PaXa

PaXa Labs

Tools made for real work

Useful tools built from problems I’ve encountered while developing, deploying and maintaining production systems.

Explore the lab
LAB / 01Available now

Invoice Generator

Create clean, client-ready invoices in the browser without handing your billing data to a third party.

PDFPrivacy-first
LAB / 02Available now

Maintenance Work Order Generator

Turn maintenance details into a structured work order that technicians and operations teams can use.

CMMSOperations
LAB / 03Available now

API Request Builder

Build a request starter for Flutter, Node.js, or cURL that you can adapt and use in your project.

RESTTypeScriptDio
LAB / 04Live

Modbus Toolkit

Decode Modbus registers, integers, Float32 values, hexadecimal data and byte ordering.

ModbusFloat32Edge / IoT
LAB / 05Available now

Systemd Service Generator

Generate Linux systemd service files, installation commands and common service-management commands.

LinuxDeployment
LAB / 06Available now

Log Inspector

Paste noisy application logs and quickly surface errors, repeated events and useful patterns.

DebuggingObservability
LAB / 07Available now

Mobile Capability Generator

Generate native Android, iOS and Flutter setup for common device capabilities and permissions.

FlutterAndroid / iOS
LAB / 08Available now

Payment Integration Playground

Explore payment APIs, webhooks, transaction states, and failure scenarios using simulated payments.

PaymentsREST APIWebhooksBackend
LAB / 09Available now

BMS Point & Alarm Simulator

Manipulate live building points, tune alarm thresholds, explore deadband and acknowledge a realistic alarm lifecycle.

BMSAlarmsTrendsSimulation
LAB / 10Available now

Facility Explorer

Walk through a synthetic 3D facility, inspect engineering equipment, simulate faults, trace systems and locate alarms in space.

Three.js3DBMSEngineering
LAB / 11Available now

SQL Security Playground

Explore unsafe query construction, Boolean logic and parameterized statements in a controlled browser-only simulation.

SQLSecurityNode.jsEducation
LAB / 12Available now

Rate Limit Playground

Overload a fictional API and compare fixed window, token bucket, sliding window and leaky bucket decisions in real time.

Rate limitingHTTP 429APISimulation
LAB / 13Available now

CI/CD Pipeline Playground

Explore a simplified software delivery pipeline. Run builds, break tests, approve deployments, and see how failures and rollbacks affect the release process.

CI/CDTestingDeploymentRollback
LAB / 14Available now

QR Code Generator

Generate customizable QR codes with your own logo or image. Everything stays in your browser.

QR CodePrivacy-firstClient-side
LAB / 15Client-side

JWT Inspector

Decode and inspect JWT headers, claims, expiry and structure directly in your browser.

JWTSecurityClient-side
LAB / 16Interactive

Event Loop Visualiser

Watch JavaScript tasks move through the call stack, microtask queue and event loop step by step.

JavaScriptNode.jsInteractive
LIVE TOOL / 03

Try the API Request Builder

Generate a clean request starter for your stack. Everything stays in your browser.

final dio = Dio(BaseOptions(
  headers: {'Accept': 'application/json'},
));

final response = await dio.get(
  'https://api.example.com/v1/items',
);

if (response.statusCode == 200) {
  print(response.data);
}

How I work

Broad enough to see the system. Close enough to fix it.

I’ve grown into a senior engineer by staying close to the work: designing systems, reviewing code, guiding junior developers, shipping releases, and debugging difficult production issues after launch.

2019 – Present

Senior Software Engineer

Software Engineer from 2019, progressing to Senior Software Engineer in 2023. Work spans cross-layer system design, operational web systems, Node.js services, mobile delivery, protocol-connected device integration, databases, and Linux-based edge deployments. Responsibilities include code reviews, junior guidance, production releases, and investigating difficult live issues.

Selected projects

Freelance Mobile & Product Delivery

Flutter product development, third-party integrations, release preparation, and delivery through iOS and Android store workflows.

ArchitectureCross-layer system design
OwnershipBuild through production support
Team supportCode reviews and junior guidance
OperationsDeployment, recovery and debugging

Deployment & quality

I don’t stop at “code complete.”

I’ve owned the path from build and validation through release, monitoring, and production support across cloud, mobile, web, and embedded environments.

01

Mobile releases

Managed App Store Connect and Google Play Console releases, including build configuration, signing, store compliance, and iOS and Android version updates.

02

Cloud & edge deployment

Deployed and maintained Node.js services on Ubuntu across AWS, Exabytes, and Contabo, alongside firmware and remote update flows for live embedded controllers.

03

Testing & validation

Performed functional, integration, release-build, and production validation across mobile, web, APIs, and devices, with Puppeteer automation for browser and PDF workflows.

04

Production reliability

Monitored live services, investigated user-reported issues, and traced difficult defects across embedded, backend, frontend, and mobile layers.

PaXa freelance software services

Freelance work · PaXa

Need a capable extra pair of hands?

I also take on selected freelance software projects under PaXa. I can help turn an idea into a working product, extend an existing system, integrate third-party services, or untangle difficult production problems. I bring the same end-to-end ownership to freelance work as I do to my full-time role.

Mobile appsBackend & APIsWeb applicationsIntegrationsSystem enhancementsDeployment & support
Discuss a project

Core toolkit

Technologies I trust to get the job done.

TypeScriptNode.jsFlutterDartC++VueMySQLMongoDBSocket.IOThree.jsAWSLinux

Guestbook · Public wall

Visitor Wall

Leave a footprint. Say hi, share feedback, or tell me what brought you here.

PUBLIC NOTE / 300 CHARACTERSLeave a footprint

Plain text only · No links · Public after posting

RECENT FOOTPRINTS00

Loading footprints…

What’s next?

Let’s build something dependable.

I’m interested in senior mobile, backend, and full-stack opportunities in Penang or remote, especially with teams that value ownership, thoughtful engineering, and products with real-world impact. I’m also available for selected freelance projects through PaXa.

Back to the top