diff --git a/.gitignore b/.gitignore index 4b6a96f..092e28e 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,5 @@ node_modules/ .claude # Prompts/knowledge (not committed) docs/ +resume.tex +RESUME.txt diff --git a/RESUME.txt b/RESUME.txt deleted file mode 100644 index 8be57de..0000000 --- a/RESUME.txt +++ /dev/null @@ -1,228 +0,0 @@ -================================================================================ - ROCK LIANG - RESUME -================================================================================ - -CONTACT INFORMATION -Email: rock@riotpiao.com -Portfolio: https://riotpiao.com -GitHub: https://github.com/rockliang - -================================================================================ -PROFESSIONAL SUMMARY -================================================================================ - -Experience: - 6+ years building production-grade infrastructure, backend systems, and LLM - applications. Specialized in Kubernetes orchestration (Talos Linux, ArgoCD), - Infrastructure-as-Code (Terraform), distributed systems design, AWS scale - operations, and GPU-accelerated inference. - -Core Competencies: - Production Kubernetes (Talos, GitOps/ArgoCD, 99.2% uptime). Terraform IaC - with drift detection. AWS distributed systems (57+ regions). Golang backend - services. Observability (Prometheus/Grafana/Loki/Tempo). Message queuing - (Kafka/Temporal workflows). GPU inference (vLLM, 60% latency improvement). - Zero-trust networking (OIDC/RBAC). - -Strengths: - Owning systems end-to-end—design doc through oncall. Building fault-tolerant - platforms with 99.2% automation. Unblocking teams with clear technical - communication. - -================================================================================ -EXPERIENCE -================================================================================ - ---- -SELF-HOSTED PRODUCTION (riotpiao.com) -DevOps / SRE / SDE -Home Lab | May 2025 — Present - -Challenge & Solution: - Built AWS from scratch at home on bare-metal Kubernetes—Talos Linux for - secure immutable OS, ArgoCD for GitOps pipeline automation, SOPS for - encrypted secrets management, cert-manager for PKI. Result: - production-grade multi-tenant platform with Kafka, PostgreSQL, S3, GPU LLM - inference, Temporal workflows in 4-node cluster. - -Tech: - • Kubernetes (Talos, ArgoCD) — Talos immutable, atomic updates, no SSH, full - GitOps state. ArgoCD automatic sync with drift detection. Cilium eBPF CNI. - • Terraform + Kustomize — Declarative infrastructure. State management via - Terraform Cloud. Kustomize overlays for multi-env. - • Secrets & Security — SOPS age encryption with git audit trail. Authentik - OIDC SSO with Kubernetes RBAC. cert-manager + Let's Encrypt (30d renewal, - 7d pre-expiry alerts). - -Infrastructure & Services: - • Longhorn 3-replica block storage. MinIO S3-compatible API. CloudNativePG - PostgreSQL with pgvector for embeddings. vLLM GPU inference (Qwen3-32B, - 60% latency vs baseline). - • Observability stack: Prometheus metrics, Grafana dashboards, Loki logs, - Tempo traces, OpenTelemetry. 99.2% uptime via monitoring automation. - • Kafka/Redpanda streaming. Temporal workflows for fault-tolerant jobs. - Forgejo CI/CD with Docker registry. DinD runners for parallel builds. - ---- -ROYAL BANK OF CANADA (RBC) -Lead Software Engineer -Toronto, ON | Nov 2024 — May 2026 - -Challenge & Solution: - Deployments were manual and slow—teams blocked 2+ hours per release waiting - for provisioning. 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. - -Drift Detection & Reconciliation: - • Built Kubernetes CronJob (Golang) to continuously detect and reconcile - Terraform state drift against actual infrastructure. Automatically - detects divergence (network policies, security groups, storage) and - triggers remediation without manual intervention. - • Coordinated across 4 platform teams, unified 200+ microservices into - single IaC standard. Cut onboarding time for 12 teams. - -Notifications & SLA: - • Designed Slack notification service with Golang workers. Alerts on apply - failures, drift detection, provisioning bottlenecks. Operators resolve - issues in <5 minutes via notification-driven workflow. - -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. - -Tech: - • Golang, Kubernetes, Terraform Cloud, IaC, Distributed Systems - • Slack API, multi-cloud orchestration, state drift reconciliation - • Notification-driven operators, 99.2% automation - ---- -AMAZON WEB SERVICES (AWS) -Senior Software Engineer (Step Functions) -Seattle, WA | 2022 — 2024 - -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. - -Distributed Systems Engineering: - • Solved critical edge cases: race conditions in concurrent state updates, - dependent service failures, message deduplication, exactly-once semantics - across distributed workers. - • Introduced JSON state input for larger payloads—unlocked new customer use - cases (batch processing, ML model serving, data pipelines). - -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 procedures and incident response. State management for - failed/retried jobs. - -Tech: - • Java, AWS Step Functions, DynamoDB state storage, gRPC, Distributed Systems - • CloudWatch observability, ownership, disaster recovery, exactly-once delivery - • 57+ regions, sub-100ms P99, 20x burst traffic - ---- -NETFLIX TITUS (Container Orchestration) -Software Engineer Intern -Los Gatos, CA | May — Aug 2019 - -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. - -Compilation & Integration: - • Re-integrated SmartRegex with CMake & C++ on Linux/Unix platforms. - Achieved 5x faster deployment through automated build pipeline and - dependency resolution. - • Prevented classified data leakage across Netflix's distributed workload - platform. - -Tech: - • C++, CMake, Golang, Docker, pattern matching, fault tolerance - • Build automation, 97.8% detection accuracy, 28% latency improvement - ---- -NAV CANADA (Air Traffic Control Systems) -Summer Student -Ottawa, ON | May — Aug 2018 - -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. - -Frontend & User Experience: - • Created FWGS weather briefing interface with ReactJS for Air Traffic - Control. Real-time meteorological data visualization for pilot briefings. - • Deployed to Canadian airspace (50+ airports). Improved ATC - decision-making with cleaner weather briefing UX. - -Tech: - • ReactJS, Django, Agile methodology, Sonar code coverage - • Weather data visualization, pilot decision support systems - -================================================================================ -TECHNICAL SKILLS -================================================================================ - -Languages: - Golang, Java, Python, C++, JavaScript/TypeScript, SQL, Bash - -Cloud & Infrastructure: - Kubernetes (Talos Linux, k3s, ArgoCD GitOps) - Terraform (IaC, state management, drift detection) - Docker, OpenShift, AWS (DynamoDB, Step Functions, CloudWatch) - -Distributed Systems: - Temporal workflows, Kafka/Redpanda streaming - gRPC, message queuing, exactly-once semantics - State management, disaster recovery, idempotency - -LLM & AI: - vLLM (GPU inference, Qwen3-32B, 60% latency improvement) - KServe orchestration, Ollama, TEI embeddings - Vector databases (pgvector), model serving - -Observability & Monitoring: - Prometheus (metrics), Grafana (dashboards) - Loki (log aggregation), Tempo (distributed tracing) - OpenTelemetry, CloudWatch, alerting & runbooks - -Networking & Security: - Authentik OIDC SSO, Kubernetes RBAC - cert-manager TLS, SOPS encryption - Cloudflare Tunnel (zero-trust), network policies - PKI, service-to-service auth - -Data & Storage: - PostgreSQL (CloudNativePG, pgvector) - DynamoDB, MinIO S3, Longhorn block storage - Data modeling, exactly-once consumption - -CI/CD & DevOps: - Forgejo Actions, GitHub Actions - Docker container registry, Kustomize - GitOps, declarative infrastructure - -================================================================================ -EDUCATION -================================================================================ - -University of Ottawa, Ottawa, Ontario -Master of Science in Computer Science (Software Systems) -2020 — 2021 - -University of Ottawa, Ottawa, Ontario -Bachelor of Science in Computer Science (Honours) -2016 — 2020 - -================================================================================ diff --git a/resume.tex b/resume.tex deleted file mode 100644 index 272ef5c..0000000 --- a/resume.tex +++ /dev/null @@ -1,185 +0,0 @@ -\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}