Compare commits
11 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
c09d0bdc1a | ||
|
18ebf61e9b | ||
|
8b5a085447 | ||
|
f078060477 | ||
|
5eadcfe0ba | ||
|
10889dba25 | ||
|
6bfc3273c0 | ||
|
f0e9e96fe4 | ||
|
baa386a39e | ||
|
f9b8dd6b0e | ||
|
d165a1b259 |
@@ -27,13 +27,31 @@
|
||||
|
||||
// MAIN CONTENT STARTS here
|
||||
|
||||
= Education
|
||||
|
||||
#indent[
|
||||
#work_entry(
|
||||
"University of Waterloo",
|
||||
"B.A.Sc. in Computer Engineering",
|
||||
start_date: "Sep 2022",
|
||||
end_date: "Apr 2027",
|
||||
location: "Waterloo, ON",
|
||||
tasks: (
|
||||
[Courses: Object-oriented programming, data structures & algorithms, digital
|
||||
computers & circuits],
|
||||
),
|
||||
)
|
||||
]
|
||||
|
||||
= Skills
|
||||
|
||||
#indent[
|
||||
*Languages:* Python, TypeScript/JavaScript, Rust, SQL, MATLAB, C++, Java, HTML, CSS \
|
||||
*Frameworks:* Node.js, Express, React, Next.js, Vue, Flutter, Qt, Prisma, Apollo, Axum \
|
||||
*Tools:* Linux, Git, Docker, PostgreSQL, Redis, Kubernetes, AWS, GCP, Heroku,
|
||||
OpenTelemetry, GraphQL
|
||||
*Languages:* Python, TypeScript, JavaScript, Rust, SQL, MATLAB, C, C++, Java,
|
||||
HTML, CSS, Dart \
|
||||
*Frameworks:* Node.js, Express, React, Next.js, Vue, Flutter, Qt, Prisma,
|
||||
Apollo, Axum, Jest, Pytest \
|
||||
*Tools:* Linux, Git, Docker, PostgreSQL, Redis, Kubernetes, AWS, GCP,
|
||||
OpenTelemetry, GraphQL, Android
|
||||
]
|
||||
|
||||
= Experience
|
||||
@@ -45,13 +63,16 @@
|
||||
"Dropbase",
|
||||
start_date: "May 2023",
|
||||
end_date: "Aug 2023",
|
||||
location: "Remote",
|
||||
location: "San Francisco, CA",
|
||||
tasks: (
|
||||
[Developed a *FastAPI backend* to sync HubSpot and Airtable data with Google
|
||||
Sheets via *AWS Lambda*],
|
||||
[Engineered a *heuristic algorithm* to validate SQL queries against databases for better IDE auto-completion],
|
||||
[Constructed dynamic web forms in *React* by generating elements on demand based on user responses],
|
||||
[Created testing infrastructure for the backend with *Pytest* to catch regressions across database engines],
|
||||
[Engineered a database-specific *SQL IDE autocompletion tool* via a heuristic
|
||||
algorithm to validate queries],
|
||||
[Developed a service to sync HubSpot and Airtable data with Google Sheets via
|
||||
*AWS Lambda*],
|
||||
[Constructed dynamic forms in *react-hook-form* by generating questions from the
|
||||
backend on-the-fly],
|
||||
[Created testing infrastructure for the backend with *Pytest* to catch
|
||||
regressions across database engines],
|
||||
),
|
||||
)
|
||||
|
||||
@@ -62,14 +83,13 @@
|
||||
end_date: "present",
|
||||
location: "Waterloo, ON",
|
||||
tasks: (
|
||||
[Dynamically generated user-specific Apple Wallet passes over *Apollo GraphQL*
|
||||
Server to streamline check-in],
|
||||
[Streamlined registration by dynamically generating *user-specific Apple Wallet
|
||||
passes* over *Apollo GraphQL*],
|
||||
[Integrated backend *tracing* with *OpenTelemetry* and *Grafana* to monitor performance and trigger alerts],
|
||||
[Horizontally scaled the *Node.js* server to handle *1000+ concurrent users* with
|
||||
*Redis* and *Kubernetes*],
|
||||
[Designed a greedy algorithm in Python to match *20+ judges*
|
||||
to *240+ hacker teams* based on their themes],
|
||||
[Integrated *OpenTelemetry* and Grafana in a *Kubernetes* cluster to collect
|
||||
traces and improve observability],
|
||||
[Automated judging scheduling by creating a *greedy algorithm* to match judges to
|
||||
project themes],
|
||||
),
|
||||
)
|
||||
]
|
||||
@@ -79,7 +99,7 @@
|
||||
|
||||
#indent[
|
||||
#project(
|
||||
"Mandown",
|
||||
"Comic Converter",
|
||||
"https://github.com/potatoeggy/mandown",
|
||||
"Python, Qt",
|
||||
)
|
||||
@@ -92,20 +112,25 @@
|
||||
- Minimised regressions between release cycles by writing *unit and integration
|
||||
tests* with 55% code coverage
|
||||
|
||||
#project("Kobink", "https://github.com/potatoeggy/kobink", "Rust, Axum")
|
||||
- Developed an Axum backend to *automatically convert and sync* ebooks to a Kobo eReader
|
||||
over the network
|
||||
- Reverse-engineered the Kobo eReader Sync protocol to support updating ebook metadata and covers
|
||||
#project(
|
||||
"Kobo Sync Server",
|
||||
"https://github.com/potatoeggy/kobink",
|
||||
"Rust, Axum",
|
||||
)
|
||||
- Developed an Axum backend to *automatically convert and sync* ebooks to a Kobo
|
||||
eReader over the network
|
||||
- *Reverse-engineered* the Kobo eReader Sync API to support updating ebook
|
||||
metadata and covers
|
||||
|
||||
#project(
|
||||
"Primoprod",
|
||||
"Genshin Simulator",
|
||||
"https://github.com/potatoeggy/primoprod",
|
||||
"Vue, TypeScript",
|
||||
)
|
||||
- Built an interactive, realistic, and beautiful game simulator with fluid
|
||||
animations based off a popular game
|
||||
// this is a wish simulator
|
||||
-
|
||||
- Built an realistic and beautiful *loot box simulator* with fluid animations
|
||||
based off a popular game
|
||||
- Reduced action latency by *90%* by lazily loading art assets at opportune times,
|
||||
such as during cutscenes
|
||||
|
||||
#project(
|
||||
"RecipeReady",
|
||||
@@ -134,19 +159,3 @@
|
||||
StormHacks 2022 from 350+ participants
|
||||
- Winner of the #link("https://github.com/anyuan-chen/perdiem")[IBM Open Source] prize
|
||||
at YRHacks 2022 from 90+ participants
|
||||
|
||||
= Education
|
||||
|
||||
#indent[
|
||||
#work_entry(
|
||||
"University of Waterloo",
|
||||
"B.A.Sc. in Computer Engineering",
|
||||
start_date: "Sep 2022",
|
||||
end_date: "Apr 2027",
|
||||
location: "Waterloo, ON",
|
||||
tasks: (
|
||||
[Courses: Object-oriented programming, data structures & algorithms, digital
|
||||
computers & circuits],
|
||||
),
|
||||
)
|
||||
]
|
4
lib.typ
4
lib.typ
@@ -9,7 +9,7 @@
|
||||
|
||||
#let BODY_FONT_SIZE = 10pt
|
||||
#let HEADING_FONT_SIZE = 1em
|
||||
#let TITLE_FONT_SIZE = 2em
|
||||
#let TITLE_FONT_SIZE = 2.25em
|
||||
|
||||
#let HEADING_LINE_GAP = 3mm
|
||||
#let BODY_LINE_HEIGHT = 0.85em
|
||||
@@ -104,7 +104,7 @@
|
||||
let elements = for el in contact_data {
|
||||
(link(el.link)[#{ el.service + " " + el.display }],)
|
||||
}
|
||||
text(1.1em)[#elements.join(" | ")]
|
||||
text(1em)[#elements.join(" | ")]
|
||||
}
|
||||
}
|
||||
]
|
||||
|
Reference in New Issue
Block a user