\documentclass[letterpaper,11pt]{article} \usepackage{latexsym} \usepackage[empty]{fullpage} \usepackage{titlesec} \usepackage{marvosym} \usepackage[usenames,dvipsnames]{color} \usepackage{verbatim} \usepackage{enumitem} \usepackage[pdftex]{hyperref} \usepackage{fancyhdr} \pagestyle{fancy} \fancyhf{} % clear all header and footer fields \fancyfoot{} \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0pt} % Adjust margins \addtolength{\oddsidemargin}{-0.375in} \addtolength{\evensidemargin}{-0.375in} \addtolength{\textwidth}{1in} \addtolength{\topmargin}{-.5in} \addtolength{\textheight}{1.0in} \urlstyle{same} \raggedbottom \raggedright \setlength{\tabcolsep}{0in} % Sections formatting \titleformat{\section}{ \vspace{-4pt}\scshape\raggedright\large }{}{0em}{}[\color{black}\titlerule \vspace{-5pt}] %------------------------- % Custom commands \newcommand{\resumeItem}[2]{ \item\small{ \textbf{#1}{: #2 \vspace{-2pt}} } } \newcommand{\resumeSubheading}[4]{ \vspace{-1pt}\item \begin{tabular*}{0.97\textwidth}{l@{\extracolsep{\fill}}r} \textbf{#1} & #2 \\ \textit{\small#3} & \textit{\small #4} \\ \end{tabular*}\vspace{-5pt} } \newcommand{\resumeSubItem}[2]{\resumeItem{#1}{#2}\vspace{-4pt}} \renewcommand{\labelitemii}{$\circ$} \newcommand{\resumeSubHeadingListStart}{\begin{itemize}[leftmargin=*]} \newcommand{\resumeSubHeadingListEnd}{\end{itemize}} \newcommand{\resumeItemListStart}{\begin{itemize}} \newcommand{\resumeItemListEnd}{\end{itemize}\vspace{-5pt}} %------------------------------------------- %%%%%% CV STARTS HERE %%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} %----------HEADING----------------- \begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r} \textbf{{\Large Rock Liang}} & Email : \href{mailto:rock@riotpiao.com}{rock@riotpiao.com}\\ & Portfolio : \href{https://riotpiao.com}{riotpiao.com}\\ \end{tabular*} %-----------Professional Summary----------------- \section{Professional Summary} \resumeItemListStart \resumeItem{Experience} {6+ years building scalable infrastructure, backend systems, and LLM-powered applications. Expertise in Kubernetes orchestration, Infrastructure-as-Code (Terraform), distributed systems design, and cloud-native architecture at AWS scale.} \resumeItem{Core Competencies} {Production Kubernetes (Talos, GitOps/ArgoCD), Terraform IaC, AWS distributed systems, Golang backend services, observability (Prometheus/Grafana), message queuing (Kafka/Temporal workflows), GPU inference (vLLM), zero-trust networking (OIDC/RBAC).} \resumeItem{Strengths} {Owning systems end-to-end—from design doc through oncall. Building fault-tolerant platforms. Unblocking teams with clear technical communication. 99.2% automation mindset.} \resumeItemListEnd %-----------EXPERIENCE----------------- \section{Experience} \resumeSubHeadingListStart \resumeSubheading {Self-Hosted Production (riotpiao.com)}{Home Lab} {DevOps / SRE / SDE}{May 2025 — Present} \resumeItemListStart \resumeItem{Challenge \& Solution} {Built AWS from scratch at home on bare-metal Kubernetes—Talos Linux for secure OS, ArgoCD for GitOps pipeline automation, SOPS for encrypted secrets, cert-manager for PKI. Result: production-grade multi-tenant platform with Kafka, PostgreSQL, S3, GPU LLM inference, Temporal workflows in 4-node cluster.} \resumeItem{System Design} {Architected Authentik OIDC SSO with Kubernetes RBAC; Longhorn block storage + MinIO S3-compatible API; CloudNativePG with pgvector for embeddings; vLLM GPU inference (Qwen3-32B) with KServe orchestration. Tech: \textbf{Kubernetes, Talos, ArgoCD, Terraform, Authentik, Prometheus, Grafana, vLLM, Temporal, Kafka, PostgreSQL, Go}} \resumeItem{Observability \& Operations} {Implemented full observability stack: Prometheus metrics, Grafana dashboards, Loki log aggregation, Tempo traces, OpenTelemetry. 99.2\% uptime maintained across core services via monitoring automation and runbooks. Tech: \textbf{Prometheus, Grafana, Loki, Tempo, OpenTelemetry}} \resumeItem{Deployment Pipeline} {GitOps-driven Forgejo CI/CD with Docker container registry; DinD runners for parallel builds. Kustomize manifests + Terraform for declarative infrastructure. Tech: \textbf{Forgejo, Docker, Kustomize, Terraform}} \resumeItemListEnd \resumeSubheading {Royal Bank of Canada (RBC)}{Toronto, ON} {Lead Software Engineer}{Nov 2024 — May 2026} \resumeItemListStart \resumeItem{Challenge \& Solution} {Deployments were manual, blocking teams 2+ hours per release. Standardized on Terraform Cloud for idempotent IaC; built Temporal workflows for multi-cloud orchestration with built-in retry logic and idempotency keys. Reduced deploy time from 2 hours to 20 minutes, achieved 99.2\% automation.} \resumeItem{Drift Detection \& Reconciliation} {Built Kubernetes CronJob (Golang) to continuously detect and reconcile Terraform state drift against actual infrastructure. Automatically detects divergence and triggers remediation without manual operator intervention. Tech: \textbf{Golang, Kubernetes, Terraform, IaC}} \resumeItem{Slack Notifications \& SLA} {Designed Slack notification service with Golang workers to alert on apply failures and drift detection. Operators resolve issues in \textless 5 minutes via notification-driven workflow. Coordinated across 12 platform teams—unified 200+ microservices into single IaC standard. Tech: \textbf{Golang, Slack API, Distributed Systems}} \resumeItem{Stakeholder Alignment} {Led requirement gathering across 4 platform teams; translated technical decisions for non-technical stakeholders; secured buy-in for platform migration. Unblocked 3 stalled projects by disambiguating specs.} \resumeItemListEnd \resumeSubheading {Amazon Web Services (AWS)}{Seattle, WA} {Senior Software Engineer (Step Functions)}{2022 — 2024} \resumeItemListStart \resumeItem{Challenge \& Solution} {Owned Distributed-Map from design doc to production launch across 57+ regions. Under tight deadline, introduced separate state in Map vs new functions—simplified customer adoption. Built checkpoint recovery for mid-workflow failures so customers resume without full re-run.} \resumeItem{Distributed Systems Engineering} {Solved critical edge cases: race conditions in concurrent updates, dependent service failures, message deduplication, exactly-once semantics. Introduced JSON state input for larger payloads—unlocked new customer use cases. Tech: \textbf{Java, DynamoDB, gRPC, Distributed Systems}} \resumeItem{Production Ownership \& Reliability} {Full oncall ownership—built CloudWatch dashboards, wrote operational runbooks, debugged production issues live. Achieved sub-100ms P99 latency across 57+ regions and 20x burst traffic scaling. Disaster recovery and incident response procedures. Tech: \textbf{Java, AWS, CloudWatch, Observability, Ownership}} \resumeItemListEnd \resumeSubheading {Netflix Titus (Container Orchestration)}{Los Gatos, CA} {Software Engineer Intern}{May — Aug 2019} \resumeItemListStart \resumeItem{Challenge \& Solution} {Streamlined Personal Data Detection (PDD) to identify classified data exfiltration anomalies—achieved 97.8\% accuracy with minimal false positives. Built fault-tolerant Golang connector for PDD integration with 28\% p99 latency improvement over legacy implementation.} \resumeItem{Compilation \& Integration} {Re-integrated SmartRegex with CMake \& C++ on Linux/Unix platforms. Achieved 5x faster deployment through automated build pipeline and dependency resolution. Tech: \textbf{C++, CMake, Golang, Docker}} \resumeItem{Impact} {Prevented classified data leakage across Netflix's distributed workload platform. Improved SLA for data governance compliance teams.} \resumeItemListEnd \resumeSubheading {NAV Canada (Air Traffic Control Systems)}{Ottawa, ON} {Summer Student}{May — Aug 2018} \resumeItemListStart \resumeItem{Challenge \& Solution} {Maintained enterprise CFPS web application in Agile development. Built Django NOTAMJ polls app to meet iteration goals. Improved deploy stability with Sonar code coverage analysis—reduced defect escape rate.} \resumeItem{Frontend \& User Experience} {Created FWGS weather briefing interface with ReactJS for Air Traffic Control. Real-time meteorological data visualization for pilot briefings. Tech: \textbf{ReactJS, Django, Agile, Sonar}} \resumeItem{Impact} {Improved ATC decision-making with cleaner weather briefing UX. Deployed to Canadian airspace (50+ airports).} \resumeItemListEnd \resumeSubHeadingListEnd %--------PROGRAMMING SKILLS------------ \section{Technical Skills} \resumeSubHeadingListStart \item{\textbf{Languages}{: Golang, Java, Python, C++, JavaScript/TypeScript, SQL}} \item{\textbf{Cloud \& Infrastructure}{: Kubernetes (Talos Linux, k3s), Terraform, Docker, ArgoCD, AWS (DynamoDB, Step Functions, CloudWatch), OpenShift}} \item{\textbf{Distributed Systems}{: Temporal workflows, Kafka/Redpanda, gRPC, message queuing, exactly-once semantics, state management, disaster recovery}} \item{\textbf{LLM \& AI}{: vLLM (GPU inference), KServe, Ollama, TEI embeddings, vector databases (pgvector)}} \item{\textbf{Observability}{: Prometheus, Grafana, Loki, Tempo, OpenTelemetry, CloudWatch, alerting \& runbooks}} \item{\textbf{Networking \& Security}{: Authentik OIDC SSO, cert-manager TLS, RBAC, SOPS encryption, Cloudflare Tunnel (zero-trust), network policies}} \item{\textbf{Data}{: PostgreSQL, DynamoDB, MinIO S3, Longhorn storage, pgvector}} \item{\textbf{CI/CD}{: Forgejo Actions, GitHub Actions, Docker registry, Kustomize, GitOps}} \resumeSubHeadingListEnd %-----------EDUCATION----------------- \section{Education} \resumeSubHeadingListStart \resumeSubheading {University of Ottawa}{Ottawa, Ontario} {Master of Science in Computer Science (Software Systems)}{2020 — 2021} \resumeSubheading {University of Ottawa}{Ottawa, Ontario} {Bachelor of Science in Computer Science (Honours)}{2016 — 2020} \resumeSubHeadingListEnd %------------------------------------------- \end{document}