andromeda edition

This commit is contained in:
doylet
2026-08-31 17:41:37 +10:00
parent 6728368d96
commit d1fcefbdf1
+43 -43
View File
@@ -120,8 +120,8 @@
</ul> </ul>
</p> </p>
<h3>What I use (often)</h3> <h3 class=print-hide>What I use (often)</h3>
<ul class=keywords-list> <ul class="keywords-list print-hide">
<li>Neovim</li> <li>Neovim</li>
<li>OpenCode</li> <li>OpenCode</li>
<li>Win32 & WSL</li> <li>Win32 & WSL</li>
@@ -129,8 +129,8 @@
<li>Python for fun</li> <li>Python for fun</li>
</ul> </ul>
<h4>And I've dabbled with</h4> <h4 class=print-hide>And I've dabbled with</h4>
<ul class=keywords-list> <ul class="keywords-list print-hide">
<li>C++11 onwards</li> <li>C++11 onwards</li>
<li>C99</li> <li>C99</li>
<li>Ubuntu</li> <li>Ubuntu</li>
@@ -148,8 +148,8 @@
<li>Virtual Memory</li> <li>Virtual Memory</li>
</ul> </ul>
<h3>A "Me" Primer</h3> <h3 class=print-hide>A "Me" Primer</h3>
<ul class=keywords-list> <ul class="keywords-list print-hide">
<li>Passionate for: Privacy, data sovereignty, game tech</li> <li>Passionate for: Privacy, data sovereignty, game tech</li>
<li>Likes Handmade: understanding under the hood, do the simplest thing first, arenas, build.bat/sh, length-delimited strings</li> <li>Likes Handmade: understanding under the hood, do the simplest thing first, arenas, build.bat/sh, length-delimited strings</li>
<li>Knows CPUs: SIMD, caches, bandwidth, OoO & speculative execution</li> <li>Knows CPUs: SIMD, caches, bandwidth, OoO & speculative execution</li>
@@ -157,8 +157,8 @@
<li>Prefers explicitness/safety: handles over pointers, polling over callbacks, stacks over recursion, vendoring over package managers</li> <li>Prefers explicitness/safety: handles over pointers, polling over callbacks, stacks over recursion, vendoring over package managers</li>
</ul> </ul>
<h3>Find me at</h3> <h3 class=print-hide>Find me at</h3>
<table> <table class=print-hide>
<tr> <tr>
<td>My Homepage</td> <td>My Homepage</td>
<td><a href="https://doylet.dev">https://doylet.dev</a></td> <td><a href="https://doylet.dev">https://doylet.dev</a></td>
@@ -203,7 +203,7 @@
<li>Cryptonote</li> <li>Cryptonote</li>
<li>Open Source</li> <li>Open Source</li>
</ul> </ul>
<table> <table class=print-hide>
<tr> <tr>
<td><img src="assets/work_session.png"></td> <td><img src="assets/work_session.png"></td>
</tr> </tr>
@@ -262,7 +262,7 @@
<li>DDS+Kafka (Data Distribution)</li> <li>DDS+Kafka (Data Distribution)</li>
<li>2D Discrete Event Simulator (ImGui, GLFW)</li> <li>2D Discrete Event Simulator (ImGui, GLFW)</li>
</ul> </ul>
<table> <table class=print-hide>
<tr> <tr>
<td><img src="assets/work_aos.jpg"></td> <td><img src="assets/work_aos.jpg"></td>
</tr> </tr>
@@ -317,7 +317,7 @@
<li>Open Source</li> <li>Open Source</li>
<li>Applied Cryptography (Cryptonote/Libsodium)</li> <li>Applied Cryptography (Cryptonote/Libsodium)</li>
</ul> </ul>
<table> <table class=print-hide>
<tr> <tr>
<td><img src="assets/work_oxen.png"></td> <td><img src="assets/work_oxen.png"></td>
</tr> </tr>
@@ -382,10 +382,10 @@
<div><hr></div> <div><hr></div>
<section aria-label="Projects"> <section aria-label="Projects">
<h2>Projects</h2> <h2>Projects</h2>
<h3>On-going</h3> <h3 class="print-hide">On-going</h3>
<div> <div>
<p class=job-role style="border-color: #A78BDA">2018 - CURR: DN Library <a href="https://git.doylet.dev/doylet/dn">git.doylet.dev/doylet/dn</a></p> <p class=job-role style="border-color: #A78BDA">2018 - CURR: DN Library <a href="https://git.doylet.dev/doylet/dn">git.doylet.dev/doylet/dn</a></p>
<ul class=keywords-list> <ul class="keywords-list print-hide">
<li>C style C++</li> <li>C style C++</li>
<li>Single File Library</li> <li>Single File Library</li>
<li>Arenas</li> <li>Arenas</li>
@@ -404,7 +404,7 @@
explicit memory control with allocator-aware APIs, zero-allocation patterns, and explicit memory control with allocator-aware APIs, zero-allocation patterns, and
arena-based virtual memory management where appropriate. arena-based virtual memory management where appropriate.
</p> </p>
<p> <p class=print-hide>
The library is designed for trivial integration: a single amalgamated header and The library is designed for trivial integration: a single amalgamated header and
implementation file with no external dependencies. It targets Win32, POSIX, and implementation file with no external dependencies. It targets Win32, POSIX, and
Emscripten/WASM that can be configured with compile-time feature toggles. Emscripten/WASM that can be configured with compile-time feature toggles.
@@ -416,7 +416,7 @@
ASAN memory poisoning, use-after-free detection for scratch arenas, memory scrubbing on ASAN memory poisoning, use-after-free detection for scratch arenas, memory scrubbing on
deallocation, and leak tracking. deallocation, and leak tracking.
</p> </p>
<p> <p class=print-hide>
It has continually evolved since the start of my programming career and has been a testing It has continually evolved since the start of my programming career and has been a testing
ground for understanding the implications of different API designs, how common ground for understanding the implications of different API designs, how common
functionality is built and exploring different primitives (like learning about AVX-512 functionality is built and exploring different primitives (like learning about AVX-512
@@ -426,7 +426,7 @@
<div> <div>
<p class=job-role style="border-color: #7EAAC4">2023 - CURR: TELY Engine (Closed Source)</p> <p class=job-role style="border-color: #7EAAC4">2023 - CURR: TELY Engine (Closed Source)</p>
<ul class=keywords-list> <ul class="keywords-list print-hide">
<li>C style C++</li> <li>C style C++</li>
<li>Sokol</li> <li>Sokol</li>
<li>Dear ImGui</li> <li>Dear ImGui</li>
@@ -435,8 +435,8 @@
<li>Asset Management</li> <li>Asset Management</li>
<li>Cross-Platform (Win32/Emscripten)</li> <li>Cross-Platform (Win32/Emscripten)</li>
</ul> </ul>
<table> <table class="print-hide">
<tr class="print-hide"> <tr>
<td><img src="assets/projects_tely_0.jpg"></td> <td><img src="assets/projects_tely_0.jpg"></td>
</tr> </tr>
<tr> <tr>
@@ -453,14 +453,14 @@
audio, video playback, and input handling. It is the foundation for most of my GUI audio, video playback, and input handling. It is the foundation for most of my GUI
projects. projects.
</p> </p>
<p> <p class=print-hide>
It compiles as a native desktop app and can target the web. It includes a It compiles as a native desktop app and can target the web. It includes a
deferred asset loading system, a sprite sheet packer with keyframe animation deferred asset loading system, a sprite sheet packer with keyframe animation
support, a renderer that outputs vertex batches, a basic GPU wrapper (samplers, render support, a renderer that outputs vertex batches, a basic GPU wrapper (samplers, render
passes, pipelines) and a networking layer backed by cURL on desktop and fetch APIs via the passes, pipelines) and a networking layer backed by cURL on desktop and fetch APIs via the
browser. browser.
</p> </p>
<p> <p class=print-hide>
It is a project whose goal is to be a forcing function for learning about game technology It is a project whose goal is to be a forcing function for learning about game technology
as needed to build hobby projects. Its features are at various levels of maturity as as needed to build hobby projects. Its features are at various levels of maturity as
necessitated to get my hobby projects functional. necessitated to get my hobby projects functional.
@@ -469,7 +469,7 @@
<div> <div>
<p class=job-role style="border-color: #5B9BD5">2025 - CURR: Solid++ (Closed Source)</p> <p class=job-role style="border-color: #5B9BD5">2025 - CURR: Solid++ (Closed Source)</p>
<ul class=keywords-list> <ul class="keywords-list print-hide">
<li>Python</li> <li>Python</li>
<li>C++ (GUI)</li> <li>C++ (GUI)</li>
<li>Chainflip</li> <li>Chainflip</li>
@@ -480,7 +480,7 @@
<li>WebSocket</li> <li>WebSocket</li>
<li>Emscripten/WASM</li> <li>Emscripten/WASM</li>
</ul> </ul>
<table> <table class=print-hide>
<tr><td><img src="assets/projects_solidpp.jpg"></td></tr> <tr><td><img src="assets/projects_solidpp.jpg"></td></tr>
</table> </table>
<p> <p>
@@ -490,7 +490,7 @@
well as testing newer strategies more easily. It was also an experiment in using ImGui for well as testing newer strategies more easily. It was also an experiment in using ImGui for
web UIs. web UIs.
</p> </p>
<p> <p class=print-hide>
The rewrite traded-off latency for faster iteration given that Chainflip has a 6-second The rewrite traded-off latency for faster iteration given that Chainflip has a 6-second
block time. This gives ample time for decision making and hence sub-second latency is not block time. This gives ample time for decision making and hence sub-second latency is not
as critical. The bot runs two strategies: a delta-neutral hedge across Chainflip and as critical. The bot runs two strategies: a delta-neutral hedge across Chainflip and
@@ -498,7 +498,7 @@
using averages over a lookback window with tools to identify competing orders and to offer using averages over a lookback window with tools to identify competing orders and to offer
to beat or match them in real-time. to beat or match them in real-time.
</p> </p>
<p> <p class=print-hide>
The C++ GUI compiles to both a native desktop app and a WASM web build allowing for quick The C++ GUI compiles to both a native desktop app and a WASM web build allowing for quick
local iteration whilst allowing remote monitoring. It communicates with the Python backend local iteration whilst allowing remote monitoring. It communicates with the Python backend
over WebSocket using a custom binary protocol using asynchronous APIs. over WebSocket using a custom binary protocol using asynchronous APIs.
@@ -507,7 +507,7 @@
<section aria-label="Archived"> <section aria-label="Archived">
<h3>Archived</h3> <h3>Archived</h3>
<div> <div class=print-hide>
<p class=job-role style="border-color: #E8976B">2024 - 2025: Liquid++ (Closed Source)</p> <p class=job-role style="border-color: #E8976B">2024 - 2025: Liquid++ (Closed Source)</p>
<ul class=keywords-list> <ul class=keywords-list>
<li>C style C++</li> <li>C style C++</li>
@@ -544,13 +544,13 @@
<div> <div>
<p class=job-role style="border-color: #E8749E">2023: Terry Cherry <a href="https://game.doylet.dev/terry_cherry/">game.doylet.dev/terry_cherry/</a></p> <p class=job-role style="border-color: #E8749E">2023: Terry Cherry <a href="https://game.doylet.dev/terry_cherry/">game.doylet.dev/terry_cherry/</a></p>
<ul class=keywords-list> <ul class="keywords-list print-hide">
<li>C style C++</li> <li>C style C++</li>
<li>Raylib</li> <li>Raylib</li>
<li>Emscripten</li> <li>Emscripten</li>
<li>2D Tower Defence-Esque</li> <li>2D Tower Defence-Esque</li>
</ul> </ul>
<table> <table class="print-hide">
<tr> <tr>
<td><img src="assets/projects_terry_cherry_1.jpg"></td> <td><img src="assets/projects_terry_cherry_1.jpg"></td>
<td><img src="assets/projects_terry_cherry_0.jpg"></td> <td><img src="assets/projects_terry_cherry_0.jpg"></td>
@@ -561,7 +561,7 @@
jam. Players defend "Terry's Heart" from waves of love-themed enemies (catfish, smoochie jam. Players defend "Terry's Heart" from waves of love-themed enemies (catfish, smoochie
teleporters, and clinger dashers) that march along waypoint paths toward the base. teleporters, and clinger dashers) that march along waypoint paths toward the base.
</p> </p>
<p> <p class=print-hide>
Players earn coins by defeating enemies and purchase upgrades or buildings from the Players earn coins by defeating enemies and purchase upgrades or buildings from the
storefronts. A pub that slows enemies, a church that converts them to allies and an storefronts. A pub that slows enemies, a church that converts them to allies and an
airport that flies them to the back of the queue. Monkey totems spawn periodically which airport that flies them to the back of the queue. Monkey totems spawn periodically which
@@ -575,14 +575,14 @@
web build targeting WebGL. web build targeting WebGL.
</p> </p>
<small> <small>
<ul class=citations> <ul class="citations print-hide">
<li>Source Code <a href="https://git.doylet.dev/doylet/feely_pona">git.doylet.dev/doylet/feely_pona</a></li> <li>Source Code <a href="https://git.doylet.dev/doylet/feely_pona">git.doylet.dev/doylet/feely_pona</a></li>
<li>[1] Handles are the better pointers <a href="https://floooh.github.io/2018/06/17/handles-vs-pointers.html">floooh.github.io/2018/06/17/handles-vs-pointers.html</a></li> <li>[1] Handles are the better pointers <a href="https://floooh.github.io/2018/06/17/handles-vs-pointers.html">floooh.github.io/2018/06/17/handles-vs-pointers.html</a></li>
</ul> </ul>
</small> </small>
</div> </div>
<div> <div class=print-hide>
<p class=job-role style="border-color: #C4A35A">2020: intc Software u128/256 bit port to C <a href="https://git.doylet.dev/doylet/intc">git.doylet.dev/doylet/intc</a></p> <p class=job-role style="border-color: #C4A35A">2020: intc Software u128/256 bit port to C <a href="https://git.doylet.dev/doylet/intc">git.doylet.dev/doylet/intc</a></p>
<ul class=keywords-list> <ul class=keywords-list>
<li>C99/C++</li> <li>C99/C++</li>
@@ -603,7 +603,7 @@
<div> <div>
<p class=job-role style="border-color: #9B8EC4">2020: RaylibSIMD SIMD Software rendering in C <a href="https://git.doylet.dev/doylet/RaylibSIMD">git.doylet.dev/doylet/RaylibSIMD</a></p> <p class=job-role style="border-color: #9B8EC4">2020: RaylibSIMD SIMD Software rendering in C <a href="https://git.doylet.dev/doylet/RaylibSIMD">git.doylet.dev/doylet/RaylibSIMD</a></p>
<ul class=keywords-list> <ul class="keywords-list print-hide">
<li>C99</li> <li>C99</li>
<li>SSE2</li> <li>SSE2</li>
<li>Graphics Programming</li> <li>Graphics Programming</li>
@@ -615,7 +615,7 @@
data-parallelism offered by SIMD. data-parallelism offered by SIMD.
</p> </p>
<small> <small>
<ul class=citations> <ul class="citations print-hide">
<li>Raylib Website <a href="https://raylib.com/">raylib.com</a></li> <li>Raylib Website <a href="https://raylib.com/">raylib.com</a></li>
</ul> </ul>
</small> </small>
@@ -623,7 +623,7 @@
<div> <div>
<p class=job-role style="border-color: #D4A574">2017: DTRenderer 3D Software rendering in C++ <a href="https://git.doylet.dev/doylet/DTRenderer">git.doylet.dev/doylet/DTRenderer</a></p> <p class=job-role style="border-color: #D4A574">2017: DTRenderer 3D Software rendering in C++ <a href="https://git.doylet.dev/doylet/DTRenderer">git.doylet.dev/doylet/DTRenderer</a></p>
<table> <table class=print-hide>
<tr><td><img src="assets/projects_dtrenderer.gif"></td></tr> <tr><td><img src="assets/projects_dtrenderer.gif"></td></tr>
</table> </table>
<p> <p>
@@ -631,7 +631,7 @@
goal is to build an intuitive understanding of graphics mathematics, rendering pipeline goal is to build an intuitive understanding of graphics mathematics, rendering pipeline
and core concepts. It runs as a Win32 program with minimal dependencies. and core concepts. It runs as a Win32 program with minimal dependencies.
</p> </p>
<ul class=bullet-points> <ul class="bullet-points print-hide">
<li>2D Software Rendering</li> <li>2D Software Rendering</li>
<li>Alpha Blending</li> <li>Alpha Blending</li>
<li>Bilinear Filtering</li> <li>Bilinear Filtering</li>
@@ -649,7 +649,7 @@
<div> <div>
<p class=job-role style="border-color: #E9B84D">2017: Math Masher Math game for mobile <a href="luneaustralia/">doylet.dev/luneaustralia</a></p> <p class=job-role style="border-color: #E9B84D">2017: Math Masher Math game for mobile <a href="luneaustralia/">doylet.dev/luneaustralia</a></p>
<table> <table class=print-hide>
<tr> <tr>
<td><img src="assets/projects_math_masher_screen_1.jpg"></td> <td><img src="assets/projects_math_masher_screen_1.jpg"></td>
<td><img src="assets/projects_math_masher_screen_2.jpg"></td> <td><img src="assets/projects_math_masher_screen_2.jpg"></td>
@@ -662,14 +662,14 @@
The app was developed in a team using the Cocos2DX framework in C++. My role in the The app was developed in a team using the Cocos2DX framework in C++. My role in the
project was as the lead developer and assisting role with asset design. project was as the lead developer and assisting role with asset design.
</p> </p>
<ul class=bullet-points> <ul class="bullet-points print-hide">
<li>Project management (Trello, minutes meeting, code review etc.)</li> <li>Project management (Trello, minutes meeting, code review etc.)</li>
<li>Game engine architecture (Gameplay, UI, shopping mechanics, debug)</li> <li>Game engine architecture (Gameplay, UI, shopping mechanics, debug)</li>
<li>Basic sound editing (Compressor, EQing, normalisation)</li> <li>Basic sound editing (Compressor, EQing, normalisation)</li>
<li>Asset designs (Creating graphical assets with Photoshop)</li> <li>Asset designs (Creating graphical assets with Photoshop)</li>
</ul> </ul>
<small> <small>
<ul class=citations> <ul class="citations print-hide">
<li>Trailer <a href="https://youtube.com/watch?v=AUozUZ8aY7g">youtube.com/watch?v=AUozUZ8aY7g</a></li> <li>Trailer <a href="https://youtube.com/watch?v=AUozUZ8aY7g">youtube.com/watch?v=AUozUZ8aY7g</a></li>
</ul> </ul>
</small> </small>
@@ -677,7 +677,7 @@
<div> <div>
<p class=job-role style="border-color: #7FB5B0">2017: DCHIP8 Chip8 interpreter <a href="https://git.doylet.dev/doylet/dchip-8">git.doylet.dev/doylet/dchip-8</a></p> <p class=job-role style="border-color: #7FB5B0">2017: DCHIP8 Chip8 interpreter <a href="https://git.doylet.dev/doylet/dchip-8">git.doylet.dev/doylet/dchip-8</a></p>
<table> <table class=print-hide>
<tr> <tr>
<td><img src="assets/projects_dchip8_screen_1.png"></td> <td><img src="assets/projects_dchip8_screen_1.png"></td>
<td><img src="assets/projects_dchip8_screen_2.png"></td> <td><img src="assets/projects_dchip8_screen_2.png"></td>
@@ -685,14 +685,14 @@
</table> </table>
<p>DCHIP8 aims to emulate the CHIP8 architecture to better understand at a lower level <p>DCHIP8 aims to emulate the CHIP8 architecture to better understand at a lower level
operations between memory, CPU, input and output.</p> operations between memory, CPU, input and output.</p>
<ul class=bullet-points> <ul class="bullet-points print-hide">
<li>Fetch, Decode, Execute Opcodes</li> <li>Fetch, Decode, Execute Opcodes</li>
<li>Modelling memory, registers and basic CPU architecture</li> <li>Modelling memory, registers and basic CPU architecture</li>
<li>Software Rendering and interaction with Win32</li> <li>Software Rendering and interaction with Win32</li>
<li>Minimal dependencies, single file executable</li> <li>Minimal dependencies, single file executable</li>
</ul> </ul>
<small> <small>
<ul class=citations> <ul class="citations print-hide">
<li>Specification Sheet <a href="http://devernay.free.fr/hacks/chip8/C8TECH10.HTM">devernay.free.fr/hacks/chip8/C8TECH10.HTM</a></li> <li>Specification Sheet <a href="http://devernay.free.fr/hacks/chip8/C8TECH10.HTM">devernay.free.fr/hacks/chip8/C8TECH10.HTM</a></li>
</ul> </ul>
</small> </small>
@@ -700,7 +700,7 @@
<div> <div>
<p class=job-role style="border-color: #C49A6C">2016: Dengine 2D engine for asteroids <a href="https://git.doylet.dev/doylet/dengine">git.doylet.dev/doylet/dengine</a></p> <p class=job-role style="border-color: #C49A6C">2016: Dengine 2D engine for asteroids <a href="https://git.doylet.dev/doylet/dengine">git.doylet.dev/doylet/dengine</a></p>
<table> <table class=print-hide>
<tr> <tr>
<td><img src="assets/projects_dengine_screen_1.png"></td> <td><img src="assets/projects_dengine_screen_1.png"></td>
<td><img src="assets/projects_dengine_demo.gif"></td> <td><img src="assets/projects_dengine_demo.gif"></td>
@@ -714,7 +714,7 @@
many features with minimal libraries, such that it is not too time-consuming and many features with minimal libraries, such that it is not too time-consuming and
counter-productive to do so. counter-productive to do so.
</p> </p>
<ul class=bullet-points> <ul class="bullet-points print-hide">
<li>Asset Management (load data into intermediate representations)</li> <li>Asset Management (load data into intermediate representations)</li>
<li>Audio API from OpenAL</li> <li>Audio API from OpenAL</li>
<li>Basic 2D Game Mathematics/Physics (Vector, Trig, Explicit Euler)</li> <li>Basic 2D Game Mathematics/Physics (Vector, Trig, Explicit Euler)</li>
@@ -730,7 +730,7 @@
<li>OpenGL 2D Rendering Pipeline & Batching Render Calls</li> <li>OpenGL 2D Rendering Pipeline & Batching Render Calls</li>
</ul> </ul>
<small> <small>
<ul class=citations> <ul class="citations print-hide">
<li>Handmade Hero <a href="https://handmadehero.org/">handmadehero.org</a></li> <li>Handmade Hero <a href="https://handmadehero.org/">handmadehero.org</a></li>
</ul> </ul>
</small> </small>