chore: remove and retire resume files from repo
This commit is contained in:
@@ -8,3 +8,5 @@ node_modules/
|
||||
.claude
|
||||
# Prompts/knowledge (not committed)
|
||||
docs/
|
||||
resume.tex
|
||||
RESUME.txt
|
||||
|
||||
-228
@@ -1,228 +0,0 @@
|
||||
================================================================================
|
||||
ROCK LIANG - RESUME
|
||||
================================================================================
|
||||
|
||||
CONTACT INFORMATION
|
||||
Email: [email protected]
|
||||
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
|
||||
|
||||
================================================================================
|
||||
-185
@@ -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:[email protected]}{[email protected]}\\
|
||||
& 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}
|
||||
Reference in New Issue
Block a user