About

About
Shot at Southern Cross Station, Melbourne

Hi, I’m Haoran Qin, also known online as AHdark.

I’m a computer science student at Monash University and an infrastructure and backend engineer based in Melbourne, Australia. My work sits mainly at the intersection of distributed systems, cloud-native infrastructure, networking, and backend architecture.

Outside university, I have spent several years building and operating production systems for internet and software businesses. What started as an interest in full-stack development gradually moved deeper into infrastructure, distributed systems, and networking. Today, I am much more interested in how systems behave as a whole than in any individual framework.

I currently work on technology and infrastructure at a infrastructure network company. My responsibilities span software architecture, Kubernetes, networking, observability, backend engineering, security, and engineering operations.

What I Work On

A large part of my work revolves around designing systems that remain understandable and operable as they grow.

On the infrastructure side, I operate Kubernetes environments using technologies such as RKE2, Cilium, Argo CD, cert-manager, ExternalDNS, BGP, and GitOps. I have worked on architectures where Kubernetes is not simply an application runtime, but also participates directly in the surrounding network control plane.

This includes advertising service addresses through BGP, integrating Kubernetes nodes with physical routers and firewalls, managing multiple network paths, and designing systems where networking behaviour can be controlled dynamically rather than through static infrastructure configuration.

Observability is another area I care deeply about. I have built multi-tenant observability platforms around Grafana, Mimir, Loki, Tempo, and Alloy, with distributed tracing, structured logging, metrics, durable object storage, recording rules, and cross-service correlation.

For me, observability is not something added after a system is finished. It is part of the architecture.

Backend and Distributed Systems

My backend work has gradually shifted from conventional web applications toward domain-oriented and distributed architectures.

I have worked extensively with TypeScript, Rust, Go, PostgreSQL, Redis and Valkey, RabbitMQ, and Kubernetes, although I generally avoid defining myself by a particular programming language.

In recent projects, I have used Domain-Driven Design to separate business domains and establish clearer boundaries between application logic, infrastructure, and external interfaces.

Some of the systems I have worked on include subscription and billing platforms, authentication systems, distributed task processing, scheduling systems, network management platforms, and multi-service APIs.

I have also designed RabbitMQ-based job systems with idempotency, delayed execution, retry policies, dead-letter queues, and graceful shutdown behaviour.

One recurring theme in my engineering work is migration.

Rather than rewriting large systems from scratch, I prefer incremental replacement. One of my current projects involves gradually replacing an existing platform with a new domain-oriented backend while maintaining compatibility with existing clients and downstream systems.

The goal is not simply cleaner code. It is to make architectural change possible without requiring the business to stop moving.

Networking

Networking has become one of my strongest technical interests.

I work with BGP, VLANs, ECMP, routing policy, firewalls, Kubernetes networking, Cilium, and multi-exit network architectures.

One of my more experimental projects is FlowGate, a internal traffic policy engine written in Rust using eBPF and XDP.

FlowGate explores the idea of making routing decisions based on properties of individual flows rather than relying exclusively on destination-based routing.

It maintains per-flow state and can classify traffic according to characteristics such as protocol, connection state, duration, traffic volume, and throughput. Different classes of traffic can then be directed through different egress paths while preserving predictable fallback behaviour.

The project has also given me an opportunity to work more closely with kernel networking, packet processing, network telemetry, and the practical constraints of high-performance traffic engineering.

Engineering Infrastructure

I am particularly interested in the systems surrounding software development itself.

This includes CI/CD, GitOps, schema-first APIs, typed configuration, dependency boundaries, automated validation, telemetry standards, and deployment workflows.

I have introduced engineering workflows where architecture rules are checked automatically rather than depending solely on documentation and code review.

I also spend a considerable amount of time thinking about how development teams interact with infrastructure. Good infrastructure should provide strong defaults and constraints while keeping routine development simple.

The best platform engineering work is often invisible to the people using it.

Open Source

I have been active on GitHub as AH-dark for many years.

My public repositories cover areas including web applications, distributed scheduling, Kubernetes deployment, developer tooling, networking, and infrastructure automation.

A significant part of my professional work is commercial and therefore cannot be published, but I continue to use open-source projects as a place to experiment with ideas and document things I find interesting.

Some of my earlier projects focused heavily on frontend and full-stack development. Although my technical interests have since moved deeper into systems and infrastructure, that background continues to influence how I design platforms.

I care about the developer experience of infrastructure just as much as the infrastructure itself.

University

I am currently studying computer science at Monash University.

University has given me an opportunity to revisit areas that I previously learned primarily through engineering practice, particularly algorithms, data structures, computer systems, databases, software architecture, cybersecurity, and mathematics.

I am especially interested in the boundary between computer science research and large-scale systems engineering.

Over the longer term, I would like to continue studying distributed systems, networking, infrastructure, and artificial intelligence at a deeper academic level while continuing to build real systems alongside that work.

How I Think About Engineering

I do not think good engineering means using the newest technology available.

I care more about whether a system has clear boundaries, observable behaviour, predictable failure modes, and a migration path when its original assumptions eventually become wrong.

The systems I enjoy working on most usually involve several layers at once.

Application architecture affects databases. Databases affect queues. Queues affect reliability. Kubernetes affects networking. Networking affects latency and availability. Observability determines whether any of those relationships can actually be understood in production.

Understanding those interactions is what keeps infrastructure engineering interesting to me.

This blog is where I write about those problems.

You will mostly find notes and longer-form articles about software architecture, Kubernetes, distributed systems, networking, backend engineering, infrastructure, and occasionally computer science.

I also use it to document ideas that took me longer than expected to understand.

If something here saves someone else a few hours of debugging, then writing it down was probably worthwhile.

Elsewhere