#import "fontawesome.typ": fa, globe, github, linkedin, envelope #import "lib.typ": template, work_entry, project, indent, SMALL_STRONG, DEFAULT_STRONG, render_contact_data // orange!! #let color = blue // rgb("#ff983e") #let name = "Daniel Chen" #let contact_data = (( service: fa[#globe], display: "eggworld.me", link: "https://eggworld.me", ), ( service: fa[#github], display: "github.com/potatoeggy", link: "https://github.com/potatoeggy", ), ( service: fa[#linkedin], display: "linkedin.com/in/potatoeggy", link: "https://www.linkedin.com/in/potatoeggy/", ), ( service: fa[#envelope], display: "d7chen@uwaterloo.ca", link: "mailto://d7chen@uwaterloo.ca", ),) #show: doc => template(name, color, doc) #render_contact_data(contact_data) // MAIN CONTENT STARTS here = Skills #indent[ *Languages:* TypeScript/JavaScript, HTML, CSS, SQL, Python, Rust \ // Dart *Technologies:* React, Next.js, 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 ] = Experience #indent[ #work_entry( "Software Engineering Intern", "Immigr8", start_date: "Jan 2024", end_date: "Apr 2024", location: "Remote", tools: "React, TypeScript, Spring Boot, Postgres, 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%*], [Created CI/CD pipelines to automatically deploy AWS Lambdas with Terraform and Jenkins], ), ) #work_entry( "Software Engineering Intern", "Dropbase", start_date: "May 2023", end_date: "Aug 2023", location: "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], [Designed a conflict resolution algorithm to merge databases, reducing unrecoverable errors by *75%*], // [?? new tool dDeveloped a *serverless microservice* that asynchronously ingests // email attachments directly into ETL pipelines], // [??? emphasise test driven development or remove line *Reduced request errors by 30%* by creating backend testing infrastructure with // *Pytest* to catch regressions and test new features across database engines with // *90% code coverage*], ), ) #work_entry( "Backend Developer", "Hack the North", start_date: "Mar 2023", end_date: "present", location: "Waterloo, ON", tools: "Express, TypeScript, Postgres, GraphQL", tasks: ( [Built a new travel tool application leveraging GraphQL and Apollo Server to track bus capacity for *500+* attendees through real-time registration processes], [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 hour at the world's largest student-run hackathon by autoscaling Redis and Postgres on Kubernetes], [Slashed dev server reload time from *130 → 9 s* by introducing threading and pre-transpiling generated code], // [Upgraded the event statistics dashboard to update in real time with GraphQL // *subscriptions with Redis PubSub*], ), ) #work_entry( "Software Developer", "Organization for Transformative Works", 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 #set strong(delta: SMALL_STRONG) #indent[ #project( "Mandown Comic Downloader", "Python, Qt", repo_link: "https://github.com/potatoeggy/mandown", start_date: "Jan 2022", end_date: "present", tasks: ( [Created a CLI and GUI to scrape, download, and convert webcomics into e-ink-optimised PDF/EPUBs], [Designed a scalable ebook converter with a *plugin-based architecture* to improve compatibility], [Implemented *image caching and multithreading* to increase download and update speeds by *300%*], ), ) #project( "Kobo Sync Server", "Rust, Axum", repo_link: "https://github.com/potatoeggy/kobink", start_date: "Nov 2023", end_date: "present", tasks: ( [Developed a *Rust* backend to sync custom ebook files to Kobos by reimplementing the Kobo Sync API], [Deployed the service behind an nginx reverse proxy and Cloudflare DNS to sync over the internet], ), ) // #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", start_date: "Apr 2023", end_date: "present", 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", // "Flutter, Selenium, FastAPI, Android", // ) // - Developed a *Flutter app* to generate recipes based on ingredients and filters // through a FastAPI server // - Scraped thousands of websites for recipes to build a database with a robust // *many-to-many tag system* // - Aggregated common ingredients heuristically to build a shopping list and a meal // plan for each week // #project("Arch Linux Server", "Linux, Docker, nginx, systemd", demo_link: "https://eggworld.me") // - Created a *self-hosted CI/CD pipeline* with *Gitea* to automatically deploy // personal projects behind *nginx* // - Containerised services with *Docker* and *systemd* to simplify deployment and // management // #project( // "Game Boy Advance Emulator", // "Rust, SDL2, Vulkan", // repo_link: "https://github.com/potatoeggy/gbarr", // ) // - 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 #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], ), ) ]