diff --git a/Daniel Chen.typ b/Daniel Chen.typ index 23eb7c5..fa85691 100644 --- a/Daniel Chen.typ +++ b/Daniel Chen.typ @@ -29,15 +29,21 @@ // MAIN CONTENT STARTS here -= Skills += Education #indent[ - *Languages:* TypeScript/JavaScript, HTML, CSS, SQL, Python, Java, C, C++, Rust \ - // Dart - *Technologies:* React, Next.js, Spring Boot, Express, Prisma, Apollo, GraphQL \ - // Qt, Jest / Pytest, Apollo, Prisma, Rails - *Tools:* Linux, Git, Docker, Postgres, Pytest, Jest, AWS/GCP, Kubernetes, - Terraform, Figma // Jenkins, systemd, Jira + #work_entry( + "B.A.Sc. in Computer Engineering (Honours, Co-op)", + "University of Waterloo", + start_date: "Sep 2022", + end_date: "Apr 2027", + location: "Waterloo, ON", + tasks: ( + [Courses: Object-oriented programming, data structures & algorithms, digital + logic & circuits], + // [Extracurriculars: Creative Writing Club, Hack the North, UW Orbital Design Team], + ), + ) ] = Experience @@ -48,9 +54,9 @@ "Magna", company_link: "https://magna.so", start_date: "Sep 2024", - end_date: "Dec 2024", + end_date: "present", location: "New York, NY", - tools: "React, TypeScript, Rust, GraphQL, AWS", + tools: "React, TypeScript, Rust, Solidity, GraphQL, AWS", tasks: ([Improving token distribution infrastructure averaging *\$1 million* in transactions per day],), ) @@ -60,19 +66,17 @@ company_link: "https://immigr8now.com", start_date: "Jan 2024", end_date: "Apr 2024", - location: "Remote", - tools: "React, TypeScript, Spring Boot, Postgres, AWS", + location: "Tampa, FL (Remote)", + tools: "React, TypeScript, Spring Boot, Postgres, Terraform, AWS", tasks: ( - // [Improved client responsiveness by *80* by employing stale-while-revalidate hooks for caching and ?? SWR performance, caching, error handling], // [Owned the creation of an end-to-end document vault feature in React for users to // upload and verify identity documents with Textract, reducing support tickets by // *25%*], [Planned and executed a roadmap to *SOC 2 security compliance* by implementing *role-based permissions with JWTs* in Spring Boot, logging alerts to CloudWatch, and introducing new privacy controls for user data], - [Optimised dashboard responsiveness by *80%* by employing stale-while-revalidate - hooks in React and lazily loading backend models with Hibernate, improving user - retention by *30%*], + [Investigated and improved initial load time by *80%* for tool using async data + fetching and optimising relations], [Created CI/CD pipelines to automatically deploy AWS Lambdas with Terraform and Jenkins], ), @@ -84,14 +88,14 @@ company_link: "https://dropbase.io", start_date: "May 2023", end_date: "Aug 2023", - location: "Remote", + location: "San Francisco, CA (Remote)", tools: "React, TypeScript, Python, Postgres, AWS", tasks: ( [Engineered a new React data query builder and FastAPI backend for our business intelligence visualisation service to *33000+* users, eliminating the need for clients to manually write API calls], - [Shipped a new tool to sync *46000+* users' HubSpot/Airtable tables to Google - Sheets with AWS Lambdas], + [Shipped a new database sync tool for *46000+* users by abstracting data sources + behind an adapter-based architecture and AWS Lambdas], [Designed a conflict resolution algorithm to merge databases, reducing unrecoverable errors by *75%*], // [?? new tool dDeveloped a *serverless microservice* that asynchronously ingests @@ -111,8 +115,8 @@ location: "Waterloo, ON", tools: "Express, TypeScript, Postgres, Kubernetes", tasks: ( - [Built a new travel tool application leveraging GraphQL and Apollo Server to - track bus capacity for *500+* attendees through real-time registration processes], + [Built a new travel registration application leveraging GraphQL to track bus + capacity for *500+* attendees in real time], [Streamlined event check-in times by *80%* for *1900+* guests by generating Apple Wallet passes over Express], [Diagnosed and recovered from crashes due to load spikes up to *800k* updates per @@ -125,19 +129,19 @@ ), ) - #work_entry( - "Software Developer", - "Organization for Transformative Works", - company_link: "https://otw.org", - start_date: "Feb 2024", - end_date: "present", - location: "Remote", - tools: "Python, React, MySQL", - tasks: ( - [Upgrading archive import pipelines in Python to make *4000+* user works - accessible to *7 million* users], - ), - ) + // #work_entry( + // "Software Developer", + // "Organization for Transformative Works", + // company_link: "https://otw.org", + // start_date: "Feb 2024", + // end_date: "present", + // location: "Remote", + // tools: "Python, React, MySQL", + // tasks: ( + // [Upgrading archive import pipelines in Python to make *4000+* user works + // accessible to *7 million* users], + // ), + // ) ] = Projects @@ -170,30 +174,32 @@ ), ) - // #project( - // "Genshin Rewards Simulator", - // "Vue, TypeScript", - // repo_link: "https://github.com/potatoeggy/primoprod", - // demo_link: "https://primoprod.vercel.app", - // ) - // - Built a realistic and beautiful *loot box simulator* with CSS animations based - // off a popular game - // - Reduced action latency by *90%* by lazily loading art assets at opportune times, - // such as during cutscenes - #project( - "Jeopardy!", - "Vue, TypeScript, WebSockets", - repo_link: "https://github.com/potatoeggy/jeopardy", - demo_link: "https://jeopardy.eggworld.me/host", + "Genshin Rewards Simulator", + "Vue, TypeScript", + repo_link: "https://github.com/potatoeggy/primoprod", + demo_link: "https://primoprod.vercel.app", tasks: ( - [Developed a beautiful and polished game where participants buzz in on their - devices over *WebSockets*], - [Synchronised game state between clients and the host with shared types and the - *observer pattern*], + [Built a realistic and beautiful *loot box simulator* with CSS animations based + off a popular game], + [Reduced action latency by *90%* by lazily loading art assets at opportune times, + such as during cutscenes], ), ) + // #project( + // "Jeopardy!", + // "Vue, TypeScript, WebSockets", + // repo_link: "https://github.com/potatoeggy/jeopardy", + // demo_link: "https://jeopardy.eggworld.me/host", + // tasks: ( + // [Developed a beautiful and polished game where participants buzz in on their + // devices over *WebSockets*], + // [Synchronised game state between clients and the host with shared types and the + // *observer pattern*], + // ), + // ) + // #project( // "RecipeReady", // "https://github.com/vincentjguo/recipeready-server", @@ -216,26 +222,22 @@ // "Game Boy Advance Emulator", // "Rust, SDL2, Vulkan", // repo_link: "https://github.com/potatoeggy/gbarr", + // tasks: ( + // [Implemented an *ARMv7* emulator for old games to run on modern x86_64 platforms + // with *SDL2* and *Vulkan*], + // [WebGPU and WASM for portability, typestate to guarantee everything is always + // valid], + // ), // ) - // - Implemented a *ARMv7 emulator* for old games to run on modern x86_64 platforms - // with *SDL2* and *Vulkan* - // - WebGPU and WASM for portability, typestate to guarantee everything is always - // valid ] -= Education += Skills #indent[ - #work_entry( - "B.A.Sc. in Computer Engineering (Honours, Co-op)", - "University of Waterloo", - start_date: "Sep 2022", - end_date: "Apr 2027", - location: "Waterloo, ON", - tasks: ( - [Courses: Object-oriented programming, data structures & algorithms, digital - logic & circuits], - // [Extracurriculars: Creative Writing Club, Hack the North, UW Orbital Design Team], - ), - ) -] + *Languages:* TypeScript/JavaScript, HTML, CSS, SQL, Python, Java, C, C++, Rust \ + // Dart + *Technologies:* React, Next.js, Spring Boot, Express, Prisma, Apollo, GraphQL \ + // Qt, Jest / Pytest, Apollo, Prisma, Rails + *Tools:* Linux, Git, Docker, Postgres, Pytest, Jest, AWS/GCP, Kubernetes, + Terraform, Figma // Jenkins, systemd, Jira +] \ No newline at end of file diff --git a/lib.typ b/lib.typ index e27e422..f527fd1 100644 --- a/lib.typ +++ b/lib.typ @@ -12,15 +12,15 @@ #let TITLE_FONT_SIZE = 2em #let HEADING_LINE_GAP = 3mm -#let BODY_LINE_HEIGHT = 0.8em +#let BODY_LINE_HEIGHT = 0.75em -#let HEADING_DETAILS_LIST_SPACING = 0.9em +#let HEADING_DETAILS_LIST_SPACING = 0.8em #let DETAILS_TITLE_FONT_SIZE = 1.075em -#let DETAILS_LIST_SPACING = 0.85em +#let DETAILS_LIST_SPACING = 0.8em // rest = not top -#let PAGE_MARGINS = (rest: 0.5in, top: 0.4in, left: 0.4in, bottom: 0.4in) +#let PAGE_MARGINS = (rest: 0.4in, top: 0.3in, left: 0.3in, bottom: 0.4in) // Format locations. #let format_location(location) = { @@ -36,7 +36,7 @@ stack( dir: ttb, spacing: HEADING_DETAILS_LIST_SPACING, - grid(columns: (15fr, 4fr), column-gutter: 0cm, { + grid(columns: (15fr, 5fr), column-gutter: 0cm, { set strong(delta: DEFAULT_STRONG) set align(left) left_content