[{"data":1,"prerenderedAt":638},["ShallowReactive",2],{"navigation":3,"about":43,"index":100,"mdc--dlh4b2-key":121,"mdc--m1jl1j-key":144,"mdc--74znke-key":224,"mdc-cc6zdn-key":268,"mdc--5gisp2-key":354,"mdc-6d6qql-key":422,"mdc-bkqkqo-key":485,"mdc-7fj0vj-key":515,"mdc-hxy79d-key":579,"mdc-cw5vzx-key":616},[4,22],{"title":5,"path":6,"stem":7,"children":8,"page":21},"Blog","\u002Fblog","blog",[9,13,17],{"title":10,"path":11,"stem":12},"Anki Baby Steps","\u002Fblog\u002Fanki-baby-steps","blog\u002Fanki-baby-steps",{"title":14,"path":15,"stem":16},"GSoC 2026: a Hopeful Rejection","\u002Fblog\u002Fgsoc-2026-a-hopeful-rejection","blog\u002Fgsoc-2026-a-hopeful-rejection",{"title":18,"path":19,"stem":20},"Pico Router Changes Directions","\u002Fblog\u002Fpico-router-changes-directions","blog\u002Fpico-router-changes-directions",false,{"title":23,"path":24,"stem":25,"children":26,"page":21},"Work","\u002Fwork","work",[27,31,35,39],{"title":28,"path":29,"stem":30},"D-Map Cache","\u002Fwork\u002Fdmap-cache","work\u002Fdmap-cache",{"title":32,"path":33,"stem":34},"Focal Grid","\u002Fwork\u002Ffocal-grid","work\u002Ffocal-grid",{"title":36,"path":37,"stem":38},"Pico Router","\u002Fwork\u002Fpico-router","work\u002Fpico-router",{"title":40,"path":41,"stem":42},"Valhalla","\u002Fwork\u002Fvalhalla","work\u002Fvalhalla",{"id":44,"title":45,"body":46,"content":47,"description":46,"extension":48,"faq":49,"images":87,"mermaid":46,"meta":94,"navigation":95,"path":96,"seo":97,"stem":98,"__hash__":99},"about\u002Fabout.yml","About Me",null,"I didn't start out in computer engineering. I studied Entrepreneurship & Retail Management, then taught myself programming and began working professionally as a full-stack developer. Over time, curiosity about performance and how software actually runs pushed me progressively down the stack from web dev to where I am today.\n\n::mermaid\n---\ncode: |\n  timeline\n    title My Technical Trajectory\n    Business & Entrepreneurship\n      : Learned how products, organizations, and technology deployment work\n    Full-Stack Development\n      : Started building software professionally\n    GIS & OSS Routing\n      : Worked with geospatial data and routing systems\n    Embedded Systems\n      : Built Pico Router\n    Computer Architecture\n      : Started exploring caches, RISC-V, FPGA, and hardware-software co-design\n---\n::\n\nI'm still learning and I'm always on the look for new and exciting opportunities! If you'd like to know more about me, feel free to check out \"FAQ\" section below \\:-)\n","yml",{"title":46,"description":46,"categories":50},[51,63,75],{"title":52,"questions":53},"Skills",[54,57,60],{"label":55,"content":56},"Programming Languages","My most used language is a three-way tie between **C++**, **Python**, and **TypeScript**. While C++ is the language I've actively studied the most, its depth makes me feel like I haven't even scratched the surface yet (my default version is **C++ 17**). TypeScript is a byproduct of all the full-stack application projects I've done over the years. Python has been mainly been a tool for me for high-level scripting and DSA practice. On top of that, experience writing C++ bindings for Python using nanobind gave me another appreciation for the language.\n\u003Cbr>\u003Cbr>\nI'm currently exploring **Verilog** and **RISC-V assembly** in my goal to get an comprehensive understanding of the heterogenous computing ecosystem. You'll also ocasionally catch me playing around with **Bash**, **Rust**, and **Mojo**.\n",{"label":58,"content":59},"Hardware & Architecture","At this moment in time, I'm most familiar with **RISC-V** architectures on both a conceptual and practical level. I've also had extensive practice writing **NIOS II** assembly and much of Pico Router specifically built for **ARM cortex-m** architectures. Although I have yet to play around with a physical FPGA board, I've made lots of use of **Verilator** to emulate my hardware development. Finally, my embedded projects mainly have been using the **Raspberry Pi** ecosystem.\n",{"label":61,"content":62},"Systems & Tooling","My development workflow revolves around **GCC\u002FClang**, **CMake**, and **Git**, with **GDB** for debugging and **GoogleTest** for automated testing. I've also started paying more attention to performance analysis using **Google Benchmark** for controlled microbenchmarks and **perf** to investigate where programs actually spend their time.\n\u003Cbr>\u003Cbr>\nFor projects that need reproducible environments or more complex dependency management, I've worked with **Docker** and CI\u002FCD pipelines. I also make extensive use of scripting and automation to support development workflows and testing.\n\u003Cbr>\u003Cbr>\nI love tools that make low-level development easier to iterate on without immediately requiring physical hardware. **Renode** has been especially useful in this regard which allows me to simulate, test, and debug embedded software as part of a more repeatable development workflow.\n",{"title":64,"questions":65},"Personal",[66,69,72],{"label":67,"content":68},"Hobbies","Outside of engineering, I've held a long-time interest in **music production**. I'm also an avid listener (and sometimes player) of **jazz** and **flamenco** music. Beyond this, I enjoy **reading** **fiction** and **non-fiction**. I'm particularily interested in **historical** and **economic** topics in addition to **Japanese novels**.\n",{"label":70,"content":71},"Countries & Languages","I love to travel and see new places. I've been all over **Europe** and more recently I've gotten to travel to **east Asia** as well. Besides my programming languages I have **Dutch** as my native language and I consider my abilities in **English** to be at an upper C1 level. Because of my family heritage I also have a considerable understanding of both **Russian** and **Polish**. Additionally, I managed to reach a certified C1 level in **Spanish** with my newest ambitions being to start learning **Japanese**.\n",{"label":73,"content":74},"Goals","My general professional goals are to gain a deep enough understanding of my area to be a valuable edition to a **research & development** team. In the short-team this means getting lots and lots of **practice**. Somewhere much further in the horizon I'd potentially be interested in persuing engineering oriented **startup** founding opportunities.\n",{"title":76,"questions":77},"Environment",[78,81,84],{"label":79,"content":80},"IDE","I've been using **VS Code** for the entirety of my SWE journey. I've gotten so used to the UI and my particular set of plugins that it all feels like second nature to me. Nonetheless, I'm currently in the process of learning **Vim** bindings and I've lately been trying out **NeoVim** with **LazyVim**. Watch out for a blog post on my experiences soon!\n\u003Cbr>\u003Cbr>\nIn terms of default shell setup I use **zsh** with **iTerm2** with **tmux** as my terminal.\n",{"label":82,"content":83},"Operating System","My go to for any generic development work is **MacOS**. My **M4 MacBook** cuts down so much on compilation times plus it handles local LLMs quite decently. Also, I love how light it is in my backpack. Sadly, some toolchains (especially those used for Pico Router) are incompatible with ARM64 architectures. I therefore also ocasionally use **Windows 11** on an **AMD64 Omen** machine.\n",{"label":85,"content":86},"AI Tools","Considering my main goal at this point in my career is learning as much as I can, I try to not overrely on agentic AI tools. If I'm in a pinch or particularily lazy to make something I'll use **Codex** with **gpt-5.5** to handle it. I also tend to use it for exploring new codebases.\n",[88,91],{"src":89,"alt":90},"\u002Fcontent\u002Fabout-me-1.jpeg","Victor Yanson - Korea Trip Photo",{"src":92,"alt":93},"\u002Fcontent\u002Fabout-me-2.jpeg","Victor Yanson - Japan Trip Photo",{},true,"\u002Fabout",{"title":45},"about","QH8PAd00kF42sOlWmhwWeMUUzWwCO87wgH_VopCkA0o",{"id":101,"title":102,"about":103,"blog":46,"body":46,"description":105,"experience":106,"extension":48,"faq":46,"hero":108,"meta":114,"navigation":95,"path":115,"seo":116,"stem":119,"testimonials":46,"__hash__":120},"index\u002Findex.yml","Victor Yanson",{"title":45,"description":104},"I'm a systems & embedded software engineer that loves exploring the power of computers. I focus on embedded systems, computer architecture, and open-source infrastructure. Currently exploring FPGA acceleration and RISC-V architectures for graph-processing workloads.\n","Hey there, welcome to my website! This is the place to get the latest on what I'm working on and what I'm thinking about.",{"title":107},"Selected Projects",{"links":109},[110],{"label":111,"to":112,"color":113},"Check out Pico Router","https:\u002F\u002Fgithub.com\u002FPico-Router\u002FPico-Router","neutral",{},"\u002F",{"title":117,"description":118},"Home","I'm a systems & embedded software engineer that loves exploring the power of computers. This page is made to get to know me and my work a bit better!","index","qDN3SJvux-404LAo7hLlzzZ0_HLgR89fE9hIvPXHncA",{"data":122,"body":123},{},{"type":124,"children":125},"root",[126,134,139],{"type":127,"tag":128,"props":129,"children":130},"element","p",{},[131],{"type":132,"value":133},"text","I didn't start out in computer engineering. I studied Entrepreneurship & Retail Management, then taught myself programming and began working professionally as a full-stack developer. Over time, curiosity about performance and how software actually runs pushed me progressively down the stack from web dev to where I am today.",{"type":127,"tag":135,"props":136,"children":138},"mermaid",{"code":137},"timeline\n  title My Technical Trajectory\n  Business & Entrepreneurship\n    : Learned how products, organizations, and technology deployment work\n  Full-Stack Development\n    : Started building software professionally\n  GIS & OSS Routing\n    : Worked with geospatial data and routing systems\n  Embedded Systems\n    : Built Pico Router\n  Computer Architecture\n    : Started exploring caches, RISC-V, FPGA, and hardware-software co-design\n",[],{"type":127,"tag":128,"props":140,"children":141},{},[142],{"type":132,"value":143},"I'm still learning and I'm always on the look for new and exciting opportunities! If you'd like to know more about me, feel free to check out \"FAQ\" section below :-)",{"data":145,"body":146},{},{"type":124,"children":147},[148],{"type":127,"tag":128,"props":149,"children":150},{},[151,153,159,161,166,168,173,175,180,182,186,189,191,196,198,203,205,210,211,216,217,222],{"type":132,"value":152},"My most used language is a three-way tie between ",{"type":127,"tag":154,"props":155,"children":156},"strong",{},[157],{"type":132,"value":158},"C++",{"type":132,"value":160},", ",{"type":127,"tag":154,"props":162,"children":163},{},[164],{"type":132,"value":165},"Python",{"type":132,"value":167},", and ",{"type":127,"tag":154,"props":169,"children":170},{},[171],{"type":132,"value":172},"TypeScript",{"type":132,"value":174},". While C++ is the language I've actively studied the most, its depth makes me feel like I haven't even scratched the surface yet (my default version is ",{"type":127,"tag":154,"props":176,"children":177},{},[178],{"type":132,"value":179},"C++ 17",{"type":132,"value":181},"). TypeScript is a byproduct of all the full-stack application projects I've done over the years. Python has been mainly been a tool for me for high-level scripting and DSA practice. On top of that, experience writing C++ bindings for Python using nanobind gave me another appreciation for the language.\n",{"type":127,"tag":183,"props":184,"children":185},"br",{},[],{"type":127,"tag":183,"props":187,"children":188},{},[],{"type":132,"value":190},"\nI'm currently exploring ",{"type":127,"tag":154,"props":192,"children":193},{},[194],{"type":132,"value":195},"Verilog",{"type":132,"value":197}," and ",{"type":127,"tag":154,"props":199,"children":200},{},[201],{"type":132,"value":202},"RISC-V assembly",{"type":132,"value":204}," in my goal to get an comprehensive understanding of the heterogenous computing ecosystem. You'll also ocasionally catch me playing around with ",{"type":127,"tag":154,"props":206,"children":207},{},[208],{"type":132,"value":209},"Bash",{"type":132,"value":160},{"type":127,"tag":154,"props":212,"children":213},{},[214],{"type":132,"value":215},"Rust",{"type":132,"value":167},{"type":127,"tag":154,"props":218,"children":219},{},[220],{"type":132,"value":221},"Mojo",{"type":132,"value":223},".",{"data":225,"body":226},{},{"type":124,"children":227},[228],{"type":127,"tag":128,"props":229,"children":230},{},[231,233,238,240,245,247,252,254,259,261,266],{"type":132,"value":232},"At this moment in time, I'm most familiar with ",{"type":127,"tag":154,"props":234,"children":235},{},[236],{"type":132,"value":237},"RISC-V",{"type":132,"value":239}," architectures on both a conceptual and practical level. I've also had extensive practice writing ",{"type":127,"tag":154,"props":241,"children":242},{},[243],{"type":132,"value":244},"NIOS II",{"type":132,"value":246}," assembly and much of Pico Router specifically built for ",{"type":127,"tag":154,"props":248,"children":249},{},[250],{"type":132,"value":251},"ARM cortex-m",{"type":132,"value":253}," architectures. Although I have yet to play around with a physical FPGA board, I've made lots of use of ",{"type":127,"tag":154,"props":255,"children":256},{},[257],{"type":132,"value":258},"Verilator",{"type":132,"value":260}," to emulate my hardware development. Finally, my embedded projects mainly have been using the ",{"type":127,"tag":154,"props":262,"children":263},{},[264],{"type":132,"value":265},"Raspberry Pi",{"type":132,"value":267}," ecosystem.",{"data":269,"body":270},{},{"type":124,"children":271},[272],{"type":127,"tag":128,"props":273,"children":274},{},[275,277,282,283,288,289,294,296,301,303,308,310,315,317,322,324,327,330,332,337,339,342,345,347,352],{"type":132,"value":276},"My development workflow revolves around ",{"type":127,"tag":154,"props":278,"children":279},{},[280],{"type":132,"value":281},"GCC\u002FClang",{"type":132,"value":160},{"type":127,"tag":154,"props":284,"children":285},{},[286],{"type":132,"value":287},"CMake",{"type":132,"value":167},{"type":127,"tag":154,"props":290,"children":291},{},[292],{"type":132,"value":293},"Git",{"type":132,"value":295},", with ",{"type":127,"tag":154,"props":297,"children":298},{},[299],{"type":132,"value":300},"GDB",{"type":132,"value":302}," for debugging and ",{"type":127,"tag":154,"props":304,"children":305},{},[306],{"type":132,"value":307},"GoogleTest",{"type":132,"value":309}," for automated testing. I've also started paying more attention to performance analysis using ",{"type":127,"tag":154,"props":311,"children":312},{},[313],{"type":132,"value":314},"Google Benchmark",{"type":132,"value":316}," for controlled microbenchmarks and ",{"type":127,"tag":154,"props":318,"children":319},{},[320],{"type":132,"value":321},"perf",{"type":132,"value":323}," to investigate where programs actually spend their time.\n",{"type":127,"tag":183,"props":325,"children":326},{},[],{"type":127,"tag":183,"props":328,"children":329},{},[],{"type":132,"value":331},"\nFor projects that need reproducible environments or more complex dependency management, I've worked with ",{"type":127,"tag":154,"props":333,"children":334},{},[335],{"type":132,"value":336},"Docker",{"type":132,"value":338}," and CI\u002FCD pipelines. I also make extensive use of scripting and automation to support development workflows and testing.\n",{"type":127,"tag":183,"props":340,"children":341},{},[],{"type":127,"tag":183,"props":343,"children":344},{},[],{"type":132,"value":346},"\nI love tools that make low-level development easier to iterate on without immediately requiring physical hardware. ",{"type":127,"tag":154,"props":348,"children":349},{},[350],{"type":132,"value":351},"Renode",{"type":132,"value":353}," has been especially useful in this regard which allows me to simulate, test, and debug embedded software as part of a more repeatable development workflow.",{"data":355,"body":356},{},{"type":124,"children":357},[358],{"type":127,"tag":128,"props":359,"children":360},{},[361,363,368,370,375,376,381,383,388,390,395,396,401,403,408,409,414,416,421],{"type":132,"value":362},"Outside of engineering, I've held a long-time interest in ",{"type":127,"tag":154,"props":364,"children":365},{},[366],{"type":132,"value":367},"music production",{"type":132,"value":369},". I'm also an avid listener (and sometimes player) of ",{"type":127,"tag":154,"props":371,"children":372},{},[373],{"type":132,"value":374},"jazz",{"type":132,"value":197},{"type":127,"tag":154,"props":377,"children":378},{},[379],{"type":132,"value":380},"flamenco",{"type":132,"value":382}," music. Beyond this, I enjoy ",{"type":127,"tag":154,"props":384,"children":385},{},[386],{"type":132,"value":387},"reading",{"type":132,"value":389}," ",{"type":127,"tag":154,"props":391,"children":392},{},[393],{"type":132,"value":394},"fiction",{"type":132,"value":197},{"type":127,"tag":154,"props":397,"children":398},{},[399],{"type":132,"value":400},"non-fiction",{"type":132,"value":402},". I'm particularily interested in ",{"type":127,"tag":154,"props":404,"children":405},{},[406],{"type":132,"value":407},"historical",{"type":132,"value":197},{"type":127,"tag":154,"props":410,"children":411},{},[412],{"type":132,"value":413},"economic",{"type":132,"value":415}," topics in addition to ",{"type":127,"tag":154,"props":417,"children":418},{},[419],{"type":132,"value":420},"Japanese novels",{"type":132,"value":223},{"data":423,"body":424},{},{"type":124,"children":425},[426],{"type":127,"tag":128,"props":427,"children":428},{},[429,431,436,438,443,445,450,452,457,459,464,465,470,472,477,479,484],{"type":132,"value":430},"I love to travel and see new places. I've been all over ",{"type":127,"tag":154,"props":432,"children":433},{},[434],{"type":132,"value":435},"Europe",{"type":132,"value":437}," and more recently I've gotten to travel to ",{"type":127,"tag":154,"props":439,"children":440},{},[441],{"type":132,"value":442},"east Asia",{"type":132,"value":444}," as well. Besides my programming languages I have ",{"type":127,"tag":154,"props":446,"children":447},{},[448],{"type":132,"value":449},"Dutch",{"type":132,"value":451}," as my native language and I consider my abilities in ",{"type":127,"tag":154,"props":453,"children":454},{},[455],{"type":132,"value":456},"English",{"type":132,"value":458}," to be at an upper C1 level. Because of my family heritage I also have a considerable understanding of both ",{"type":127,"tag":154,"props":460,"children":461},{},[462],{"type":132,"value":463},"Russian",{"type":132,"value":197},{"type":127,"tag":154,"props":466,"children":467},{},[468],{"type":132,"value":469},"Polish",{"type":132,"value":471},". Additionally, I managed to reach a certified C1 level in ",{"type":127,"tag":154,"props":473,"children":474},{},[475],{"type":132,"value":476},"Spanish",{"type":132,"value":478}," with my newest ambitions being to start learning ",{"type":127,"tag":154,"props":480,"children":481},{},[482],{"type":132,"value":483},"Japanese",{"type":132,"value":223},{"data":486,"body":487},{},{"type":124,"children":488},[489],{"type":127,"tag":128,"props":490,"children":491},{},[492,494,499,501,506,508,513],{"type":132,"value":493},"My general professional goals are to gain a deep enough understanding of my area to be a valuable edition to a ",{"type":127,"tag":154,"props":495,"children":496},{},[497],{"type":132,"value":498},"research & development",{"type":132,"value":500}," team. In the short-team this means getting lots and lots of ",{"type":127,"tag":154,"props":502,"children":503},{},[504],{"type":132,"value":505},"practice",{"type":132,"value":507},". Somewhere much further in the horizon I'd potentially be interested in persuing engineering oriented ",{"type":127,"tag":154,"props":509,"children":510},{},[511],{"type":132,"value":512},"startup",{"type":132,"value":514}," founding opportunities.",{"data":516,"body":517},{},{"type":124,"children":518},[519],{"type":127,"tag":128,"props":520,"children":521},{},[522,524,529,531,536,538,543,545,550,552,555,558,560,565,566,571,572,577],{"type":132,"value":523},"I've been using ",{"type":127,"tag":154,"props":525,"children":526},{},[527],{"type":132,"value":528},"VS Code",{"type":132,"value":530}," for the entirety of my SWE journey. I've gotten so used to the UI and my particular set of plugins that it all feels like second nature to me. Nonetheless, I'm currently in the process of learning ",{"type":127,"tag":154,"props":532,"children":533},{},[534],{"type":132,"value":535},"Vim",{"type":132,"value":537}," bindings and I've lately been trying out ",{"type":127,"tag":154,"props":539,"children":540},{},[541],{"type":132,"value":542},"NeoVim",{"type":132,"value":544}," with ",{"type":127,"tag":154,"props":546,"children":547},{},[548],{"type":132,"value":549},"LazyVim",{"type":132,"value":551},". Watch out for a blog post on my experiences soon!\n",{"type":127,"tag":183,"props":553,"children":554},{},[],{"type":127,"tag":183,"props":556,"children":557},{},[],{"type":132,"value":559},"\nIn terms of default shell setup I use ",{"type":127,"tag":154,"props":561,"children":562},{},[563],{"type":132,"value":564},"zsh",{"type":132,"value":544},{"type":127,"tag":154,"props":567,"children":568},{},[569],{"type":132,"value":570},"iTerm2",{"type":132,"value":544},{"type":127,"tag":154,"props":573,"children":574},{},[575],{"type":132,"value":576},"tmux",{"type":132,"value":578}," as my terminal.",{"data":580,"body":581},{},{"type":124,"children":582},[583],{"type":127,"tag":128,"props":584,"children":585},{},[586,588,593,595,600,602,607,609,614],{"type":132,"value":587},"My go to for any generic development work is ",{"type":127,"tag":154,"props":589,"children":590},{},[591],{"type":132,"value":592},"MacOS",{"type":132,"value":594},". My ",{"type":127,"tag":154,"props":596,"children":597},{},[598],{"type":132,"value":599},"M4 MacBook",{"type":132,"value":601}," cuts down so much on compilation times plus it handles local LLMs quite decently. Also, I love how light it is in my backpack. Sadly, some toolchains (especially those used for Pico Router) are incompatible with ARM64 architectures. I therefore also ocasionally use ",{"type":127,"tag":154,"props":603,"children":604},{},[605],{"type":132,"value":606},"Windows 11",{"type":132,"value":608}," on an ",{"type":127,"tag":154,"props":610,"children":611},{},[612],{"type":132,"value":613},"AMD64 Omen",{"type":132,"value":615}," machine.",{"data":617,"body":618},{},{"type":124,"children":619},[620],{"type":127,"tag":128,"props":621,"children":622},{},[623,625,630,631,636],{"type":132,"value":624},"Considering my main goal at this point in my career is learning as much as I can, I try to not overrely on agentic AI tools. If I'm in a pinch or particularily lazy to make something I'll use ",{"type":127,"tag":154,"props":626,"children":627},{},[628],{"type":132,"value":629},"Codex",{"type":132,"value":544},{"type":127,"tag":154,"props":632,"children":633},{},[634],{"type":132,"value":635},"gpt-5.5",{"type":132,"value":637}," to handle it. I also tend to use it for exploring new codebases.",1789678542077]