Compare commits

..

5 Commits

Author SHA1 Message Date
85017c2ddc Normal dashes 2025-08-28 10:52:34 -04:00
a79019fc9f Revised resume points 2025-07-31 13:29:28 -04:00
69b3c99e6f Redo project points 2025-07-31 12:46:25 -04:00
6673b67cd8 Draft AML project/refined Red Hat points 2025-07-30 14:41:12 -04:00
00dd6b77e9 Gobcog/spotify-vis 2025-01-02 10:39:35 -05:00
9 changed files with 130 additions and 212 deletions

2
.gitignore vendored
View File

@@ -4,7 +4,7 @@ resources/_gen/
themes/base16*
*.pdf
*p*.md
*pt*
commit-msg.txt
.hugo_build.lock

View File

@@ -104,7 +104,7 @@ body {
background-color: $background-color;
color: $color;
// line-height: 1.5;
line-height: 1.59;
line-height: 1.57;
// font-size: 100%;
// font-size: 15px;
font-size: 17px;
@@ -578,7 +578,7 @@ header {// {{{
// }
}// }}}
h2 {// {{{
//color: $base-orange;
color: $base-orange;
margin-top: .5rem;
font-size: 1em;
@@ -639,25 +639,15 @@ header {// {{{
}
.project-header {
display: flex;
align-items: baseline;
justify-content: space-between;
// margin-bottom: .6em;
// margin-bottom: .1em;
margin-bottom: 5px;
}
.project-date {
margin-left: 1em;
}
.project-title {
// color: $base-blue;
color: black;
display: inline;
margin-right: 0.5em;
}
.project-title span {
display: inline;
margin-left: 0.5em;
font-weight: normal;
}
.project-link {
@@ -719,10 +709,8 @@ header {// {{{
}
.languages {
font-weight: normal;
font-style: normal;
margin-left: 0.5em;
color: $base03;
// font-style: italic;
// font-size: .9em;
}
.institution {

View File

@@ -3,60 +3,129 @@ title: "Resume"
date: 2019-02-11T07:50:51-05:00
draft: false
---
{{% resume/section projects %}}<!--- {{{ -->
{{% resume/section "Summary" %}}
Customer-focused Technical Support professional (Tier 1/2) with strong de-escalation and clear communication skills, and a track record of faster first response, fewer escalations, and tighter SLAs. Comfortable handling high-throughput ticket queues, documenting fixes into KBs, and translating technical issues into plain language for non-technical users.
{{% /resume/section %}}
<!--- RBC AML {{{ -->
{{% resume/section "Work Experience" %}}
{{% resume/project name="AML Risk Analytics"
languages="Python, SQL, Tableau"
date="July 2025" show="true" %}}
{{% resume/work-experience name="Red Hat"
title="Technical Support Engineer Intern (Tier 1/2)"
languages="Ticketing/Triage, Knowledge Base Writing, De-escalation"
date="May 2023 — Aug 2024" %}}
- Delivered **Tier 1/2 frontline support** for CI/CD & Kubernetes in a ticket queue; improved **first-response time by 40%** through better triage/routing.
- Performed **incident troubleshooting and root-cause analysis**; automated data capture/validation that resolved **80% of config errors** and **reduced downtime by 40%**.
- Wrote **step-by-step knowledge-base articles** and troubleshooting flows that enabled Tier 1 to solve common probe issues, **cutting escalations by 30%**.
- Built a deployment **runbook** that standardized fixes and **reduced repeat contacts/tickets by 66%**; **shortened resolution from 45 → 15 minutes**.
- Kept users informed with **concise status updates**, set expectations, and **de-escalated frustrated stakeholders** by focusing on next steps and time to resolution.
- Documented fixes into **KBs/runbooks** for reuse.
{{% /resume/work-experience %}}
* Built an end-to-end AML simulation using **Python**,
generating **9M+ records** across customers,
transactions, and alerts to mimic real-world
financial behavior and suspicious activity patterns.
* Wrote advanced **SQL (CTEs + joins)** to classify
**high-risk customers**, calculate alert counts, and
filter transactions over the past 90 days with
aggregated metrics.
* Engineered a **risk scoring model** in Python
using transaction thresholds and alert volume to
classify customers as Elevated or Critical risk.
* Designed **interactive Tableau dashboards** (Risk
Heatmap, Alert Efficiency, Risk vs. Avg Amount) to
visualize cross-country AML exposure and alert
effectiveness.
- **Developed KPI-ready metrics** (alert rate, avg USD
exposure, transaction volume) to drive AML
performance reporting and enable cross-country risk
comparisons.
- **Normalized multi-currency transaction data** to
ensure consistent exposure calculations across USD,
CAD, and EUR, supporting reliable AML metric
aggregation.
{{% resume/section "Web Dev & Support Projects" %}}
{{% resume/project name="Rarity Surf"
languages="User Support, Bug Reproduction"
date="Mar 2025" show="true" %}}
- Provided **real-time user support** for a live analytics app (triage → reprogram → fix → follow-up) across UI filtering and API errors.
- **Translated user requests into fixes/features**, improving usability for non-technical traders; **reduced perceived latency by 50%** under load with targeted optimizations.
{{% /resume/project %}}
{{% resume/project name="Kanban Calendar"
languages="Bug Reproduction, Troubleshooting Guide"
date="Feb 2025" show="true" %}}
- **Reproduced and resolved UI bugs** across devices; documented steps and **added a troubleshooting guide** for consistent fixes.
- Built and maintained a **mobile-responsive calendar interface** that improved day-to-day task clarity for end users.
<!--- RBC AML }}} -->
<!--- Spotify Visualized {{{ -->
{{% resume/project name="Spotify Visualized"
url="https://github.com/Kevin-Mok/astronofty" languages="Python, Django" date="June 2023"
show="true" %}}
- **Built a high-performance Python backend** using
Django and PostgreSQL to process 10K+ data records
per user, optimizing ingestion pipelines via API
integration and ORM modeling.
- **Engineered normalized database schemas** to
streamline query workflows, achieving a **50%
reduction in PostgreSQL latency** for high-volume
reporting tasks.
- **Visualized user music libraries in Tableau**,
creating dashboards that grouped tracks by **artist
and genre**, enabling users to explore listening
patterns and discover trends in their Spotify data.
{{% /resume/project %}}
{{% resume/project name="Astronofty"
languages="Live Demo Support, Stakeholder Updates"
date="Jan 2023" show="true" %}}
- Supported a **live demo under time pressure**; handled rapid feedback and kept stakeholders aligned with “whats fixed/next/ETA.”
<!--- Spotify Visualized }}} -->
<!--- Rarity Surf {{{ -->
{{% resume/project name="Rarity Surf"
languages="Python, Django, JavaScript, React"
date="Oct 2022" show="true" %}}
- **Built a full-stack reporting tool** using React,
Django, and **PostgreSQL** to analyze
structured/unstructured metadata from APIs, enabling
real-time rarity scoring and improving insight
delivery by **80%**.
- **Optimized SQL query performance** within a
Django-based pipeline, processing NFT ranking data at
scale and exposing results via GraphQL with
**low-latency response times under high concurrency
(2,000+ queries)**.
{{% /resume/project %}}
{{% /resume/section %}}
<!--- Rarity Surf }}} -->
{{% resume/section "Skills" %}}
**Call Centre & Customer Support:** Active Listening, De-escalation, Clear Communication, Ticket Triage, Documentation/KB Writing, Jira
**Technical Support:** Tier 1/2 Troubleshooting, Incident Response, Microsoft 365, Log Analysis, Root-Cause Investigation
**Languages:** English, Cantonese
{{% /resume/section %}}
{{% /resume/section %}}<!--- }}} -->
{{% resume/section "Work Experience" %}}<!--- {{{ -->
{{% resume/work-experience name="Red Hat"
title="Cloud/Software Engineer Intern" languages="Kubernetes, GoLang, Jenkins" date="May 2022 - Aug 2023" %}}
- **Decreased manual configuration errors by 80%** by
automating service discovery and dynamic config
updates, aligning with AML goals of minimizing
operational risk and improving data integrity.
- **Enhanced CI pipeline reproducibility and
performance** by rewriting the Jenkins nightly
pipeline to support automated PR-level testing with
reusable parameters, improving report consistency
across environments.
- **Collaborated cross-functionally** with developers
and testers to maintain reliable infrastructure,
echoing the AML role's emphasis on stakeholder
partnership for building robust reporting systems.
- **Improved system reliability** during production
launches by implementing startup probes for legacy
services, reducing downtime and enhancing stability
for automated monitoring/reporting pipelines.
- **Reduced reporting deployment time by 66%** by
building a CLI-based solution to push compiled
binaries directly into Kubernetes/Openshift clusters,
accelerating turnaround for testing and data
validation workflows.
{{% /resume/section %}}<!--- }}} -->
{{% resume/section skills %}}<!--- {{{ -->
**Python**, **SQL**, **PostgreSQL**, **Tableau**, **MongoDB**, **JavaScript**, Django, **React**, Bash, **Git**, **Linux**, **Command Line**, Go(Lang), AWS, Kubernetes, Terraform, Docker (Compose), Jenkins, Groovy, Solidity, C
{{% /resume/section %}}<!--- }}} -->
{{% resume/section education %}}<!--- {{{ -->
{{% resume/section "Education" %}}
{{% resume/education name="University of Toronto (St. George)"
title="Computer Science Specialist 3.84 GPA, High Distinction." date="2020 — 2025" %}}
{{% /resume/education %}}
title="Computer Science Specialist - 3.84 GPA (CS). Graduated with High Distinction." date="2019 - 2024" %}}
{{% resume/section "Referral" %}}
{{% resume/references %}}
{{% /resume/section %}}
{{% /resume/section %}}<!--- }}} -->
<!-- vim: fdm=marker -->

View File

@@ -1,39 +0,0 @@
# ME Sniper
write me a resume section similar to this (just a bit longer) for a web dev resume based on the points after with made up statistics
## Old
- **Developed a full-stack web application** to generate rarity
rankings for NFT's integrated with leading NFT
marketplace's (OpenSea) API,
enabling users to **quickly identify rare NFT's** and check
their listing status, **improving market research efficiency by 80%**.
- **Architected a robust Django (Python) [backend](https://github.com/Kevin-Mok/rarity-surf)** to fetch and process
NFT metadata from IPFS, store rarity rankings in
**PostgreSQL**, and serve the data via GraphQL API, **ensuring low-latency access and scaling to handle 2,000+ concurrent requests**.
- **Developed a dynamic React (Javascript)
[frontend](https://github.com/Kevin-Mok/rarity-surf-frontend)** using hooks to load
rarity data in real-time, styled with Tailwind for
mobile responsiveness, **improving user experience
and reducing frontend load times by 70%**.
## New
- Developed a full-stack web application to generate rarity rankings for NFTs integrated with leading NFT marketplaces (Magic
Eden) API, enabling users to quickly identify rare NFTs and check their listing status, improving market research efficiency by 80%.
- fetch metadata from either IPFS or website in parallel processes to create rarity
rankings as soon as metadata revealed
- reverse engineered algorithm for rarity rankings for NFT's based on article from
marketplace about their in-house statistical rarity
ranking
- created Prisma schema for PostgreSQL for database to store NFT data
- Node.js backend with API endpoints to return NFT's based
on max rank/price along with rarest traits
- lowest prices for rarity percentile to see if good deal
- fetch all listings from leading marketplace (Magic Eden) to be
able to identify which rare NFT's are on sale and be able
to filter based on max price/filter
- store previous sales data to check whether a buy at rarity
percentile is a good deal
- React FE to dynamically load NFT's based on rarity
rank/price filter with ability to hide seen ones
- Discord bot to notify you when customizable profitable resale
opportunity comes up based on rarity level/price

View File

@@ -52,41 +52,6 @@ date="Oct 2021" show="true" %}}
<!--- Rarity Surf }}} -->
<!--- Rarity Surf {{{ -->
{{% resume/project name="Rarity Surf (2)"
languages="Typescript, Node.js, React"
date="" show="true" %}}
- **Developed a full-stack web application** to generate
rarity rankings for NFT's, integrating with **leading
marketplaces API** to enable users to quickly identify
rare NFT's and check their listing status, **improving
market research efficiency by 80%**.
- **Built a scalable Node.js backend** with REST API
endpoints to return NFTs based on customizable filters
such as max rank, price, and rarest traits. **Optimized
performance** to handle **3,000+ concurrent requests** by
implementing efficient data fetching and caching
mechanisms, ensuring low-latency access to NFT data.
- **Developed a dynamic React frontend** to load and display
NFT's in real-time based on user-defined filters to
streamline browsing. Styled the interface using **Tailwind
CSS** for a responsive and modern design, **reducing
frontend load times by 50%**.
- **Developed a Discord bot** to notify users of profitable
resale opportunities by leveraging historical sales data
to assess deal quality. This feature **increased user
engagement by 80%** and provided a seamless way for users
to stay updated on market opportunities.
- Designed and implemented a **PostgreSQL schema** for to
efficiently store NFT data, including metadata, rarity
scores, and historical sales data.
{{% /resume/project %}}
<!--- Rarity Surf }}} -->
<!--- Astronofty {{{ -->
{{% resume/project name="Astronofty"
@@ -177,6 +142,7 @@ url="https://kevin-mok.com/server/" languages="AWS, Kubernetes, Docker, Terrafor
<!--- AWS 3 }}} -->
<!--- Astronofty (extended) {{{ -->
{{% resume/project name="Astronofty"

View File

@@ -24,7 +24,6 @@
<link rel="stylesheet" type="text/css"
href="https://cdn.jsdelivr.net/gh/dreampulse/computer-modern-web-font@master/fonts.css">
<link rel="stylesheet" href="{{ "css/style.css" | relURL }}" type="text/css">
<link rel="stylesheet" href="{{ "css/print.css" | relURL }}" media="print">
{{ $main_sass := resources.Get "sass/main.scss" }}
{{ $main_style := $main_sass | resources.ToCSS }}
<link rel="stylesheet" href="{{ $main_style.RelPermalink }}" type="text/css">

View File

@@ -2,8 +2,9 @@
<div class="row project-header">
<div class="col-8 text-left">
<h2 class="project-title">
{{ .Get "name" }} <span class="languages">&lt;{{ .Get "languages" }}&gt;</span>
{{ .Get "name" }}
</h2>
<span><{{ .Get "languages" }}></span>
</div>
<div class="col-4 text-right date">{{ .Get "date" }}</div>
</div>

View File

@@ -1,5 +1,10 @@
<div class="references">
<span>
Referred to job by Stephanie Te (stephanie.te@verisk.com).
See my LinkedIn for
<a href="https://www.linkedin.com/in/kev-mok/details/recommendations/?detailScreenTabIndex=0"
target="_blank">
references</a> from my
Red Hat managers/mentee, a startup client and a graduate
student mentor.
</span>
</div>

View File

@@ -1,71 +0,0 @@
/* static/css/print.css */
@media print {
/* A little more vertical room on the page */
@page { size: A4; margin: 10mm 12mm; }
/* Make the whole resume slightly denser but readable */
.resume, body { font-size: 11pt; line-height: 1.25; }
/* === SKILLS SECTION FIXES === */
/* Stop clipping and let content wrap/flow */
.section--skills,
.resume .section--skills,
[data-section-title="Skills"] {
max-height: none !important;
overflow: visible !important;
break-inside: avoid-page;
page-break-inside: avoid;
}
/* If the theme uses multi-columns for skills, collapse to 1 for print */
.section--skills ul,
[data-section-title="Skills"] ul {
columns: 1 !important;
-webkit-columns: 1 !important;
column-gap: 0 !important;
}
/* Ensure list items/tags wrap cleanly and never get cut off */
.section--skills li,
[data-section-title="Skills"] li,
.section--skills .tag,
.section--skills .tags .tag {
white-space: normal !important;
word-break: normal;
overflow-wrap: anywhere;
break-inside: avoid;
margin-bottom: 1.5mm;
}
/* Tighten vertical padding in sections to gain a line or two */
/* Micro-tighten text to save ~1 line */
.resume, body {
font-size: 11pt;
line-height: 1.22; /* was 1.25 */
}
/* Reduce space around lists */
.resume ul { margin-top: 0 !important; margin-bottom: 1.5mm !important; }
.resume li { margin-bottom: 1mm !important; }
/* Optional: shrink Skills section a touch more */
.section--skills li { margin-bottom: 1mm !important; }
.resume .section { padding-top: 3mm !important; padding-bottom: 3mm !important; }
/*@media print {*/
/*@page { size: A4; margin: 11.75mm 12mm; } [> was 10mm 12mm <]*/
/*}*/
@media print {
/* fit-to-one-page nudges */
@page { size: A4; margin: 9mm 10mm; } /* was ~1012mm */
.resume, body { font-size: 10.75pt; line-height: 1.22; } /* was 11pt / 1.25 */
/* tighten vertical whitespace */
h2, h3 { margin-top: 6px; margin-bottom: 4px; }
.resume li { margin-bottom: 2px; } /* list spacing */
.resume section { margin-top: 8px; } /* section gap */
}
}