From ee0dbb605e73071431a3ea4b7bbfa03a6c292542 Mon Sep 17 00:00:00 2001 From: Kumar Damani Date: Thu, 23 Jul 2026 00:51:56 -0400 Subject: Initial commit --- .envrc | 1 + .gitignore | 2 + .gitlab-ci.yml | 18 ++ README.md | 15 ++ cv.pdf | 550 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cv.typ | 126 +++++++++++++ flake.lock | 43 +++++ flake.nix | 27 +++ 8 files changed, 782 insertions(+) create mode 100644 .envrc create mode 100644 .gitignore create mode 100644 .gitlab-ci.yml create mode 100644 README.md create mode 100644 cv.pdf create mode 100644 cv.typ create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..33f41df --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.direnv +ci.json diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..18fbf42 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,18 @@ +--- +render: + stage: build + image: + name: ghcr.io/typst/typst:latest + entrypoint: [""] + rules: + - if: $CI_COMMIT_BRANCH == "main" + changes: + - "**/*.typ" + script: + - > + printf '{ "date": "%s", "link": "%s" }\n' + "$(date '+%B %d, %Y' | sed 's/ 0/ /')" "$CI_JOB_URL" > ci.json + - typst compile cv.typ + artifacts: + paths: + - cv.pdf diff --git a/README.md b/README.md new file mode 100644 index 0000000..44f3151 --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +My CV/Resume Repo with Typst. + +```sh +nix develop +typst compile cv.typ +``` + +Gitlab CI will automatically inject a `ci.json` file: +```json +{ + "date": "some date", + "link": "https://gitlab.com/.../job/42" +} +``` +used by the `compile` step for the final output. diff --git a/cv.pdf b/cv.pdf new file mode 100644 index 0000000..33da17e --- /dev/null +++ b/cv.pdf @@ -0,0 +1,550 @@ +%PDF-1.7 +% + +1 0 obj +<> +endobj +2 0 obj +<> +endobj +3 0 obj +<> +endobj +4 0 obj +<> +endobj +5 0 obj +<> +endobj +6 0 obj +<> +endobj +7 0 obj +<> +endobj +8 0 obj +<> +endobj +9 0 obj +<> +endobj +10 0 obj +<>/K[71 0 R]/ParentTree<>/ParentTreeNextKey 6>> +endobj +11 0 obj +[12 0 R 13 0 R 14 0 R 17 0 R 15 0 R 19 0 R 22 0 R 20 0 R 24 0 R 27 0 R 25 0 R 30 0 R 33 0 R 33 0 R 33 0 R 31 0 R 33 0 R 33 0 R 33 0 R 33 0 R 34 0 R 34 0 R 34 0 R 34 0 R 37 0 R 37 0 R 37 0 R 35 0 R 37 0 R 37 0 R 38 0 R 38 0 R 38 0 R 39 0 R 39 0 R 39 0 R 39 0 R 40 0 R 41 0 R 42 0 R 42 0 R 42 0 R 42 0 R 45 0 R 46 0 R 50 0 R 51 0 R 51 0 R 51 0 R 52 0 R 52 0 R 53 0 R 53 0 R 53 0 R 54 0 R 55 0 R 56 0 R 57 0 R 58 0 R 59 0 R 60 0 R 61 0 R 62 0 R 63 0 R 64 0 R 65 0 R 66 0 R 67 0 R 68 0 R 68 0 R 69 0 R 70 0 R 70 0 R 70 0 R] +endobj +12 0 obj +<> +endobj +13 0 obj +<> +endobj +14 0 obj +<> +endobj +15 0 obj +<>]/K[4]/Pg 94 0 R>> +endobj +16 0 obj +<>]>> +endobj +17 0 obj +<> +endobj +18 0 obj +<> +endobj +19 0 obj +<> +endobj +20 0 obj +<>]/K[7]/Pg 94 0 R>> +endobj +21 0 obj +<>]>> +endobj +22 0 obj +<> +endobj +23 0 obj +<> +endobj +24 0 obj +<> +endobj +25 0 obj +<>]/K[10]/Pg 94 0 R>> +endobj +26 0 obj +<>]>> +endobj +27 0 obj +<> +endobj +28 0 obj +<> +endobj +29 0 obj +<>]/K[18 0 R 23 0 R 28 0 R]>> +endobj +30 0 obj +<> +endobj +31 0 obj +<>]/K[15]/Pg 94 0 R>> +endobj +32 0 obj +<>]>> +endobj +33 0 obj +<> +endobj +34 0 obj +<> +endobj +35 0 obj +<>]/K[27]/Pg 94 0 R>> +endobj +36 0 obj +<>]>> +endobj +37 0 obj +<> +endobj +38 0 obj +<> +endobj +39 0 obj +<> +endobj +40 0 obj +<> +endobj +41 0 obj +<> +endobj +42 0 obj +<> +endobj +43 0 obj +<> +endobj +44 0 obj +<> +endobj +45 0 obj +<> +endobj +46 0 obj +<> +endobj +47 0 obj +<> +endobj +48 0 obj +<> +endobj +49 0 obj +<>]/K[44 0 R 48 0 R]>> +endobj +50 0 obj +<> +endobj +51 0 obj +<> +endobj +52 0 obj +<> +endobj +53 0 obj +<> +endobj +54 0 obj +<> +endobj +55 0 obj +<> +endobj +56 0 obj +<> +endobj +57 0 obj +<> +endobj +58 0 obj +<> +endobj +59 0 obj +<> +endobj +60 0 obj +<> +endobj +61 0 obj +<> +endobj +62 0 obj +<> +endobj +63 0 obj +<> +endobj +64 0 obj +<> +endobj +65 0 obj +<> +endobj +66 0 obj +<> +endobj +67 0 obj +<> +endobj +68 0 obj +<> +endobj +69 0 obj +<> +endobj +70 0 obj +<> +endobj +71 0 obj +<> +endobj +72 0 obj +<>/F 4/Contents(https://kumardamani.net)>> +endobj +73 0 obj +<>/F 4/StructParent 0/Contents(Email me@kumardamani.net)>> +endobj +74 0 obj +<>/F 4/StructParent 1/Contents(https://kumardamani.net)>> +endobj +75 0 obj +<>/F 4/StructParent 2/Contents(https://gitlab.com/users/kdam0/projects)>> +endobj +76 0 obj +<>/F 4/StructParent 3/Contents(https://github.com/akuity/rendered-manifest-pattern/tree/main)>> +endobj +77 0 obj +<>/F 4/StructParent 4/Contents(https://www.cs.cmu.edu/~dga/papers/ntm-tridentcom2010.pdf)>> +endobj +78 0 obj +[/ICCBased 102 0 R] +endobj +79 0 obj +[/ICCBased 103 0 R] +endobj +80 0 obj +[94 0 R/XYZ 72.85714 695.08136 0] +endobj +81 0 obj +[94 0 R/XYZ 72.85714 621.08435 0] +endobj +82 0 obj +[94 0 R/XYZ 72.85714 249.51538 0] +endobj +83 0 obj +[94 0 R/XYZ 72.85714 140.69238 0] +endobj +84 0 obj +[94 0 R/XYZ 315.3257 604.44135 0] +endobj +85 0 obj +[94 0 R/XYZ 315.3257 334.40234 0] +endobj +86 0 obj +[94 0 R/XYZ 315.3257 274.79333 0] +endobj +87 0 obj +<>/Font<>>> +endobj +88 0 obj +<> +endobj +89 0 obj +<>/FontDescriptor 90 0 R/DW 0/W[0 0 500 1 1 661 2 2 519 3 3 505.99997 4 4 457 5 5 316 6 6 447 7 7 250 8 8 322 9 9 531 10 10 264 11 11 515 12 12 465 13 13 220 14 15 465 16 16 310 17 17 504 18 18 372 19 19 542 20 20 390 21 21 288 22 22 351 23 23 790 24 24 271 25 25 236 26 26 493 27 27 500 28 28 557 29 29 538 30 30 685 31 31 702 32 32 428 33 33 747 34 34 646 35 35 839 36 36 596 37 37 220 38 38 528 39 39 338 40 40 297 41 42 298 43 43 424 44 44 512 45 45 540 46 46 497 47 47 701 48 48 560 49 49 702 50 50 695 51 51 490 52 52 485 53 53 465 54 54 588 55 55 550 56 56 503.00003 57 58 465 59 59 205 60 60 730 61 61 323 62 62 699 63 63 541 64 64 597 65 65 465 66 66 485 67 67 637 68 68 465 69 69 951 70 70 660 71 71 652 72 72 587 73 73 272 74 74 604 75 75 268]>> +endobj +90 0 obj +<> +endobj +91 0 obj +<> +endobj +92 0 obj +<>/FontDescriptor 93 0 R/DW 0/W[0 0 500 1 1 577 2 2 551 3 3 521 4 4 427 5 5 736 6 6 598 7 7 905 8 8 505.99997 9 9 428 10 10 250 11 11 734 12 12 616 13 13 322 14 14 654 15 15 456 16 16 367 17 17 391 18 18 489 19 19 988 20 20 613 21 21 561 22 22 244 23 23 358 24 24 325 25 25 542 26 26 316 27 27 514 28 28 817 29 29 619 30 30 652 31 31 899 32 32 581 33 33 614 34 34 609 35 35 561 36 36 729 37 37 716]>> +endobj +93 0 obj +<> +endobj +94 0 obj +<> +endobj +95 0 obj +<> +stream +x +>6 +endstream +endobj +96 0 obj +<> +stream +xmOo0C%*CTglDI8W{j@3c{}ȕ7i'i^,ĝꇮeRr)Iӕo>NN9Ky]jqn{;}ʭ=?QeIal;$M[tܘx]Im[>¹Ik*~7Mqo;e=3Rj&v]*'[D^'CwTY\,?of>R_K^SN"GMd7 .˲l꺮Umg3|(Q騪 DUZ( CdDTQirA3Qz@jPKGxB UF Ȳ +|e E>왓 +|mtYr ]3:,n"_y >LY0hO +|1Y_yvMZܰ``UQ3FX>@<;Y+MNtgN>CV*Vɀ=pfrCΊӰrKη + -0x- p7^O >- +*ł.+nW+ *%k ~c30Z/w}8OAږ +endstream +endobj +97 0 obj +<> +stream +xztT~␙p\9{AEAH"ˤ'3;wzK#gJ$@1("{RkeM}9|g<=F O NJФHxgKyF=`A c9|_y=|Np؉N`yzy+/ +N OL]^ig<1,a[܂İxxzmcSg^rb4GcǸF7}<<=<<$xAZ#D@B4/`OmKI!/ xuj/}N?b0ŧTUr Wx8.gIJIȸV:w8JJNnic'>fN,N(Ie?SJvuVLݾ;I}vXLPS.v8PYW[fGOBRd%8:-IvYW!k=|ά\m)L-4)Avq|`42w>x9kQF6Z%3\MAjZ]iUSHU*)(L +$w[@?:xXMscI>z&vN}6Oo)(%jKpWeVb F +y/KZQvoaX+tv# UTRJb*,6pe4IM5w"&̭^8{[vy<#eTJK&GW*J)Z$,ٴT8PgNzi` 8Y2iŅ'[Z;J;<#oaF?YTdY9MAΞfBe$479.*7#ǒ3%R#'f)Z"G!!2u!x>N"֒kHA'<6?2IY%٣$UED(t,BQ3£q́ot9=A5HO!ۄ+;8:Wh9}ɘGf3c>6>$\KNښO;׀M;}gêp_}0kSs Q7](r?h'p/zuEL\Pnf/")[#[\w5UZ"fvxg"jfE%E=BrO\6kB4 ʇiTʞQ sC!=W']HN֫jS &Wnw%?C.BJYR[\4ypxƿHzXwYuL'cy~Zp5%͜YيU# n[Z:G>[{Y$r 7UbmYExEye%o H`y2ܤE̸d;nՏ+kIe*V5-/ gKk-tKKU7d^\8Rd&:ʚҬDiIF +n%\J[ޠ.bɜ>Ewb=Qi ñs[7d-]K,]%b^*>`@u[XѠVIiu?c,$5}VWHyAVB \̪uii;Go,[yq7y9XKOB`AIyV T.nUr!ɸ>E~ C1mȺȇկ X4&WWQSQ]Z!%0{BLBCƻgoGBvjC)bA"i?_jmd +Y+9XWD~'JUfXM^l2[l5R^'s?[^0cWpZL$iWՙkzg)*L&A)Y4º"E@CzuwaK={JJS +cH\);d->}|*"kbIuWLBpahILU;f.c// +!]:>ޕR&Tam%R[YQ#mƯMWfuti1F2@bKsuy+NWZ Uy5|g/^K6'2ㄋV)I`Ja OݖV'T;"xZu346JH-d`2v q}0pIiSY5= o͸2q5$ʴ\*G&vZ$יrgV!E78fw_RMC&K]q]$\&ВY`RUTCXC; +w3ee2F2M>Pz?c̽SzImʼ/ae޺&kjE(rMHCvaD]ƼuCUMvw-B7H˳3 +y |6ZFh< 0VS,7Y8,Bf&PT`6zYL0ȸ}jEL惣o\"`X¤Y3H+eX\˚'bz>f3i?$,L?<(* + s*) OÔMB#=P?"k OÙ֢^ʒ$**_PH3BAIB[:b)]ˁAERQ] +[tݬ0mH x_JZk7YpOFSY.5񹋗FN>^uuُ7{fiSXV|[hAo.YK._8y!Z3zv* +( +RMJ[=ykiA%Vޟ&[^>n芊aX^q&f ZC7&@SaJDg;˂EX/:j2z]E(5NR(BM:gBTѦ"uQK5&?-Fm80(,H2w'Q DzfGx6e@,g&y.p۟8u3s+,gWRI~^Vq%dt"jmĈ/ +yaځP$$l+ * _c(,ŰS%3Cbѽgشx|fIm"fzruS]6M>3YСtBdԚMQ P0HbLF +-Mw.z~Q,#$\2kG +FPB+1Jp F@nqک kb*([ɂ [ +U*-QB%TɠP.^@#P:Ptu NSnl&R1Thp8C𸔤%~`wFO~Zbяf|O-j9%+7^$m7oM\Q/{d}}8%ݠrh۱.6L=׹#CEbSp8GxgV|Putsjfܷ72I~^px2l+H.AjvP: +""̘^ Oӂ A["# vk!0%PqtPEy +ùÂn[FL~;@j*67GL"Eh*ځۂO4<ÀAp7vgL `FA`eGESa8r}qTC`"XJ3ҒcovOݾ1/ߚz0c+o뮭#Z:{_ +K9d_mqӵIhj> +>~w$i9FCcTTT0s(kj!L +9MRMsj8rue o +L6e9问=h;j*evh3_L0PZ4vU]C4pzb-b77*ʄ kH\Y1|u01|:MdOw=fpi6RtDmbkom2'y]5e/6}!<{W-/!B/՝vqhJ 6o#@#I2nqg/&3+vD GT١Aw@g0A]頿+FWꋱwW,QIj8Sٱkh5 +ЇlgxƬFU,u@mF`̡sQ\5\)@=A-@9Y)\3 ے˕$ff<߁ = ǡMv^~|Xn+#\q.]JU(MܒAf^ GOjRDbmy:H$2IYR";1J S~{UgǗg]`ɧױa7sb˺y/e^=<u|:Bdž&%Yd\$JI"({9y4^7I+*8zJD%©8m"y"=̏4n 7[c{$B؉8->9s-|Q{閦{0=bݣn֘k7[*yffh u8z=XkhlnA,D.ᗧ96 &Gha鯸%"?| MUR8| +mv}r`JhhM49^IF=HeꛠB󠣄5U+.VAI\~&:ΣKFP rrIh'/”}-!vSCv) +h6Z,%&f)a; + NFnnFvUT)bNz2b0iR\hRI*Oiü>j\K$ Q;\cѥJJ$)?V\,R؀f=[3`!,a^MDI#vЩu B +wge]V#PiN9^`Vg;N͠j'MG*PbX{I7xnQ&uVu:qfKlh-Гq9 MvҁܪlQf%^F/{ Sӌ>zB$y2Ehf»^qgG}^.JL^]Y,K@E\L +QNG`Vtzhȴ* + z8E^eu-L@;lCD(Sr ߾;{bn6{?;) +`d0N5Z\of5BOk,GoIe1_X~@F3)G yvPat&䦴%Yn0J-h7 +I;.W K ֹw.|k[mQH:#eV;mq$Yؓ :ViWnXt6JE75uYA]f&1/~ʮ9?&xȉڙ_n۾n 𑌃 +q(%,$\,JNve7]M5gaսVPnbusٳqn_m?W#k +(iz^kЛswa%hx[Z5ZF.ȎTE(e6THpʊnr]!T'02R&/zT< •rB^O0Tj f?m& +endstream +endobj +98 0 obj +<> +stream +x? +endstream +endobj +99 0 obj +<> +stream +xmMo0HvB"T8C=x`#'ǁ_Cz<3y,;~?کx]۶6+f}Kx|ݛz poˤ k`{P> caY^ ff3C,Ia3:o;DE}[xSmt; "]W'sŇ0r7bdDDa4s="o6g݆> +stream +xXy|uO(IA:L-3:SVYeQQQK.@Mwik2MNr +TV\W/]WU_)/G&3=yP0u@(I)qIъXS&_W@O0&ӭ?gP3|P }x }G(K_^._!KNI_٢[4EOnS,%pUjJT|R`@(.ה!FuzZL="|B@ jg2qMx{{8'(x]7%pJ~cEψI^cO5='|}m>tA4ǐ'f\/u梙Y3 !i MC|Аi*oe o4++C4!3佂 ppO4Q A{`@ \,1yj!!nxbUVI\iZhTcXV&Cb7H5:بAxD4^@O@b!YoFre?FlZm%5j<#@@Noy񄫳-0FK7ƅF} F"=eJqG.gJgCuK?Wg|>f;qcޥKii} l{rL[q6szKϧmy)L|KX^&+ji$+*۔jrC,:]-t2ɹV*28BE7GF5eadRHδ䱙zL +/? x/K> ]?]߳nߠIm[KҔ8˕PH+4ޜ8vq#\S MUZ{5Ց؄8 uApENN<}1,bd7H5ڵ'!g7ħ`縗Yl'K{5xL- +}M*GL_鬚M_Eܶ /!FƤ4tRx1f`%Ul.9dRD %yv|Nc˛9ɜf"9t,/4ۍ.a9)*Tz/CH -l6YFҷ2hdIfnZf@c2KFG$,Բ.:Z|r7+c?dɼ% SdCKdWe[rV44M$~ͳeQ +欵FYmb:gVm,1nhÍ5HUcBJhNn~G` +LYx ǨN?`,;FFj3 hQ԰uũuU56i4;"QJyμ=sbVŭ vE~fK]+JHII͝ՌͬPE% +} *%i0UXq0yeyTcC.)2Jn/t&sdQ{wf7ji’/2[saAcRXgM}vEfz /ij-.YlK=|ϔD"VȢ綼S;:y8Bia,w $D~=zkQtHv1RBuA0`eCFOUx!H&0fPVTK5ܞ2ZYXAT?ОmrF!Gp] ɷ!T$^'Fҗ5n=~@! +Ư ߑ#SYm$kle|eks4MG#̋w]FLpRVsYDw&.ך= xd}p _G7g}@4`O(RĈ*3vSH bItZUSnU3XielYVC $LyR!;Zv JUh>h`ƙQk2,d iw()9\ 414~|qBlT,'LمTJZIcm`.1H_N,;IK5qPlt2 e +$ޒ{L"3vޖb{ +mh4I6QSܞίRcSXΡ|*yi 󭹴"{y!˱bgt6v-)uhuOjr?0@2/(?tG9iɶ8 +HDhʵr&6ktTHLU43eGZCL XI)ˣ  I[bneLU[0~#uLDvR1Q,QZe;C.B؊4F4ۄfћ+ b64B[=&x9>}ȅ4|0"T-}A0c%^@{˖cw)Ui@Lp"Bt]{kgPh84oYe; &b"j+ گcb䟱3f9Xx0Ir/O6~ǡr0uvvUw=I+˘ +Z}l/,n+tEFчjv2?pԞŝN&f,- w;{nrK +)%zoH"4<zzfL55uh1XWbem%V^c:E-(|K~?'XݜU7kjjNMծlc^[#!dB#ʷi픽Zhe׉biVA:/a-|%w`$R[C׿GT#ïRq;QVll0T + d Pb7d]cgI53-dN>PA{&ͯߜCPv_,PP9d$}8n߲*ΜEٳJsic>;} 5BIW)=GILh껠KOx^ה߭bf ïzt_ 4!#MЀ0ݎۆ2Rr"H4CO@=g"![<')s kCl:t۳T85˒P c6vmg+6k&nPDI6^WO fWwӟZmE7{`aRc͞ŝFf]G(tb +f=f1Λ:~QX`L?:J]zvk["J50WnћٿE$徜Xmq̵7 n=`jƤFsSmY7ކGm. +pz8>UTT^5i.<@mOΎ]&v-[#9KuED\z- ~t(б1w5*5t*AB'{|wlNlBOE }9Q>p fcUOնFWuvQbW@3)%!tyVP/_MŒ SJ|E=NRzRg^7~V7*m v/TO-/ +endstream +endobj +101 0 obj +<> +stream +x\Y~ׯ˖whAq'$kHJJfARĩxJߧH3)'sF7m}ѣǛx7O6?fٛ{so?~j` eLwAwrx _{v3nVJ 7on?nk)RVW>O3~UWx\ʡo~+Z"Xnjn)5Q)1Hbv2N4d_& f`/wnPJh׽dNJW \=9~ Y@ +F{//~xy?d`0ڇK/dP5f1/WFqoAk [L00FJ3)/a[7 3qsRch6?bT8eԉI=~Z҉6}4,!Vƒyryj@.œځ$'i0B؟^O(A wZP/Ydގ Z8y"L,`éJXoSᴌ+ûP\(nI5 S6*֗NDmK_2[F^Y Qu2z`$QKyIu$sc%2J8gh$B}9V '"p@Iح"RN"'\Pj!)dR e8v(%-~0r 3pNnNYn=FJDdnk'|5 I#>%tnFaWWy@1F-n^b1 +zP|4/Œts2KLݜ $D_a[lJ-t%]K*k^Y3 d6|eb*2IŸR4/ۯ gIv RծYZnf;f*a10,RD-{Y|tc.e01wؚ7MwJa\w|yDc×,bEB{ V ܟ*,\]O%~`x (6% }-'ڳ*5"䛑 8p}hozx()A 򑻟KJ c;~^+LbPFDR-8m?$u(xyd[^k0;%K$2 + {qB[e#35euԕۭYe$؊-[5MXΫYYh%@RJ2CV!5ʋybTݠZ&qѸI =EC^sv$rL!x a{M;{&- W;&l,*0ʚ(˩q2qm`:tH =Cmۧ1m{]N)#(G":L ACPOI7:U{.8ˈiq0sۈk6/#S-+1NEXٓa&pZ"p*hdX>M+wuۨEe426IuDв|uYׅCͲzwBg7C:ڤVAM1Tf@czP"pus ~ù5"D6x**#8rkWK "nwa&VZRps{JP?> +stream +xuJPFOUvDD@`]\ +FMkIRB|&إnऋ(HrTų9` ըa&ʺ:l +3Ŭ*ުnh)&C|>b纝黓AvCƫ+ y') +̵8+/> +stream +x}Kq?UX 94%MQKSN#ԦQvBˡhFk ! +ՠZP~xx^ޗQx"^P c!H0 + 0l+ߣy7;׫;Q?V._tF3LEK)y z80eIPkT/%[p:8+%d"G `d_{ٹ֖gzm\8rSif1\CU` S] @o _ +endstream +endobj +104 0 obj +<> +endobj +105 0 obj +<> +stream + Kumar Damani Typst 0.15.1en1980-01-01T00:00:00+00:001980-01-01T00:00:00+00:001application/pdfEtxdy/zV4vcXzt2wi1DsAA==Etxdy/zV4vcXzt2wi1DsAA==proof1.7 +endstream +endobj +106 0 obj +<>/ViewerPreferences<>/Outlines 9 0 R>> +endobj +xref +0 107 +0000000000 65535 f +0000000016 00000 n +0000000068 00000 n +0000000142 00000 n +0000000227 00000 n +0000000313 00000 n +0000000398 00000 n +0000000497 00000 n +0000000579 00000 n +0000000653 00000 n +0000000718 00000 n +0000000929 00000 n +0000001465 00000 n +0000001534 00000 n +0000001614 00000 n +0000001681 00000 n +0000001795 00000 n +0000001893 00000 n +0000001969 00000 n +0000002037 00000 n +0000002104 00000 n +0000002218 00000 n +0000002316 00000 n +0000002392 00000 n +0000002460 00000 n +0000002527 00000 n +0000002642 00000 n +0000002740 00000 n +0000002816 00000 n +0000002884 00000 n +0000002994 00000 n +0000003075 00000 n +0000003190 00000 n +0000003288 00000 n +0000003379 00000 n +0000003454 00000 n +0000003569 00000 n +0000003667 00000 n +0000003752 00000 n +0000003824 00000 n +0000003899 00000 n +0000003981 00000 n +0000004049 00000 n +0000004124 00000 n +0000004188 00000 n +0000004256 00000 n +0000004324 00000 n +0000004390 00000 n +0000004454 00000 n +0000004522 00000 n +0000004625 00000 n +0000004706 00000 n +0000004778 00000 n +0000004847 00000 n +0000004919 00000 n +0000005014 00000 n +0000005080 00000 n +0000005146 00000 n +0000005212 00000 n +0000005278 00000 n +0000005344 00000 n +0000005410 00000 n +0000005476 00000 n +0000005542 00000 n +0000005608 00000 n +0000005674 00000 n +0000005740 00000 n +0000005806 00000 n +0000005884 00000 n +0000005953 00000 n +0000006034 00000 n +0000006106 00000 n +0000006390 00000 n +0000006582 00000 n +0000006795 00000 n +0000007004 00000 n +0000007244 00000 n +0000007529 00000 n +0000007807 00000 n +0000007843 00000 n +0000007879 00000 n +0000007929 00000 n +0000007979 00000 n +0000008029 00000 n +0000008079 00000 n +0000008129 00000 n +0000008179 00000 n +0000008229 00000 n +0000008347 00000 n +0000008504 00000 n +0000009414 00000 n +0000009629 00000 n +0000009783 00000 n +0000010334 00000 n +0000010546 00000 n +0000010719 00000 n +0000010800 00000 n +0000011563 00000 n +0000019932 00000 n +0000020013 00000 n +0000020615 00000 n +0000025119 00000 n +0000028812 00000 n +0000029155 00000 n +0000029562 00000 n +0000029687 00000 n +0000030853 00000 n +trailer +<> +startxref +31039 +%%EOF \ No newline at end of file diff --git a/cv.typ b/cv.typ new file mode 100644 index 0000000..7d200c8 --- /dev/null +++ b/cv.typ @@ -0,0 +1,126 @@ +#set page(paper: "us-letter", columns: 2) + +#set document(title: [ + Kumar Damani +]) + +#let results = json("ci.json") + +#set page( + header: align(right + horizon)[ + #set par(leading: 0.4em) + Updated #results.date \ + #link(results.link)[Logs] for nerds! + ], +) + + +#show link: set text(fill: blue, weight: 700) +#show link: underline + +#place( + top + center, + float: true, + scope: "parent", + clearance: 2em, +)[ + #title() +] + += Basic Info + +- email: #link("mailto:me@kumardamani.net") +- blog: #link("https://kumardamani.net")[kumardamani.net] +- git: #link("https://gitlab.com/users/kdam0/projects")[gitlab.com/kdam0] + += Highlights + +Established GitOps as a means of auditable, reproducible, +transparent changes by implementing the +#link("https://github.com/akuity/rendered-manifest-pattern/tree/main")[rendered manifests] +pattern with change management for compliant deployments for our Constellation +Management software. + +Led enterprise-wide adoption of Infrastructure as Code (IaC), +standardizing deployment workflows and infrastructure management across +on-prem, and hybrid environments. + +Developed and maintained a critical internal-tool +responsible for lab inventory management, configuration, +resource allocation (aka. the +#link("https://www.cs.cmu.edu/~dga/papers/ntm-tridentcom2010.pdf")[Testbed Mapping Problem]) +to facilitate hardware test automation. + +Implemented a self-service infrastructure model that +significantly improved development, and QA experience in a +microservice architecture. + +Supported multi-region, high-volume production systems handling 1B+ +requests per day requiring sub-30ms latency, while delivering +reliable, robust deployments. + + += Instituions + +- 2019 | Hon. Bach. of Science in Computer Science + w/ focus in Natural Language Processing. + University of Toronto, + Toronto, Canada + +- 2021 | ITIL 4 Foundation + Axelos + += Experience + +2020-Now +Platform Lead +Kepler Communications +Toronto, Canada +Industry: Space Internet Communications + +2019-2020 DevOps Engineer +Illumin (formerly AcuityAds) +Toronto, Canada +Industry: Ad Tech + +2016-2017 Full Stack Engineer +Achiga (formerly WebCanada) +Toronto, Canada +Industry: Web Development + += Languages & Technologies + +Programming: Python, TypeScript, Go + +IaC: Nix, Ansible, Terraform + +CI/CD: ArgoCD, Gitlab CI, Github + +Containers: Kubernetes, Docker Compose, LXC + +Cloud: AWS, Vultr, DigitalOcean + +VMs: Proxmox, Vagrant, Openstack + +Monitoring: Grafana, Prometheus, InfluxDB + +Logs: VictoriaLogs, ELK, Loki + +Web Dev: FastAPI + React, Django, PHP Zend + +Mobile: React-Native, Expo + +Networking: Arista, Mikrotik, OpenWRT + +Security: HashiCorp Vault, Infisical + += Hobbies + +Dad, home-labbing, Nix, blogging, +distro-hopping, nba, photography, memes. + += References + +Email me with your interests in me and I’ll refer you to +someone who can vouch for me or defame me, depending +on what you want. diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..686bd4a --- /dev/null +++ b/flake.lock @@ -0,0 +1,43 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1784497964, + "narHash": "sha256-vlHUuqAcbcH2RKmHbPiuQzbv1pnzzavXnI62RD0bqCU=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs", + "systems": "systems" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..057056a --- /dev/null +++ b/flake.nix @@ -0,0 +1,27 @@ +{ + description = "A basic Typst project."; + + inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + inputs.systems.url = "github:nix-systems/default"; + + outputs = { systems, nixpkgs, ... }: + let + eachSystem = nixpkgs.lib.genAttrs (import systems); + in + { + devShells = eachSystem (system: + let + pkgs = nixpkgs.legacyPackages.${system}; + in + { + default = pkgs.mkShell { + packages = with pkgs; [ + typst + ]; + shellHook = '' + echo "Welcome to the shell!" + ''; + }; + }); + }; +} -- cgit v1.2.3