Resume
This commit is contained in:
parent
e28a5f66bf
commit
ee1d847215
4 changed files with 2044 additions and 25 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -8,6 +8,9 @@
|
||||||
!euler/**
|
!euler/**
|
||||||
euler/target/
|
euler/target/
|
||||||
|
|
||||||
|
!resume/
|
||||||
|
!resume/**
|
||||||
|
|
||||||
!xiao-esp32c6/
|
!xiao-esp32c6/
|
||||||
!xiao-esp32c6/**
|
!xiao-esp32c6/**
|
||||||
xiao-esp32c6/.embuild/
|
xiao-esp32c6/.embuild/
|
||||||
|
|
|
||||||
115
flake.lock
generated
115
flake.lock
generated
|
|
@ -40,16 +40,17 @@
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
"git-hooks": "git-hooks",
|
"git-hooks": "git-hooks",
|
||||||
"nix": "nix",
|
"nix": "nix",
|
||||||
|
"nixd": "nixd",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1762889687,
|
"lastModified": 1771545453,
|
||||||
"narHash": "sha256-oKvHfeYDZ0LfuHSaFLA0w/dfZ9R6C5W8pCGUjUWawGI=",
|
"narHash": "sha256-8Zg8fqyXdmhRhiUzNpD96eZ1Htjkfeo6573HmKp15Gs=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "devenv",
|
"repo": "devenv",
|
||||||
"rev": "3b4fb549962342c928aae1bbea3a13f0eeed2703",
|
"rev": "1419489f71dbb1736142428e2e81e3911e79945f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -68,11 +69,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1760647834,
|
"lastModified": 1767865407,
|
||||||
"narHash": "sha256-cy80dgIs8uvush55hfV7a5ZHLOml/lDvsawayi5s/sc=",
|
"narHash": "sha256-QWF1rZYd+HvNzLIeRS+OEBX7HF0EhWCGeLbMkgtbsIo=",
|
||||||
"owner": "mirrexagon",
|
"owner": "mirrexagon",
|
||||||
"repo": "nixpkgs-esp-dev",
|
"repo": "nixpkgs-esp-dev",
|
||||||
"rev": "a9ee12a6c8235eb5a9d94934d3e79afac2103ffb",
|
"rev": "5287d6e1ca9e15ebd5113c41b9590c468e1e001b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -89,11 +90,11 @@
|
||||||
"rust-analyzer-src": "rust-analyzer-src"
|
"rust-analyzer-src": "rust-analyzer-src"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1763016383,
|
"lastModified": 1771485140,
|
||||||
"narHash": "sha256-eYmo7FNvm3q08iROzwIi8i9dWuUbJJl3uLR3OLnSmdI=",
|
"narHash": "sha256-oFJv+Zp5AjQ9yDWlisGSD5OK20iz7v+hfedEdRg2/Aw=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "fenix",
|
"repo": "fenix",
|
||||||
"rev": "0fad5c0e5c531358e7174cd666af4608f08bc3ba",
|
"rev": "f95b0cc3fffa5057e9d207afb98dda5178253380",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -155,6 +156,21 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-root": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1723604017,
|
||||||
|
"narHash": "sha256-rBtQ8gg+Dn4Sx/s+pvjdq3CB2wQNzx9XGFq/JVGCB6k=",
|
||||||
|
"owner": "srid",
|
||||||
|
"repo": "flake-root",
|
||||||
|
"rev": "b759a56851e10cb13f6b8e5698af7b59c44be26e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "srid",
|
||||||
|
"repo": "flake-root",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
|
|
@ -247,27 +263,54 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1761648602,
|
"lastModified": 1771532737,
|
||||||
"narHash": "sha256-H97KSB/luq/aGobKRuHahOvT1r7C03BgB6D5HBZsbN8=",
|
"narHash": "sha256-H26FQmOyvIGnedfAioparJQD8Oe+/byD6OpUpnI/hkE=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "nix",
|
"repo": "nix",
|
||||||
"rev": "3e5644da6830ef65f0a2f7ec22830c46285bfff6",
|
"rev": "7eb6c427c7a86fdc3ebf9e6cbf2a84e80e8974fd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"ref": "devenv-2.30.6",
|
"ref": "devenv-2.32",
|
||||||
"repo": "nix",
|
"repo": "nix",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixd": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": [
|
||||||
|
"devenv",
|
||||||
|
"flake-parts"
|
||||||
|
],
|
||||||
|
"flake-root": "flake-root",
|
||||||
|
"nixpkgs": [
|
||||||
|
"devenv",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"treefmt-nix": "treefmt-nix"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1763964548,
|
||||||
|
"narHash": "sha256-JTRoaEWvPsVIMFJWeS4G2isPo15wqXY/otsiHPN0zww=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixd",
|
||||||
|
"rev": "d4bf15e56540422e2acc7bc26b20b0a0934e3f5e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixd",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1762844143,
|
"lastModified": 1771369470,
|
||||||
"narHash": "sha256-SlybxLZ1/e4T2lb1czEtWVzDCVSTvk9WLwGhmxFmBxI=",
|
"narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "9da7f1cf7f8a6e2a7cb3001b048546c92a8258b4",
|
"rev": "0182a361324364ae3f436a63005877674cf45efb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -285,11 +328,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1761999567,
|
"lastModified": 1771493264,
|
||||||
"narHash": "sha256-NEisnXdISmaM5LzX1RatpKR4fa6nlAxkR7QJniFq0vg=",
|
"narHash": "sha256-M5hvivITtG0wnuCRsIXf8d6MYEs5bIF8eTY2TCNRZj4=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "nixpkgs-python",
|
"repo": "nixpkgs-python",
|
||||||
"rev": "100c43175443402084f557154b06f2745995e742",
|
"rev": "7d828f3a6acb63582c6a642e3b0ce0e2ecb03749",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -312,11 +355,11 @@
|
||||||
"rust-analyzer-src": {
|
"rust-analyzer-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1762860488,
|
"lastModified": 1771444642,
|
||||||
"narHash": "sha256-rMfWMCOo/pPefM2We0iMBLi2kLBAnYoB9thi4qS7uk4=",
|
"narHash": "sha256-ztRHVn93XOfYZNnGYyNadFdR8gp3Xi2JKDKwBzb0ApI=",
|
||||||
"owner": "rust-lang",
|
"owner": "rust-lang",
|
||||||
"repo": "rust-analyzer",
|
"repo": "rust-analyzer",
|
||||||
"rev": "2efc80078029894eec0699f62ec8d5c1a56af763",
|
"rev": "70f44024cc9d92c56df79832d81775cb99dc2e21",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -333,11 +376,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1763001554,
|
"lastModified": 1771470520,
|
||||||
"narHash": "sha256-wsfhRTuxu6f06RMmP4JWcq3wWRlmYtQaJZ6b3f+EJ94=",
|
"narHash": "sha256-PvytHcaYN5cPUll7FB70mXv1rRsIBRmu47fFfq3haxA=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "315d97eb753cee8e1aa039a5e622b84d32a454bb",
|
"rev": "a1d4cc1f264c45d3745af0d2ca5e59d460e58777",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -360,6 +403,28 @@
|
||||||
"repo": "default",
|
"repo": "default",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"devenv",
|
||||||
|
"nixd",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1734704479,
|
||||||
|
"narHash": "sha256-MMi74+WckoyEWBRcg/oaGRvXC9BVVxDZNRMpL+72wBI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "65712f5af67234dad91a5a4baee986a8b62dbf8f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|
|
||||||
1843
resume/resume.pdf
Normal file
1843
resume/resume.pdf
Normal file
File diff suppressed because it is too large
Load diff
108
resume/resume.typ
Normal file
108
resume/resume.typ
Normal file
|
|
@ -0,0 +1,108 @@
|
||||||
|
// Page setup
|
||||||
|
#set page(margin: (x: 0.7in, y: 0.55in))
|
||||||
|
#set text(font: "New Computer Modern", size: 10.5pt)
|
||||||
|
#set par(justify: true, leading: 0.42em, spacing: 0.42em)
|
||||||
|
#show link: set text(fill: rgb("#333333"))
|
||||||
|
#set list(indent: 0pt, body-indent: 0.4em, marker: [•], spacing: 5pt)
|
||||||
|
|
||||||
|
// Section header
|
||||||
|
#let section(title) = {
|
||||||
|
v(7pt)
|
||||||
|
text(size: 11pt, weight: "bold", smallcaps(title))
|
||||||
|
v(-2pt)
|
||||||
|
line(length: 100%, stroke: 0.4pt)
|
||||||
|
v(2pt)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unified entry: primary header + date, secondary header, then body
|
||||||
|
#let entry(primary, date, secondary, body) = {
|
||||||
|
grid(
|
||||||
|
columns: (1fr, auto),
|
||||||
|
text(weight: "bold", primary),
|
||||||
|
align(end, text(date)),
|
||||||
|
)
|
||||||
|
v(-1pt)
|
||||||
|
text(style: "italic", secondary)
|
||||||
|
linebreak()
|
||||||
|
body
|
||||||
|
}
|
||||||
|
|
||||||
|
// === HEADER ===
|
||||||
|
#align(center)[
|
||||||
|
#text(size: 14pt, weight: "bold")[Sicheng Pan] #h(6pt)
|
||||||
|
#text(size: 9.5pt)[
|
||||||
|
#link("mailto:sicheng0129@gmail.com")[sicheng0129\@gmail.com] #h(4pt) | #h(4pt)
|
||||||
|
+1 (510) 301-0622 #h(4pt) | #h(4pt)
|
||||||
|
#link("https://www.linkedin.com/in/sicheng-pan-0129/")[LinkedIn]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
|
// === EDUCATION ===
|
||||||
|
#section("Education")
|
||||||
|
|
||||||
|
#entry(
|
||||||
|
[University of California, Berkeley], [2023 -- 2024],
|
||||||
|
[M.S. in Electrical Engineering and Computer Sciences, GPA: 3.94/4.0],
|
||||||
|
[Thesis: _Extensible Rule Language for Query Optimizer_, advised by Alvin Cheung],
|
||||||
|
)
|
||||||
|
|
||||||
|
#v(5pt)
|
||||||
|
|
||||||
|
#entry(
|
||||||
|
[University of California, Berkeley], [2019 -- 2023],
|
||||||
|
[B.A. in Computer Science and Statistics, GPA: 4.0/4.0],
|
||||||
|
[Highest Distinction in General Scholarship · Honors in Computer Science],
|
||||||
|
)
|
||||||
|
|
||||||
|
// === EXPERIENCE ===
|
||||||
|
#section("Experience")
|
||||||
|
|
||||||
|
#entry(
|
||||||
|
[Chroma], [Aug 2024 -- Present],
|
||||||
|
[Member of Technical Staff, Data Plane],
|
||||||
|
)[
|
||||||
|
- Integrated 4-bit RaBitQ quantization into the SPANN index, reducing compaction time from 20 min to 2 min per 1M vectors (1536-dim) with 5× lower memory usage, enabling collections to scale from 5M to 50M with ~40ms query latency and >90% recall\@10.
|
||||||
|
- Designed and implemented a hybrid search API supporting composable KNN expressions (e.g., reciprocal rank fusion), sparse vector indexing (BM25, SPLADE) via Block-Max WAND, achieving sub-100ms latency at 1M scale. Shipped end-to-end across engine, API, Python/JS/Rust clients, and docs.
|
||||||
|
- Co-led rewrite of the distributed frontend from Python to Rust (tokio/axum), owning the read path (query plan serialization, executors). Throughput increased from 800 to 6,000+ RPS on 16 cores with latency spikes eliminated. Also shipped as the new Rust-based local client.
|
||||||
|
- Designed a serializable query plan and pushed query orchestration from the frontend to the query server, reducing network round trips from 3 to 1 per query and eliminating large intermediate data transfers.
|
||||||
|
- Implemented instant collection forking with copy-on-write semantics, enabling users to checkpoint datasets and share sample collections without incurring storage copy.
|
||||||
|
- Built regex query support via two-stage approach: extracting required literals from regex patterns to narrow candidates via the trigram index, then brute-force matching survivors, achieving sub-100ms latency at 1M scale.
|
||||||
|
- Implemented efficient limit/offset pagination, negation filters using roaring bitmaps, CMEK encryption (GCP), and group-by deduplication for chunked-document search results.
|
||||||
|
]
|
||||||
|
|
||||||
|
#v(5pt)
|
||||||
|
|
||||||
|
#entry(
|
||||||
|
[Duolingo], [Summer 2022],
|
||||||
|
[Software Engineer Intern, Data Infrastructure and Experimentation Team],
|
||||||
|
)[
|
||||||
|
- Implemented approximate query pipeline on BigQuery for the analytics dashboard, saving >50% query time at \<1% uncertainty.
|
||||||
|
- Implemented caching mechanism for common queries based on historical frequencies (AWS, Jenkins), saving >80% time for analysts.
|
||||||
|
]
|
||||||
|
|
||||||
|
#v(5pt)
|
||||||
|
|
||||||
|
#entry(
|
||||||
|
[R-Polars Project], [Summer 2023],
|
||||||
|
[Contributor, Google Summer of Code],
|
||||||
|
)[
|
||||||
|
- Exported Polars features to R including streaming I/O in Apache Parquet and Arrow formats.
|
||||||
|
- Refactored error handling with recoverable errors from Rust and implemented background query pipeline via multi-threading, saving >50% user wait time.
|
||||||
|
]
|
||||||
|
|
||||||
|
// === RESEARCH ===
|
||||||
|
#section("Research")
|
||||||
|
|
||||||
|
#entry(
|
||||||
|
[QED: A Powerful Query Equivalence Decider for SQL], [2021 -- 2024],
|
||||||
|
[UC Berkeley EECS, advised by Alvin Cheung · Published at VLDB 2024],
|
||||||
|
)[
|
||||||
|
- Co-developed QED, a SQL query equivalence prover in Rust using a novel formalism (Q-expressions) under bag semantics with a complete checking algorithm for a general query fragment parameterized by first-order theories.
|
||||||
|
- Verified 299/444 query rewrite pairs from Apache Calcite and 979/1287 from CockroachDB, more than 2× the coverage of prior state-of-the-art.
|
||||||
|
]
|
||||||
|
|
||||||
|
// === SKILLS ===
|
||||||
|
#v(4pt)
|
||||||
|
#line(length: 100%, stroke: 0.4pt)
|
||||||
|
*Languages:* Rust, Python, SQL, R, Nix \
|
||||||
|
*Tools & Infrastructure:* Linux, Git, gRPC/Protobuf, tokio, axum, AWS, GCP, Kubernetes, Docker
|
||||||
Loading…
Add table
Add a link
Reference in a new issue