From 75f3074226b71947a11898d2e9e35e24ed61bb49 Mon Sep 17 00:00:00 2001 From: Yadunand Prem Date: Tue, 5 Aug 2025 22:31:14 +0800 Subject: [PATCH] Resume v1 --- .gitignore | 9 +++++ devenv.lock | 103 +++++++++++++++++++++++++++++++++++++++++++++++ devenv.nix | 5 +++ devenv.yaml | 15 +++++++ main.pdf | Bin 0 -> 35884 bytes main.typ | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 245 insertions(+) create mode 100644 .gitignore create mode 100644 devenv.lock create mode 100644 devenv.nix create mode 100644 devenv.yaml create mode 100644 main.pdf create mode 100644 main.typ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4d058db --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +# Devenv +.devenv* +devenv.local.nix + +# direnv +.direnv + +# pre-commit +.pre-commit-config.yaml diff --git a/devenv.lock b/devenv.lock new file mode 100644 index 0000000..ba4f1bc --- /dev/null +++ b/devenv.lock @@ -0,0 +1,103 @@ +{ + "nodes": { + "devenv": { + "locked": { + "dir": "src/modules", + "lastModified": 1753888869, + "owner": "cachix", + "repo": "devenv", + "rev": "bdf26a4453eff6bae835f33d519a36f77e0ca257", + "type": "github" + }, + "original": { + "dir": "src/modules", + "owner": "cachix", + "repo": "devenv", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1747046372, + "owner": "edolstra", + "repo": "flake-compat", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "git-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1750779888, + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1750441195, + "owner": "cachix", + "repo": "devenv-nixpkgs", + "rev": "0ceffe312871b443929ff3006960d29b120dc627", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "rolling", + "repo": "devenv-nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "devenv": "devenv", + "git-hooks": "git-hooks", + "nixpkgs": "nixpkgs", + "pre-commit-hooks": [ + "git-hooks" + ] + } + } + }, + "root": "root", + "version": 7 +} diff --git a/devenv.nix b/devenv.nix new file mode 100644 index 0000000..c42179b --- /dev/null +++ b/devenv.nix @@ -0,0 +1,5 @@ +{ pkgs, lib, config, inputs, ... }: + +{ + packages = [ pkgs.git pkgs.typst ]; +} diff --git a/devenv.yaml b/devenv.yaml new file mode 100644 index 0000000..116a2ad --- /dev/null +++ b/devenv.yaml @@ -0,0 +1,15 @@ +# yaml-language-server: $schema=https://devenv.sh/devenv.schema.json +inputs: + nixpkgs: + url: github:cachix/devenv-nixpkgs/rolling + +# If you're using non-OSS software, you can set allowUnfree to true. +# allowUnfree: true + +# If you're willing to use a package that's vulnerable +# permittedInsecurePackages: +# - "openssl-1.1.1w" + +# If you have more than one devenv you can merge them +#imports: +# - ./backend diff --git a/main.pdf b/main.pdf new file mode 100644 index 0000000000000000000000000000000000000000..03b688c49735b5cf43f86e1bb2848220aa6cd072 GIT binary patch literal 35884 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 UFqbo3!vl;WeoQ7NIrXdm4?zToRR910 literal 0 HcmV?d00001 diff --git a/main.typ b/main.typ new file mode 100644 index 0000000..28fe7ee --- /dev/null +++ b/main.typ @@ -0,0 +1,113 @@ +#import "@preview/basic-resume:0.2.8": * + +// Put your personal information here, replacing mine +#let name = "Yadunand Prem" +#let location = "Singapore" +#let email = "yadunand@yadunut.com" +#let github = "github.com/yadunut" +#let linkedin = "linkedin.com/in/yadunand-prem" +#let phone = "+65 8299 6445" +#let personal-site = "yadunut.dev" + +#show: resume.with( + author: name, + // All the lines below are optional. + // For example, if you want to to hide your phone number: + // feel free to comment those lines out and they will not show. + location: location, + email: email, + github: github, + linkedin: linkedin, + // phone: phone, + personal-site: personal-site, + accent-color: "#26428b", + font: "New Computer Modern", + paper: "us-letter", + author-position: left, + personal-info-position: left, +) + +/* +* Lines that start with == are formatted into section headings +* You can use the specific formatting functions if needed +* The following formatting functions are listed below +* #edu(dates: "", degree: "", gpa: "", institution: "", location: "", consistent: false) +* #work(company: "", dates: "", location: "", title: "") +* #project(dates: "", name: "", role: "", url: "") +* certificates(name: "", issuer: "", url: "", date: "") +* #extracurriculars(activity: "", dates: "") +* There are also the following generic functions that don't apply any formatting +* #generic-two-by-two(top-left: "", top-right: "", bottom-left: "", bottom-right: "") +* #generic-one-by-two(left: "", right: "") +*/ + +== Experience + +#work( + title: "Software Engineering Intern", + location: "Toronto, Ontario, Canada", + company: link("https://endorhealth.com", "Endor Health"), + dates: dates-helper(start-date: "Aug 2024", end-date: "July 2025") +) +- Spearheaded frontend modernization efforts, migrating the *React Native* codebase from *JavaScript* to *TypeScript*, significantly improving maintainability, type safety, and developer experience. +- Introduced a *react-query* based networking layer with persistent caching, replacing ad-hoc fetch calls to improve performance, consistency, and offline resilience. +- Designed and implemented an auto-order fulfillment system that now processes *20%* of all pharmacy orders, automating patient refills +- Shipped features and improvements that supported user growth from *\~300* to *\~3200 MAUs* + + +#work( + title: "Software Engineering Intern", + location: "Hong Kong", + company: link("https://mwam.com", "Marshall Wace"), + dates: dates-helper(start-date: "May 2024", end-date: "Jul 2024") +) +- Built an LLM-powered pipeline to classify broker news into actionable ticker sentiment signals for trading systems. +- Improved sentiment classification accuracy from 0.7 (previous NLP model) to 0.9 (new LLM-based model) on validation datasets. +- Created a platform for users to iteratively train and validate LLM prompts against historical and daily data +- Enhanced prompt iteration speed and model reliability, accelerating integration of sentiment signals into investment decisions. + +#work( + title: "Software Engineer", + location: "Remote", + company: link("https://undertide.co", "Undertide"), + dates: dates-helper(start-date: "Apr 2020", end-date: "Jul 2023") +) +- Worked on the #link("https://glasspass.co", "Glasspass") project, a marketplace for glass art in the US +- Picked up *React Native* to build the project from scratch, working with the US based backend team +- Rewrote backend from a *Javascript* monolith to using *Typescript*, Micro-Services and Graphql + +#work( + title: "Software Engineering Intern", + location: "Singapore", + company: link("https://engagerocket.co", "EngageRocket"), + dates: dates-helper(start-date: "Aug 2018", end-date: "Oct 2018") +) +- Engagerocket is a employee insights and engagement platform +- Used Ruby on Rails with Rails Engine to build the admin interface panel for the customer success team + +== Education + +#edu( + institution: "National University of Singapore", + location: "Singapore", + dates: dates-helper(start-date: "Aug 2022", end-date: "May 2026"), + degree: "Bachelor's of Science, Computer Science", + // consistent: true +) +- GPA: 4.29\/5.00 +- Relevant Coursework: Programming Language Concepts, Data Structures and Algorithms, Introduction to Operating Systems, Database Systems +- Coreteam member of NUS Hackers, an organisation committed to spreading the hacker culture in NUS +- Organised talks and conducted workshops under NUS Hackers + +== Projects + +#project( + name: "Homelab", + url: "https://github.com/yadunut/homelab", +) +- Custom NixOS ISOs, enabling brand‑new VMs to come online with secure global SSH access straight out of the box +- 3 node Kubernetes cluster managed via FluxCD + +== Skills +- *Programming Languages*: JavaScript, Typescript, Python, Java, Go, Ruby +- *Technologies*: React, React Native, Ruby on Rails, Docker, Kubernetes, FluxCD