diff --git a/css/resume.css b/css/resume.css index 145e7df..2cccb8f 100644 --- a/css/resume.css +++ b/css/resume.css @@ -47,7 +47,7 @@ button#print i { background-position: center top; } #page .page-contents { - padding: 14pt 42pt 21pt; + padding: 28pt 42pt 0; } @media print { @@ -72,10 +72,9 @@ p { h1.name { margin: 0; text-align: center; - font-size: 22pt; + font-size: 20pt; line-height: 21pt; - padding-top: 7pt; - height: 28pt; + height: 21pt; font-weight: 600; } @@ -143,7 +142,7 @@ h2:before { width: 100%; box-sizing: content-box; height: 0; - border-top: 1.5pt solid #63c8d3; + border-top: 1.5pt solid #ff61b0; z-index: -1; } @@ -151,6 +150,7 @@ h3 { margin: 0; font-size: 9.5pt; font-weight: 600; + padding-right: 6pt; } h3 a i.fa { font-size: 7pt; @@ -162,9 +162,6 @@ h4 { font-style: italic; font-weight: 400; font-size: 8.5pt; - display: flex; - width: 100%; - justify-content: space-between; } strong { @@ -214,12 +211,35 @@ section.experience article.work-exp { margin: 7pt 0 0; } -aside.date { - position: absolute; - right: 0; - top: 0; +span.bullet { + display: block; + position: relative; + width: 14pt; height: 14pt; +} +span.bullet:before { + content: "·"; + height: 14pt; + width: 14pt; + display: block; + position: absolute; + top: 0; + left: 0; + text-align: center; line-height: 14pt; + font-weight: bold; + font-size: 12pt; +} + +article > div { + display: flex; + justify-content: space-between; +} +article > div > div { + display: flex; +} +article > div > div.right-side { + justify-content: flex-end; } aside.languages { @@ -237,6 +257,7 @@ section.projects article.project:first-of-type { section.projects div.project-title { display: flex; align-items: baseline; + justify-content: flex-start; height: 14pt; } section.projects div.project-title h3 { diff --git a/css/resume.scss b/css/resume.scss index a8f0c0c..bbce3e4 100644 --- a/css/resume.scss +++ b/css/resume.scss @@ -54,7 +54,7 @@ button#print { background-position: center top; .page-contents { - padding: $ls 3*$ls 1.5*$ls; + padding: 2*$ls 3*$ls 0; } } @@ -83,10 +83,9 @@ p { h1.name { margin: 0; text-align: center; - font-size: 22pt; + font-size: 20pt; line-height: 1.5*$ls; - padding-top: 0.5*$ls; - height: 2*$ls; + height: 1.5*$ls; font-weight: 600; } @@ -158,7 +157,7 @@ h2 { width: 100%; box-sizing: content-box; height: 0; - border-top: 1.5pt solid #63c8d3; + border-top: 1.5pt solid #ff61b0; z-index: -1; } } @@ -167,6 +166,7 @@ h3 { margin: 0; font-size: 9.5pt; font-weight: 600; + padding-right: 6pt; a i.fa { font-size: 7pt; @@ -179,9 +179,9 @@ h4 { font-style: italic; font-weight: 400; font-size: 8.5pt; - display: flex; - width: 100%; - justify-content: space-between; + // display: flex; + // width: 100%; + // justify-content: space-between; } strong { @@ -236,18 +236,51 @@ section.experience { } } -aside.date { - position: absolute; - right: 0; - top: 0; //calc($ls / 2); +// aside.date { +// position: absolute; +// right: 0; +// top: 0; //calc($ls / 2); +// height: $ls; +// line-height: $ls; +// // $offset: $4pt; +// // top: -$offset; +// // background: black; +// // color: white; +// // padding: $offset 1.5*$offset; +// // height: $ls + 2*$offset; +// } + +span.bullet { + display: block; + position: relative; + width: $ls; height: $ls; - line-height: $ls; - // $offset: $4pt; - // top: -$offset; - // background: black; - // color: white; - // padding: $offset 1.5*$offset; - // height: $ls + 2*$offset; + &:before { + content: '·'; + height: $ls; + width: $ls; + display: block; + position: absolute; + top: 0; + left: 0; + text-align: center; + line-height: $ls; + font-weight: bold; + font-size: 12pt; + } +} + +article > div { + display: flex; + justify-content: space-between; + + > div { + display: flex; + + &.right-side { + justify-content: flex-end; + } + } } aside.languages { @@ -267,6 +300,7 @@ section.projects { div.project-title { display: flex; align-items: baseline; + justify-content: flex-start; height: $ls; h3 { diff --git a/resume.html b/resume.html index 95a7379..65dfef0 100644 --- a/resume.html +++ b/resume.html @@ -21,9 +21,15 @@

Education

-

University of Waterloo

-

Bachelor of Computer Science – 3.9 GPA

- +
+
+

University of Waterloo

+

Bachelor of Computer Science – 3.9 GPA

+
+
+ +
+
@@ -37,14 +43,49 @@

Experience

-

FreeBSD Foundation

-

Software Developer Intern Kitchener, ON

- +
+
+

Tailscale

+

Software Developer Intern

+
+
+ Toronto, ON + + +
+
-

data.world

-

Software Engineer Intern Austin, TX

- +
+
+

FreeBSD Foundation

+

Software Developer Intern

+
+
+ Kitchener, ON + + +
+
+
    +
  • Modernized firewall infrastructure by adding support for IPv6 multicast addresses in firewall state-syncing kernel module.
  • +
  • Enabled peer-to-peer networking over PF firewall by porting full-cone NAT to current code, showing 3x performance gain.
  • +
  • Ensured compatibility with container infrastructure by patching Conmon monitoring software to fix regressions on FreeBSD.
  • +
  • Enhanced reliability by fixing longstanding bugs in C core system utilities, used for user management and disk monitoring.
  • +
+
+
+
+
+

data.world

+

Software Engineer Intern

+
+
+ Austin, TX + + +
+
  • Spearheaded Databricks and Apache Spark support in Java-based data catalog service by integrating JDBC database drivers.
  • Boosted user productivity in code editing workspace by generating autocompletions for RDF classes and properties.
  • @@ -53,9 +94,17 @@
-

Carta

-

Software Engineer Intern, Infrastructure Kitchener, ON

- +
+
+

Carta

+

Software Engineer Intern, Infrastructure

+
+
+ Kitchener, ON + + +
+
  • Designed distributed gRPC logging system using Apache Fluent for scalable auditing and compliance across organization.
  • Created proof-of-concept for logging system using Kubernetes DaemonSets, with ConfigMaps to deploy custom configurations.
  • @@ -65,45 +114,69 @@
-

Tailscale

-

Software Engineer Intern Toronto, ON

- +
+
+

Tailscale

+

Software Developer Intern

+
+
+ Toronto, ON + + +
+
  • Introduced cloud/serverless support by emulating TCP/IP stack in userspace for Docker containers, using Google gVisor.
  • Enabled standardized communication using SOCKS5 protocol over Tailscale VPN by implementing proxy server in Go.
  • -
  • Simplified deployments in cloud environments by creating single-session authentication keys with auto-cleanup.
  • +
  • Streamlined deployments in cloud environments by creating single-session authentication keys with auto-cleanup.
  • Developed a GitHub Action for end-users that allows plug-and-play security for CI/CD pipelines.
  • Expanded outreach within the technical community by writing long-form content for corporate blog.
-

University of Waterloo

-

Research Associate Waterloo, ON

- +
+
+

University of Waterloo

+

Research Associate

+
+
+ Waterloo, ON + + +
+
  • Optimized Go consensus system to 3x throughput by increasing maximum transaction count sent in each message.
  • Streamlined deployment of project by using Docker images to generate repeatable builds across diverse environments.
  • -
  • Unified similar codebases by migrating duplicate components to a single C++ project.
  • +
  • Assisted distributed systems research by conducting experiments on AWS EC2 and analyzing performance data in gnuplot.
- -
+
+

Projects

diff --git a/resume.pdf b/resume.pdf index a5a096f..1bc4116 100644 Binary files a/resume.pdf and b/resume.pdf differ