diff --git a/README.md b/README.md index 8fe19c0..2f409ed 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # me -This is the code for my personal website and resume. The main branch of this repository is reflected on https://nsood.in. +This is the code for my personal website. The main branch of this repository is reflected on https://nsood.in. ## Cool things that I never get to brag about diff --git a/css/resume.css b/css/resume.css deleted file mode 100644 index 2cccb8f..0000000 --- a/css/resume.css +++ /dev/null @@ -1,272 +0,0 @@ -@charset "UTF-8"; -*, *:before, *:after { - box-sizing: border-box; -} - -body { - margin: 0; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - font-family: "Inter", sans-serif; - font-variant-ligatures: none; -} - -button#print { - margin: 2rem auto; - border: none; - font-size: 8.5pt; - background: #eee; - color: #425580; - padding: 0.5rem 1rem; - border-radius: 0.2rem; - box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.1), 0 0.1rem 0.2rem rgba(0, 0, 0, 0.1); -} -button#print:hover { - box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.1), 0 0.1rem 0.2rem rgba(0, 0, 0, 0.2); -} -button#print:active { - background: #e0e0e0; -} -button#print i { - font-size: 7pt; - margin-right: 3pt; -} - -#page { - width: 8.5in; - height: 11in; - margin: 0 auto 4rem; - box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1), 0 0 0.5rem rgba(0, 0, 0, 0.2); - font-weight: 400; - font-size: 8.5pt; - line-height: 14pt; - background-size: 14pt 14pt; - background-repeat: repeat; - background-position: center top; -} -#page .page-contents { - padding: 28pt 42pt 0; -} - -@media print { - #page { - box-shadow: none; - height: auto; - width: auto; - margin: 0; - } - - button#print { - display: none; - } -} -@page { - margin: 0; -} -p { - margin: 0; -} - -h1.name { - margin: 0; - text-align: center; - font-size: 20pt; - line-height: 21pt; - height: 21pt; - font-weight: 600; -} - -nav.links { - display: flex; - justify-content: center; - align-items: stretch; - padding-top: 7pt; - height: 21pt; -} -nav.links a { - display: block; - color: inherit; - display: block; - padding: 0 7pt; - height: 14pt; - line-height: 14pt; - text-decoration: none; - font-size: 8.5pt; -} - -a { - color: inherit; - text-decoration: none; -} -a i.fa { - font-size: 6pt; - margin: 0 0.5pt -1.5pt; - line-height: 9.24pt; - position: relative; - width: 9.24pt; - height: 9.24pt; -} -a i.fa:before { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); -} - -h2 { - margin: 0; - position: relative; - padding-top: 7pt; - line-height: 14pt; - height: 21pt; - font-size: 12pt; - font-weight: 600; - display: block; - padding-right: 0; - align-self: flex-start; - width: 100%; -} -h2 span { - background: white; - padding-right: 5pt; -} -h2:before { - content: ""; - position: absolute; - top: 8.5pt; - bottom: 0; - margin: auto; - left: 0; - width: 100%; - box-sizing: content-box; - height: 0; - border-top: 1.5pt solid #ff61b0; - z-index: -1; -} - -h3 { - margin: 0; - font-size: 9.5pt; - font-weight: 600; - padding-right: 6pt; -} -h3 a i.fa { - font-size: 7pt; - margin: 0 0 -1.5pt 3pt; -} - -h4 { - margin: 0; - font-style: italic; - font-weight: 400; - font-size: 8.5pt; -} - -strong { - font-weight: 600; -} - -section { - display: flex; - flex-direction: column; -} - -section.skills p { - height: 14pt; -} -section.skills p:first-of-type { - margin-top: 7pt; -} -section.skills strong { - display: inline-block; - width: 80pt; -} - -ul { - margin: 0; - padding: 0 0 0 14pt; -} -ul li { - display: block; - position: relative; -} -ul li:before { - content: "·"; - height: 14pt; - width: 14pt; - display: block; - position: absolute; - top: 0; - left: -14pt; - text-align: center; - line-height: 14pt; - font-weight: bold; - font-size: 12pt; -} - -section.experience article.work-exp { - position: relative; - margin: 7pt 0 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 { - color: #444; - font-style: italic; - font-weight: 400; -} - -section.projects article.project { - height: 28pt; -} -section.projects article.project:first-of-type { - margin-top: 7pt; -} -section.projects div.project-title { - display: flex; - align-items: baseline; - justify-content: flex-start; - height: 14pt; -} -section.projects div.project-title h3 { - padding-right: 3pt; -} - -section.education article.institution { - position: relative; - margin-top: 7pt; -} - -/*# sourceMappingURL=resume.css.map */ diff --git a/css/resume.scss b/css/resume.scss deleted file mode 100644 index bbce3e4..0000000 --- a/css/resume.scss +++ /dev/null @@ -1,317 +0,0 @@ -*, *:before, *:after { - box-sizing: border-box; -} - -body { - margin: 0; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - font-family: 'Inter', sans-serif; - font-variant-ligatures: none; -} - -$ls: 14pt; - -button#print { - margin: 2rem auto; - border: none; - font-size: 8.5pt; - background: #eee; - color: #425580; - padding: 0.5rem 1rem; - border-radius: 0.2rem; - box-shadow: 0 0.2rem 0.5rem rgba(0,0,0,0.1), 0 0.1rem 0.2rem rgba(0,0,0,0.1); - - &:hover { - box-shadow: 0 0.2rem 0.5rem rgba(0,0,0,0.1), 0 0.1rem 0.2rem rgba(0,0,0,0.2); - } - - &:active { - background: #e0e0e0; - } - - i { - font-size: 7pt; - margin-right: 3pt; - } -} - -#page { - width: 8.5in; - height: 11in; - margin: 0 auto 4rem; - box-shadow: 0 0.25rem 0.75rem rgba(0,0,0,0.1), 0 0 0.5rem rgba(0,0,0,0.2); - font-weight: 400; - font-size: 8.5pt; - line-height: $ls; - $fade: #ccc; - $main: #aaa; - //background-image: linear-gradient(white 45%, $fade 45%, $fade 50%, white 50%, white 95%, $main 95%); - background-size: $ls $ls; - background-repeat: repeat; - background-position: center top; - - .page-contents { - padding: 2*$ls 3*$ls 0; - } -} - -@media print { - #page { - box-shadow: none; - height: auto; - width: auto; - margin: 0; - } - - button#print { - display: none; - } -} - -// print margins -@page { - margin: 0; -} - -p { - margin: 0; -} - -h1.name { - margin: 0; - text-align: center; - font-size: 20pt; - line-height: 1.5*$ls; - height: 1.5*$ls; - font-weight: 600; -} - -nav.links { - display: flex; - justify-content: center; - align-items: stretch; - padding-top: 0.5*$ls; - height: 1.5*$ls; - - a { - display: block; - color: inherit; - display: block; - padding: 0 0.5*$ls; - height: $ls; - line-height: $ls; - text-decoration: none; - font-size: 8.5pt; - } -} - -a { - color: inherit; - text-decoration: none; - - i.fa { - font-size: 6pt; - margin: 0 0.5pt -1.5pt; - line-height: 0.66*$ls; - position: relative; - width: 0.66*$ls; - height: 0.66*$ls; - - &:before { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - } - } -} - -h2 { - margin: 0; - position: relative; - padding-top: 0.5*$ls; - line-height: $ls; - height: 1.5*$ls; - font-size: 12pt; - font-weight: 600; - display: block; - padding-right: 0; - align-self: flex-start; - width: 100%; - - span { - background: white; - padding-right: 5pt; - } - - &:before { - content: ''; - position: absolute; - top: 8.5pt; - bottom: 0; - margin: auto; - left: 0; - width: 100%; - box-sizing: content-box; - height: 0; - border-top: 1.5pt solid #ff61b0; - z-index: -1; - } -} - -h3 { - margin: 0; - font-size: 9.5pt; - font-weight: 600; - padding-right: 6pt; - - a i.fa { - font-size: 7pt; - margin: 0 0 -1.5pt 3pt; - } -} - -h4 { - margin: 0; - font-style: italic; - font-weight: 400; - font-size: 8.5pt; - // display: flex; - // width: 100%; - // justify-content: space-between; -} - -strong { - font-weight: 600; -} - -section { - display: flex; - flex-direction: column; -} - -section.skills { - p { - height: $ls; - } - p:first-of-type { - margin-top: 0.5*$ls; - } - strong { - display: inline-block; - width: 80pt; - } -} - -ul { - margin: 0; - padding: 0 0 0 $ls; - - li { - display: block; - position: relative; - &:before { - content: '·'; - height: $ls; - width: $ls; - display: block; - position: absolute; - top: 0; - left: -$ls; - text-align: center; - line-height: $ls; - font-weight: bold; - font-size: 12pt; - } - } -} - -section.experience { - article.work-exp { - position: relative; - margin: 0.5*$ls 0 0; - } -} - -// 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; - &: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 { - color: #444; - font-style: italic; - font-weight: 400; -} - -section.projects { - article.project { - &:first-of-type { - margin-top: 0.5*$ls; - } - height: 2*$ls; - } - - div.project-title { - display: flex; - align-items: baseline; - justify-content: flex-start; - height: $ls; - - h3 { - padding-right: 3pt; - } - } -} - -section.education { - article.institution { - position: relative; - margin-top: 0.5*$ls; - } -} diff --git a/js/resume.js b/js/resume.js deleted file mode 100644 index e7bcd18..0000000 --- a/js/resume.js +++ /dev/null @@ -1,7 +0,0 @@ -document.querySelectorAll('main a').forEach(el => { - const icon = document.createElement('i'); - icon.classList.add('fa', 'fa-solid', 'fa-arrow-up-right-from-square'); - el.appendChild(icon); -}); - -document.querySelector('#print').addEventListener('click', () => window.print()); \ No newline at end of file diff --git a/resume.html b/resume.html deleted file mode 100644 index 6dfb3d0..0000000 --- a/resume.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - - - - - Naman Sood – Resume - - - -
-
-
-

Naman Sood

- -
-
-
-

Education

-
-
-
-

University of Waterloo

-

Bachelor of Computer Science – 3.9 GPA

-
-
- -
-
-
    -
  • Relevant Coursework: Operating Systems, Concurrency, Networks, Security, Data Structures & Algorithms
  • -
-
-
-
-

Skills

-

LanguagesJavaScript/TypeScript, Go, Rust, C++, C, Python, Scala, HTML/CSS, Shell, Haskell

-

TechnologiesGit, Docker, Kubernetes, AWS EC2/S3, gRPC/Protobuf, React, SQL, MongoDB

-
-
-

Experience

-
-
-
-

Tailscale

-

Software Developer Intern

-
-
- Toronto, ON - - -
-
-
-
-
-
-

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.
  • -
  • Delivered key usability improvements to code workspace in areas like error visibility and autogeneration of code snippets.
  • -
  • Refined syntax highlighting for SPARQL queries by improving regular expressions used to parse language constructs.
  • -
-
-
-
-
-

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.
  • -
  • Enforced standardization of Protobuf definitions for over 300 microservices by designing static analysis tool in Go.
  • -
  • Optimized build times by 10x for Docker images by simplifying package requirements to allow precompiled dependencies.
  • -
  • Improved system availability by identifying and removing bottlenecks in Redis server connections in Python library.
  • -
-
-
-
-
-

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.
  • -
  • 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 - - -
-
-
    -
  • 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.
  • - -
  • Assisted distributed systems research by conducting experiments on AWS EC2 and analyzing performance data in gnuplot.
  • -
-
-
-
-
-

Creesync Software

-

Software Engineering Intern

-
-
- New Delhi, India - - -
-
-
    -
  • Simplified distribution of professionally clicked photos by building Electron and React Native apps.
  • -
  • Designed and deployed API to upload and preview photos in low-bandwidth situations using Node.js and AWS S3.
  • -
-
- -
-
-

Projects

-
-
-

CHIP8-rust

- -
-

Emulator for CHIP-8 microprocessor. Simulated behavior of machine instructions with Rust, created graphics in framebuffer.

-
-
-
-

Clay

- -
-

A minimal x86 operating system. Handled tasks like interrupts, timers, paging, while balancing performance and maintainability.

-
- -
-
-
-
- - - diff --git a/resume.pdf b/resume.pdf deleted file mode 100644 index f96007e..0000000 Binary files a/resume.pdf and /dev/null differ