diff --git a/Daniel Chen.typ b/Daniel Chen.typ index 467dc23..5fb960d 100644 --- a/Daniel Chen.typ +++ b/Daniel Chen.typ @@ -32,12 +32,11 @@ = Skills #indent[ - *Languages:* TypeScript/JavaScript, HTML, CSS, SQL, Python, Rust \ + *Languages:* C, C++, Rust, Python, TypeScript/JavaScript, HTML, CSS, SQL \ // Dart - *Technologies:* React, Next.js, Express, Prisma, Apollo, GraphQL \ + *Technologies:* Qt, React, Express, Prisma, Axum \ // Qt, Jest / Pytest, Apollo, Prisma, Rails - *Tools:* Linux, Git, Docker, Postgres, Pytest, Jest, AWS/GCP, Kubernetes, - Terraform, Figma // Jenkins, systemd, Jira + *Tools:* Linux, Git, Docker, Postgres, Jenkins, systemd, nginx, Pytest, Jest // Jenkins, systemd, Jira ] = Experience @@ -52,9 +51,6 @@ 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], @@ -97,11 +93,11 @@ 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], + // [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 + [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 @@ -129,6 +125,45 @@ #set strong(delta: SMALL_STRONG) #indent[ + #project( + "PNG Downloader & Merger", + "C, libcurl", + start_date: "May 2024", + end_date: "present", + tasks: ( + [Developed a *multithreaded C program* to download and merge PNGs into one in + parallel with *libcurl*], + [Guaranteed thread safety by using *mutexes* and data integrity by verifying file + checksums after download], + ), + ) + + #project( + "Arch Linux Server", + "Linux, nginx, systemd", + demo_link: "https://eggworld.me", + tasks: ( + [Created a *self-hosted CI/CD pipeline* with *Gitea* to automatically deploy + personal projects behind *nginx*], + [Automated server maintenance with *systemd timers and services* to update + packages and certificates], + ), + ) + + #project( + "Kobo Sync Backend", + "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( "Mandown Comic Downloader", "Python, Qt", @@ -145,20 +180,6 @@ ), ) - #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", @@ -170,20 +191,20 @@ // - 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( + // "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", @@ -197,12 +218,6 @@ // - 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",