CPU Usage
8 vCPU · load 0.41
Available for infrastructure & hosting engagements
Server Manager Linux Infrastructure Engineer
I keep production Linux estates online. Day to day that means Ubuntu and RHEL administration, Virtualmin hosting, tuning Apache, Nginx and HAProxy, running MariaDB, DNS and Cloudflare, deploying TLS, and hardening both the WAF and the OS. Then backup and disaster recovery on top of all that. And the part nobody puts on a job ad: working out why a site went down at 2 a.m. and having it back before the tickets start.
ubuntu@ws01:~$ uptime
03:14:07 up 412 days, 6:22, 2 users, load average: 0.41, 0.38, 0.32
ubuntu@ws01:~$ systemctl is-active apache2 mariadb haproxy redis-server
active
active
active
active
ubuntu@ws01:~$ curl -sI https://portal.example.gov | head -1
HTTP/2 200
ubuntu@ws01:~$ grep -c "ModSecurity: Access denied" error_log
1284
ubuntu@ws01:~$ █
Control plane
The panels below are a simulated demo of the telemetry I work with daily. It is not a feed from a live host. The shape of the data is real; the numbers are generated in the browser.
8 vCPU · load 0.41
32 GiB · 4.2 GiB cached
/dev/vda1 · 480 GB NVMe
12 active · 0 failed
eth0 · rolling 60 s window
90-day availability history
whoami
Infrastructure gets judged on one thing. Is it up when people need it?
I am a Server Manager and Linux Infrastructure Engineer working on production hosting estates for public-sector and enterprise portals. I work across the whole life of a server, from provisioning and platform build-out through hardening, migration and monitoring, to incident response and the recovery plan you hope you never have to run.
Most of my estate runs Ubuntu Server and RHEL-family distributions under Virtualmin/Webmin, fronted by HAProxy and Apache or Nginx, with PHP-FPM, MariaDB and Redis behind them. I build multi-node setups where the shared state actually holds up. Session handlers live in Redis instead of local disk, document roots sit on NFS, and health checks fail the way they should. Put a load balancer in front of two nodes that do not share state and you have not built high availability. You have built two ways to lose a session.
On the security side I run ModSecurity with the OWASP Core Rule Set, CSF or firewalld policy, SSH and TLS hardening, and CVE remediation. I have handled live compromises from start to finish. That means containment first, then a forensic timeline pieced together from access and audit logs, file-integrity checks against upstream release hashes, credential rotation with no downtime, and a written report the client can act on.
I also build the tooling I need. Virtualmin ModSecurity Manager is an open-source Webmin module I wrote in Perl to make WAF triage practical for hosting operators. It groups blocked requests by rule and domain, does one-click per-domain exclusions, installs and tunes CRS, manages IP allow and block lists, and backs up its own config with rollback.
Working languages: English and Bahasa Malaysia. Based in: Malaysia. Open to remote and on-site engagements.
Capability matrix
Rated on production depth. What I have actually run under load, not what I have read about.
Track record
Client environments are described generically. Names and addresses stay confidential.
Managed hosting & infrastructure services · Public-sector and enterprise portals
I own the production Linux estate from build through to recovery. I secure it, monitor it, migrate it, and sign off that a platform is fit to carry public traffic. When something breaks in production, escalation stops with me.
Server security reviews for hosted portals
Full-stack server reviews after an external vulnerability scan. I separate the real findings from scanner false positives, verify every claim against runtime evidence, and hand over a prioritised remediation plan the operations team can actually execute.
Perl / Webmin module · github.com/irwanmohi/modsecurity
A WAF management module built because triaging ModSecurity on a busy hosting box from raw error logs is not a workflow. Written for operators, not researchers.
Field work
Real engagements, described without identifying the client.
A penetration-testing and security-assessment platform I built from scratch in vanilla PHP, no framework. One dashboard runs the scanners, queues the work on a cron worker so nothing blocks a web request, and turns the results into client-ready PDF reports with a risk grade. For authorised testing only.
A full-stack system that automates the WireGuard servers I first set up back in 2020. Users self-register and get a config file and QR code in one click. Admins manage access from a dashboard with live peer stats, connection logs and a geolocation map. Flask and Gunicorn behind Nginx, WireGuard handling the tunnels, MySQL behind the app.
Day-to-day ownership of multi-node Linux estates that carry public-facing portals. A load balancer, two web nodes, a dedicated database host and shared storage. My side of it is capacity planning, patching windows, mapping service dependencies and owning escalation.
I build and run Virtualmin hosting platforms. Virtual server templates, per-domain PHP-FPM pools, DNS zones, mail routing, SSL automation and quota policy. And the part that catches people out, the log topology that Virtualmin's per-domain layout forces on every monitoring tool downstream.
Moved live portals between hosts and platforms with a rehearsed cutover: full dry run on a staging copy, data sync down to a short final delta, DNS TTL lowered in advance, and a documented rollback that stays valid until the old host is decommissioned.
MariaDB operations for multi-tenant portals. Schema-level backups, slow-query review, connection and buffer tuning, locking down network exposure, and rotating credentials on live systems without dropping a single request.
IDENTIFIED VIA … OR …).Authoritative DNS and Cloudflare edge work. Zone design, record hygiene, proxy modes, cache and page rules, origin protection, and making sure the real visitor IP survives every hop from edge to load balancer to application.
X-Forwarded-For headers from untrusted sources at the balancer.Layered hardening across the stack. ModSecurity with OWASP CRS taken from detection to enforcement, host firewall policy, SSH lockdown, TLS protocol allow-lists, security headers, unattended security updates, and clearing out exposed default files.
Monitoring that reflects reality. Health checks that match how traffic actually arrives, log sources pointed at the files the platform really writes, real-time malware detection proven with a live test, and alert thresholds tuned so on-call trusts the pager.
Backups built to be restored, not just taken. Physical dumps alongside per-database logical ones, integrity checks that actually open the archive instead of trusting the exit code, rotation that will not delete a good set after a failed run, and a written recovery procedure kept with the backups.
Handled an active compromise on a public portal where the payload lived in a database row, not on disk, so file-based antivirus had nothing to find. Contained, traced, cleaned and closed the entry path, then rotated every credential that could have been exposed.
Designed and hardened the load-balancing layer. Health checks that fail correctly, secure session cookies, anti-spoofing on forwarded headers, two-tier rate limiting, and shared session state so either node can serve any visitor.
An open-source Webmin module in Perl that turns ModSecurity from a wall of log lines into a workflow. See what was blocked, decide, click. Built for hosting operators running dozens of domains behind one WAF.
ctl: actions, not config-time removals.Small tools that take out repeat work. Scheduled content mirroring so a critical directory stays reachable when its source is not, backup and rotation scripts with real error handling, and deployment runbooks written so someone else can run them.
Toolchain
The software I run in production, day in and day out.
Edge & origin
Origin infrastructure in Malaysia, served worldwide through CDN edge locations. Illustrative topology.
Credentials
Targets I am working toward. Each card gets swapped for the real credential as it is earned.
Red Hat Certified System Administrator
PlannedLinux Foundation Certified SysAdmin
PlannedCertified Associate / Network Engineer
PlannedCompTIA Security+ (SY0-701)
PlannedGet in touch
Server down, a migration to plan, or a platform to harden? Get in touch.