Compare commits
3 commits
7132c0648d
...
ee1d847215
| Author | SHA1 | Date | |
|---|---|---|---|
| ee1d847215 | |||
| e28a5f66bf | |||
| 32c499da0a |
9 changed files with 2124 additions and 166 deletions
11
.gitignore
vendored
11
.gitignore
vendored
|
|
@ -4,7 +4,14 @@
|
|||
!flake.nix
|
||||
!flake.lock
|
||||
|
||||
!euler/
|
||||
!euler/**
|
||||
euler/target/
|
||||
|
||||
!resume/
|
||||
!resume/**
|
||||
|
||||
!xiao-esp32c6/
|
||||
!xiao-esp32c6/**
|
||||
xiao-esp32c6/.embuild
|
||||
xiao-esp32c6/target
|
||||
xiao-esp32c6/.embuild/
|
||||
xiao-esp32c6/target/
|
||||
|
|
|
|||
7
euler/Cargo.lock
generated
Normal file
7
euler/Cargo.lock
generated
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 4
|
||||
|
||||
[[package]]
|
||||
name = "euler"
|
||||
version = "0.1.0"
|
||||
6
euler/Cargo.toml
Normal file
6
euler/Cargo.toml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
[package]
|
||||
name = "euler"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
1
euler/src/lib.rs
Normal file
1
euler/src/lib.rs
Normal file
|
|
@ -0,0 +1 @@
|
|||
|
||||
1
euler/src/main.rs
Normal file
1
euler/src/main.rs
Normal file
|
|
@ -0,0 +1 @@
|
|||
fn main() {}
|
||||
279
flake.lock
generated
279
flake.lock
generated
|
|
@ -6,7 +6,8 @@
|
|||
"devenv"
|
||||
],
|
||||
"flake-compat": [
|
||||
"devenv"
|
||||
"devenv",
|
||||
"flake-compat"
|
||||
],
|
||||
"git-hooks": [
|
||||
"devenv",
|
||||
|
|
@ -18,11 +19,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752264895,
|
||||
"narHash": "sha256-1zBPE/PNAkPNUsOWFET4J0cjlvziH8DOekesDmjND+w=",
|
||||
"lastModified": 1760971495,
|
||||
"narHash": "sha256-IwnNtbNVrlZIHh7h4Wz6VP0Furxg9Hh0ycighvL5cZc=",
|
||||
"owner": "cachix",
|
||||
"repo": "cachix",
|
||||
"rev": "47053aef762f452e816e44eb9a23fbc3827b241a",
|
||||
"rev": "c5bfd933d1033672f51a863c47303fc0e093c2d2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -39,14 +40,17 @@
|
|||
"flake-parts": "flake-parts",
|
||||
"git-hooks": "git-hooks",
|
||||
"nix": "nix",
|
||||
"nixpkgs": "nixpkgs"
|
||||
"nixd": "nixd",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758578119,
|
||||
"narHash": "sha256-gQ4tWrxpG43cCTEnFqbdcKOB00l4s7VsRIJAxpRgSE0=",
|
||||
"lastModified": 1771545453,
|
||||
"narHash": "sha256-8Zg8fqyXdmhRhiUzNpD96eZ1Htjkfeo6573HmKp15Gs=",
|
||||
"owner": "cachix",
|
||||
"repo": "devenv",
|
||||
"rev": "56782ef9e6fec7fc5cbbbd88f04ce114faac2e35",
|
||||
"rev": "1419489f71dbb1736142428e2e81e3911e79945f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -57,15 +61,19 @@
|
|||
},
|
||||
"espkgs": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
"flake-utils": [
|
||||
"flake-utils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758247379,
|
||||
"narHash": "sha256-u7LOGpRhY1MmelsdLF5BlZRtuwYD5GBfQzVOdNojhz8=",
|
||||
"lastModified": 1767865407,
|
||||
"narHash": "sha256-QWF1rZYd+HvNzLIeRS+OEBX7HF0EhWCGeLbMkgtbsIo=",
|
||||
"owner": "mirrexagon",
|
||||
"repo": "nixpkgs-esp-dev",
|
||||
"rev": "f087ab9ecf5177d5bcf773b0c7467fa91b33dae7",
|
||||
"rev": "5287d6e1ca9e15ebd5113c41b9590c468e1e001b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -76,15 +84,17 @@
|
|||
},
|
||||
"fenix": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"rust-analyzer-src": "rust-analyzer-src"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758695884,
|
||||
"narHash": "sha256-rnHjtBRkcwRkrUZxg0RqN1qWTG+QC/gj4vn9uzEkBww=",
|
||||
"lastModified": 1771485140,
|
||||
"narHash": "sha256-oFJv+Zp5AjQ9yDWlisGSD5OK20iz7v+hfedEdRg2/Aw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"rev": "9cdb79384d02234fb2868eba6c7d390253ef6f83",
|
||||
"rev": "f95b0cc3fffa5057e9d207afb98dda5178253380",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -96,11 +106,11 @@
|
|||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"lastModified": 1761588595,
|
||||
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -133,11 +143,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1756770412,
|
||||
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
|
||||
"lastModified": 1760948891,
|
||||
"narHash": "sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "4524271976b625a4a605beefd893f270620fd751",
|
||||
"rev": "864599284fc7c0ba6357ed89ed5e2cd5040f0c04",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -146,6 +156,21 @@
|
|||
"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": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
|
|
@ -164,24 +189,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"git-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
|
|
@ -195,11 +202,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758108966,
|
||||
"narHash": "sha256-ytw7ROXaWZ7OfwHrQ9xvjpUWeGVm86pwnEd1QhzawIo=",
|
||||
"lastModified": 1760663237,
|
||||
"narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "54df955a695a84cd47d4a43e08e1feaf90b1fd9b",
|
||||
"rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -256,47 +263,76 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1755029779,
|
||||
"narHash": "sha256-3+GHIYGg4U9XKUN4rg473frIVNn8YD06bjwxKS1IPrU=",
|
||||
"lastModified": 1771532737,
|
||||
"narHash": "sha256-H26FQmOyvIGnedfAioparJQD8Oe+/byD6OpUpnI/hkE=",
|
||||
"owner": "cachix",
|
||||
"repo": "nix",
|
||||
"rev": "b0972b0eee6726081d10b1199f54de6d2917f861",
|
||||
"rev": "7eb6c427c7a86fdc3ebf9e6cbf2a84e80e8974fd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"ref": "devenv-2.30.4",
|
||||
"ref": "devenv-2.32",
|
||||
"repo": "nix",
|
||||
"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": {
|
||||
"locked": {
|
||||
"lastModified": 1755783167,
|
||||
"narHash": "sha256-gj7qvMNz7YvhjYxNq4I370cAYIZEw2PbVs5BSwaLrD4=",
|
||||
"owner": "cachix",
|
||||
"repo": "devenv-nixpkgs",
|
||||
"rev": "4a880fb247d24fbca57269af672e8f78935b0328",
|
||||
"lastModified": 1771369470,
|
||||
"narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "0182a361324364ae3f436a63005877674cf45efb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"ref": "rolling",
|
||||
"repo": "devenv-nixpkgs",
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-python": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"nixpkgs": "nixpkgs_5"
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1755249745,
|
||||
"narHash": "sha256-lDIbUfJ8xK62ekG+qojTlA1raHpKdScBTx8IFlQYx9U=",
|
||||
"lastModified": 1771493264,
|
||||
"narHash": "sha256-M5hvivITtG0wnuCRsIXf8d6MYEs5bIF8eTY2TCNRZj4=",
|
||||
"owner": "cachix",
|
||||
"repo": "nixpkgs-python",
|
||||
"rev": "b6632af2db9f47c79dac8f4466388c7b1b6c3071",
|
||||
"rev": "7d828f3a6acb63582c6a642e3b0ce0e2ecb03749",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -305,93 +341,13 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1758070117,
|
||||
"narHash": "sha256-uLwwHFCZnT1c3N3biVe/0hCkag2GSrf9+M56+Okf+WY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e9b7f2ff62b35f711568b1f0866243c7c302028d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1758427187,
|
||||
"narHash": "sha256-pHpxZ/IyCwoTQPtFIAG2QaxuSm8jWzrzBGjwQZIttJc=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "554be6495561ff07b6c724047bdd7e0716aa7b46",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1758427187,
|
||||
"narHash": "sha256-pHpxZ/IyCwoTQPtFIAG2QaxuSm8jWzrzBGjwQZIttJc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "554be6495561ff07b6c724047bdd7e0716aa7b46",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1753345091,
|
||||
"narHash": "sha256-CdX2Rtvp5I8HGu9swBmYuq+ILwRxpXdJwlpg8jvN4tU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "3ff0e34b1383648053bba8ed03f201d3466f90c9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1744536153,
|
||||
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"devenv": "devenv",
|
||||
"espkgs": "espkgs",
|
||||
"fenix": "fenix",
|
||||
"flake-utils": "flake-utils_2",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-python": "nixpkgs-python",
|
||||
"rust-overlay": "rust-overlay"
|
||||
}
|
||||
|
|
@ -399,11 +355,11 @@
|
|||
"rust-analyzer-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1758620797,
|
||||
"narHash": "sha256-Ly4rHgrixFMBnkbMursVt74mxnntnE6yVdF5QellJ+A=",
|
||||
"lastModified": 1771444642,
|
||||
"narHash": "sha256-ztRHVn93XOfYZNnGYyNadFdR8gp3Xi2JKDKwBzb0ApI=",
|
||||
"owner": "rust-lang",
|
||||
"repo": "rust-analyzer",
|
||||
"rev": "905641f3520230ad6ef421bcf5da9c6b49f2479b",
|
||||
"rev": "70f44024cc9d92c56df79832d81775cb99dc2e21",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -415,14 +371,16 @@
|
|||
},
|
||||
"rust-overlay": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_6"
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758681214,
|
||||
"narHash": "sha256-8cW731vev6kfr58cILO2ZsjHwaPhm88dQ8Q6nTSjP9I=",
|
||||
"lastModified": 1771470520,
|
||||
"narHash": "sha256-PvytHcaYN5cPUll7FB70mXv1rRsIBRmu47fFfq3haxA=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "b12ed88d8d33d4f3cbc842bf29fad93bb1437299",
|
||||
"rev": "a1d4cc1f264c45d3745af0d2ca5e59d460e58777",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -446,18 +404,25 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"devenv",
|
||||
"nixd",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"lastModified": 1734704479,
|
||||
"narHash": "sha256-MMi74+WckoyEWBRcg/oaGRvXC9BVVxDZNRMpL+72wBI=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "65712f5af67234dad91a5a4baee986a8b62dbf8f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
34
flake.nix
34
flake.nix
|
|
@ -1,12 +1,30 @@
|
|||
{
|
||||
inputs = {
|
||||
devenv.url = "github:cachix/devenv";
|
||||
espkgs.url = "github:mirrexagon/nixpkgs-esp-dev";
|
||||
fenix.url = "github:nix-community/fenix";
|
||||
devenv = {
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
url = "github:cachix/devenv";
|
||||
};
|
||||
espkgs = {
|
||||
inputs = {
|
||||
flake-utils.follows = "flake-utils";
|
||||
nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
url = "github:mirrexagon/nixpkgs-esp-dev";
|
||||
};
|
||||
fenix = {
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
url = "github:nix-community/fenix";
|
||||
};
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
nixpkgs-python.url = "github:cachix/nixpkgs-python";
|
||||
rust-overlay.url = "github:oxalica/rust-overlay";
|
||||
nixpkgs-python = {
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
url = "github:cachix/nixpkgs-python";
|
||||
};
|
||||
rust-overlay = {
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
url = "github:oxalica/rust-overlay";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = inputs @ {
|
||||
|
|
@ -21,8 +39,10 @@
|
|||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
overlays = [
|
||||
(_: _: espkgs.packages.${system})
|
||||
];
|
||||
};
|
||||
espPkgs = espkgs.packages.${system};
|
||||
in {
|
||||
packages = {
|
||||
devenv-up = self.devShells.${system}.default.config.procfileScript;
|
||||
|
|
@ -60,7 +80,7 @@
|
|||
};
|
||||
packages = with pkgs; [
|
||||
espflash
|
||||
espPkgs.esp-idf-full
|
||||
# esp-idf-full
|
||||
ldproxy
|
||||
opencode
|
||||
sops
|
||||
|
|
|
|||
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