The code and data behind xeiaso.net
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

update resume

Signed-off-by: Xe Iaso <me@xeiaso.net>

Xe Iaso ea4b14d9 02b51353

+44 -9
+1
dhall/resume/icons/tiktok.svg
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" class="icon icon-tabler icons-tabler-filled icon-tabler-brand-tiktok"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M16.083 2h-4.083a1 1 0 0 0 -1 1v11.5a1.5 1.5 0 1 1 -2.519 -1.1l.12 -.1a1 1 0 0 0 .399 -.8v-4.326a1 1 0 0 0 -1.23 -.974a7.5 7.5 0 0 0 1.73 14.8l.243 -.005a7.5 7.5 0 0 0 7.257 -7.495v-2.7l.311 .153c1.122 .53 2.333 .868 3.59 .993a1 1 0 0 0 1.099 -.996v-4.033a1 1 0 0 0 -.834 -.986a5.005 5.005 0 0 1 -4.097 -4.096a1 1 0 0 0 -.986 -.835z" /></svg>
+1
dhall/resume/icons/x.svg
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" class="icon icon-tabler icons-tabler-filled icon-tabler-brand-x"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M8.267 3a1 1 0 0 1 .73 .317l.076 .092l4.274 5.828l5.946 -5.944a1 1 0 0 1 1.497 1.32l-.083 .094l-6.163 6.162l6.262 8.54a1 1 0 0 1 -.697 1.585l-.109 .006h-4.267a1 1 0 0 1 -.73 -.317l-.076 -.092l-4.276 -5.829l-5.944 5.945a1 1 0 0 1 -1.497 -1.32l.083 -.094l6.161 -6.163l-6.26 -8.539a1 1 0 0 1 .697 -1.585l.109 -.006h4.267z" /></svg>
+13 -9
dhall/resume/resume.typ
··· 4 4 line(length: 100%, stroke: 1pt + primary_colour) 5 5 } 6 6 7 + #let smallColoredLine() = { 8 + line(length: 100%, stroke: 0.5pt + primary_colour) 9 + } 10 + 7 11 #let sigil() = { 8 12 align(center + horizon)[#box( 9 13 height: 24pt, ··· 114 118 links: ( 115 119 (name: "email", link: "mailto:me@xeiaso.net"), 116 120 (name: "website", link: "https://xeiaso.net/", display: "xeiaso.net"), 121 + (name: "x", link: "https://x.com/theprincessxena", display: "@theprincessxena"), 117 122 (name: "github", link: "https://github.com/Xe", display: "@Xe"), 118 123 (name: "linkedin", link: "https://www.linkedin.com/in/xe-iaso/", display: resume.name), 119 124 (name: "mastodon", link: "https://pony.social/@cadey", display: "@cadey@pony.social"), 120 - (name: "twitch", link: "https://twitch.tv/princessxen", display: "@princessxen"), 125 + (name: "tiktok", link: "https://www.tiktok.com/@xeiaso.1337", display: "@xeiaso.1337"), 121 126 ), 122 127 tagline: resume.tagline, 123 128 doc, ··· 136 141 137 142 At Fly.io I am responsible for helping to build the developer relations team from scratch. I am working with the team to create a new developer relations strategy that is focused on helping developers understand the value of Fly.io and how to use it in their projects. This includes in-person, online, and video content as well as occasional writing for the Fly.io and partner companies' blogs. 138 143 144 + I also lead social media posting on websites like #text(9pt)[#icon("x")] (formerly Twitter) and have contributed heavily to social media strategy and content creation. I am the main maintainer of the Fly.io YouTube and TikTok channels. 145 + 146 + #smallColoredLine() 147 + 139 148 #titleCompany[Archmage of Infrastructure][Tailscale]\ 140 149 #term[2020-12 -- 2023-10][Ottawa, CA] 141 150 ··· 145 154 146 155 I regularly wrote articles and lead internal talks about how to use Tailscale and other technology topics in new and interesting ways. 147 156 148 - #coloredLine() 157 + #smallColoredLine() 149 158 150 159 #titleCompany[Expert principal en fiabilité du site][Lightspeed]\ 151 160 #term[2019-05 -- 2020-11][Montréal, CA] ··· 156 165 - Built developer tooling on top of a custom CI/CD flow 157 166 - Managed hidden complexity in the Kubernetes deployment system 158 167 159 - #coloredLine() 168 + #smallColoredLine() 160 169 161 170 #titleCompany[Senior Software Engineer][Heroku]\ 162 171 #term[2017-02 -- 2019-03][Bellevue, USA] ··· 181 190 == Projects 182 191 183 192 ==== Xesite\ 184 - The custom blog engine that powers #text(fill: blue)[#link("https://xeiaso.net")[xeiaso.net]]. It is a handcrafted work of art written in Rust with two goals: 193 + The custom blog engine that powers #text(fill: blue)[#link("https://xeiaso.net")[xeiaso.net]]. It is a handcrafted work of art written in Go with two goals: 185 194 186 195 1. To be as fast as possible to survive traffic surges from news aggregators without flinching. 187 196 2. To be easily extensible and hackable to meet my needs. ··· 190 199 191 200 ==== XeDN\ 192 201 The software that powers #text(font: "Iosevka Curly Iaso Extended")[#link("https://cdn.xeiaso.net")[cdn.xeiaso.net]], currently serving over 4 terabytes of traffic per month without breaking a sweat. This powers the images, video, slides, and other files that I use to enrich my posts. 193 - 194 - ==== Xeact\ 195 - My custom frontend JavaScript framework. I regularly write about things I have learned working on it #text(fill: blue)[#link("https://xeiaso.net/blog/series/xeact")[on my blog]]. 196 - 197 - Working on this project has been the catalyst for me finally understanding how to do front-end development in web browsers. Xeact also powers internal tooling at Tailscale, being used daily by the support team to understand and diagnose customer issues. 198 202 199 203 ==== #link("https://github.com/Xe/waifud")[waifud]\ 200 204 My custom virtual machine manager for my homelab. waifud replicates most of the advantages of using cloud computing in my basement. I write about it regularly #text(fill: blue)[#link("https://xeiaso.net/blog/series/waifud")[on my blog]].
+29
lume/deno.lock
··· 35 35 "npm:@mdx-js/mdx@3.0.1": "npm:@mdx-js/mdx@3.0.1", 36 36 "npm:@tailwindcss/forms": "npm:@tailwindcss/forms@0.5.7_tailwindcss@3.4.3__postcss@8.4.38", 37 37 "npm:@tailwindcss/typography": "npm:@tailwindcss/typography@0.5.13_tailwindcss@3.4.3__postcss@8.4.38", 38 + "npm:@types/estree@1.0.5": "npm:@types/estree@1.0.5", 39 + "npm:@types/nunjucks@3.2.6": "npm:@types/nunjucks@3.2.6", 38 40 "npm:autoprefixer@10.4.19": "npm:autoprefixer@10.4.19_postcss@8.4.38", 39 41 "npm:date-fns@3.6.0": "npm:date-fns@3.6.0", 40 42 "npm:estree-walker@3.0.3": "npm:estree-walker@3.0.3", 41 43 "npm:hls.js": "npm:hls.js@1.5.8", 42 44 "npm:js-sha256": "npm:js-sha256@0.11.0", 45 + "npm:lucide-react": "npm:lucide-react@0.397.0_react@18.3.1", 43 46 "npm:markdown-it-attrs@4.1.6": "npm:markdown-it-attrs@4.1.6_markdown-it@14.1.0", 44 47 "npm:markdown-it-deflist@3.0.0": "npm:markdown-it-deflist@3.0.0", 45 48 "npm:markdown-it@14.1.0": "npm:markdown-it@14.1.0", ··· 320 323 }, 321 324 "@types/ms@0.7.34": { 322 325 "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", 326 + "dependencies": {} 327 + }, 328 + "@types/nunjucks@3.2.6": { 329 + "integrity": "sha512-pHiGtf83na1nCzliuAdq8GowYiXvH5l931xZ0YEHaLMNFgynpEqx+IPStlu7UaDkehfvl01e4x/9Tpwhy7Ue3w==", 323 330 "dependencies": {} 324 331 }, 325 332 "@types/prismjs@1.26.4": { ··· 895 902 "integrity": "sha512-6xNlKayMZvds9h1Y1VWc0fQHQ82BxTXizWPEtEeGvmOUYpBRy4gbWroHLpzowe6xiQhHpelCQiE7HEdznyBL9Q==", 896 903 "dependencies": {} 897 904 }, 905 + "js-tokens@4.0.0": { 906 + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 907 + "dependencies": {} 908 + }, 898 909 "jsbi@4.3.0": { 899 910 "integrity": "sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g==", 900 911 "dependencies": {} ··· 933 944 "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", 934 945 "dependencies": {} 935 946 }, 947 + "loose-envify@1.4.0": { 948 + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 949 + "dependencies": { 950 + "js-tokens": "js-tokens@4.0.0" 951 + } 952 + }, 936 953 "lru-cache@10.2.2": { 937 954 "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", 938 955 "dependencies": {} 956 + }, 957 + "lucide-react@0.397.0_react@18.3.1": { 958 + "integrity": "sha512-rUcbRY5jFP/4za/OJvaRUUmdPsPb940Tw9zE1ehrRZmr9JnkDcW8OV3POR3XfEAAMDkssiTc5IWBFv8Y//pkDQ==", 959 + "dependencies": { 960 + "react": "react@18.3.1" 961 + } 939 962 }, 940 963 "markdown-extensions@2.0.0": { 941 964 "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", ··· 1704 1727 "queue-microtask@1.2.3": { 1705 1728 "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 1706 1729 "dependencies": {} 1730 + }, 1731 + "react@18.3.1": { 1732 + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", 1733 + "dependencies": { 1734 + "loose-envify": "loose-envify@1.4.0" 1735 + } 1707 1736 }, 1708 1737 "read-cache@1.0.0": { 1709 1738 "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",