Update website with minimal design

This commit is contained in:
doyle 2023-02-16 23:43:27 +11:00
parent 9b2316d031
commit 47922463be
5 changed files with 272 additions and 417 deletions

View File

@ -1 +0,0 @@
# doy-lee.github.io

BIN
doylet_cv.pdf Normal file

Binary file not shown.

Binary file not shown.

View File

@ -29,6 +29,10 @@
background: #fbfbfd; background: #fbfbfd;
} }
img {
max-width: 100%;
}
h1, h1,
h2, h2,
h3, h3,
@ -66,17 +70,17 @@
border-color: rgba(0, 0, 0, 0.07); border-color: rgba(0, 0, 0, 0.07);
} }
.contact-row { .row {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
} }
.contact-row p { .row p {
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
.contact-row-key { .row-key {
width: 9ch; width: 9ch;
} }
@ -126,28 +130,43 @@
margin-left: 1.5rem; margin-left: 1.5rem;
} }
@media print {
.pagebreak {
page-break-before: always;
}
}
</style> </style>
</head> </head>
<body> <body>
<!--
Color palette
#C16358
#BEBF5E
#8DBCA2
#519A8B
#DBAE55
-->
<header> <header>
<div style=""> <div style="">
<h1><a href="https://cv.doylet.dev">doy<u style="text-decoration: none; color: #6BBAE4">-</u>lee <em class=title-note>// TODO: Doyle T.</em> </a></h1> <h1><a href="https://doy-lee.github.io">doy<u style="text-decoration: none; color: #6BBAE4">-</u>lee <em class=title-note>// TODO: Doyle T.</em> </a></h1>
<p>G'day, I'm a software developer that enjoys low-level programming.</p> <p>G'day, I'm a software developer that enjoys low-level programming.</p>
</div> </div>
<div class=divider style="margin-bottom: 0.5em"></div> <div class=divider style="margin-bottom: 0.5em"></div>
</header> </header>
<main> <main>
<section aria-label="Contact Links"> <section aria-label="Contact Links">
<div class=contact-row> <div class=row>
<p class=contact-row-key>Print Me!</p> <p class=row-key>Print Me!</p>
<p><a href="doylet.dev/doylet_cv.pdf">doylet.dev/doylet_cv.pdf</a></p> <p><a href="doy-lee.github.io/doylet_cv.pdf">doy-lee.github.io/doylet_cv.pdf</a></p>
</div> </div>
<div class=contact-row> <div class=row>
<p class=contact-row-key>Email</p> <p class=row-key>Email</p>
<p><a href="cv.doylet.2380i@simplelogin.com">cv.doylet.2380i@simplelogin.com</a></p> <p><a href="cv.doylet.2380i@simplelogin.com">cv.doylet.2380i@simplelogin.com</a></p>
</div> </div>
<div class=contact-row> <div class=row>
<p class=contact-row-key>GitHub</p> <p class=row-key>GitHub</p>
<p><a href="https://github.com/doy-lee">https://github.com/doy-lee</a></p> <p><a href="https://github.com/doy-lee">https://github.com/doy-lee</a></p>
</div> </div>
</section> </section>
@ -170,13 +189,13 @@
framework, <i>Beliefs, Desires and Intentions</i> (BDI). framework, <i>Beliefs, Desires and Intentions</i> (BDI).
My role involves improving the AI toolchain such as My role involves improving the AI toolchain such as
improving cross-agent collaboration, forward planning, improving cross-agent collaboration, forward planning,
scheduling and deconflicting of agent intentionality, scheduling and de-conflicting of agent intentionality,
its execution and distributed agent communication to its execution and distributed agent communication to
improve resilience in adversarial situations. improve resilience in adversarial situations.
</p> </p>
<ul class=milestones> <ul class=milestones>
<li>Coordinating multiple toolchain upgrades of our in-house AI frameworks, end-to-end</li> <li>Coordinating multiple toolchain upgrades of our in-house AI frameworks, end-to-end</li>
<li>Added virtual-memory backed allocators for cache locality, reduced syscalls and memory profiling</li> <li>Added virtual-memory backed allocators for cache locality, reduced sys-calls and memory profiling</li>
<li>Co-implement protocol to distribute agents onto different routing technologies (DDS & Kafka)</li> <li>Co-implement protocol to distribute agents onto different routing technologies (DDS & Kafka)</li>
<li>Responsible for the docs website with APIs & manuals, end-to-end for production releases</li> <li>Responsible for the docs website with APIs & manuals, end-to-end for production releases</li>
<li>Implement multiple discrete event simulators for verification of agent behaviours</li> <li>Implement multiple discrete event simulators for verification of agent behaviours</li>
@ -218,10 +237,10 @@
Lokinet, and, a privacy preserving messenger, Session. Lokinet, and, a privacy preserving messenger, Session.
</p> </p>
<ul class=milestones> <ul class=milestones>
<li>Rapidly learning & upskilling as their first developer in the startup to form a development methodology and hiring practices</li> <li>Rapidly learning & up-skilling as their first developer in the startup to form a development methodology and hiring practices</li>
<li>Implement a resilient server layer over new P2P gossip protocols: node de/registration & rewards, service metrics & voting</li> <li>Implement a resilient server layer over new P2P gossip protocols: node de/registration & rewards, service metrics & voting</li>
<li>Form immutable checkpoints to secure blocks using shared consensus to provide faster finalization of transfers on the network</li> <li>Form immutable checkpoints to secure blocks using shared consensus to provide faster finalization of transfers on the network</li>
<li>Create an on-chain DNS registry to map cryptogaphic keys to human readable aliases (e.g. Lokinet domains, Oxen wallets and Session aliases)</li> <li>Create an on-chain DNS registry to map cryptographic keys to human readable aliases (e.g. Lokinet domains, Oxen wallets and Session aliases)</li>
<li>Transition from Proof of Work to Proof of Stake live in production, deprecates miners for a commit-reveal scheme to generate entropy for minting blocks</li> <li>Transition from Proof of Work to Proof of Stake live in production, deprecates miners for a commit-reveal scheme to generate entropy for minting blocks</li>
<li>Ownership of release process (build/package/distribute) end to end.</li> <li>Ownership of release process (build/package/distribute) end to end.</li>
<li>Patching of 0-days and exploits & recovering from consensus failure on a live production network</li> <li>Patching of 0-days and exploits & recovering from consensus failure on a live production network</li>
@ -265,6 +284,244 @@
</small> </small>
</div> </div>
</section> </section>
<section aria-label="Projects Summary">
<h2>Projects Summary</h2>
<div class=divider style="margin-bottom: 0.5em"></div>
<div class=job-role style="border-color: #C16358">
<p class=job-role-year>2018 - Present</p>
<p><a href="#dqn-project">Dqn<a/>: C/C++ personal standard library <a href="https://github.com/doy-lee/dqn">github.com/doy-lee/dqn</a></p>
</div>
<div class=job-role style="border-color: #BEBF5E">
<p class=job-role-year>2020</p>
<p><a href="#intc-project">intc</a>: Software u128/256 bit port to C <a href="https://github.com/doy-lee/intc">github.com/doy-lee/intc</a></p>
</div>
<div class=job-role style="border-color: #8DBCA2">
<p class=job-role-year>2020</p>
<p><a href="#raylibsimd-project">RaylibSIMD<a/>: SIMD Software rendering in C <a href="https://github.com/doy-lee/RaylibSIMD">github.com/doy-lee/RaylibSIMD</a></p>
</div>
<div class=job-role style="border-color: #519A8B">
<p class=job-role-year>2017</p>
<p><a href="#dtrenderer-project">DTRenderer</a>: 3D Software rendering in C++ <a href="https://github.com/doy-lee/DTRenderer">github.com/doy-lee/DTRenderer</a></p>
</div>
<div class=job-role style="border-color: #DBAE55">
<p class=job-role-year>2017</p>
<p><a href="#mathmasher-project">Math Masher</a>: math game for mobile <a href="https://doy-lee.github.io/luneaustralia">doy-lee.github.io/luneaustralia</a></p>
</div>
<div class=job-role style="border-color: #C16358">
<p class=job-role-year>2017</p>
<p><a href="#dchip8-project">DCHIP8</a>: Chip8 interpreter <a href="https://github.com/doy-lee/dchip-8">github.com/doy-lee/dchip-8</a></p>
</div>
<div class=job-role style="border-color: #C16358">
<p class=job-role-year>2016</p>
<p><a href="#dengine-project">Dengine</a>: 2D engine for asteroids <a href="https://github.com/doy-lee/dengine">github.com/doy-lee/dengine</a></p>
</div>
</section>
<section class=pagebreak aria-label="Projects">
<h2>Projects</h2>
<div class=divider style="margin-bottom: 0.5em"></div>
<div id=dqn-project>
<div class=job-role style="border-color: #C16358">
<p class=job-role-year>2018 - Present</p>
<p>Dqn, C/C++ personal standard library</p>
</div>
<p>
My personal standard library used in personal projects
that focuses on simplicity, transparent data
structures void of crazy C++ features with minimal
dependencies on the standard libraries. The library is
orientated around avoiding unnecessary allocations e.g.
minimal calls to malloc and non-pessimized
implementations.
</p>
<ul class=milestones>
<li>Custom memory routines: arena allocator, virtual memory containers, TLS scratch allocators</li>
<li>Allocation-less string slices and string manipulation routines</li>
<li>Linear probed and chained hash tables in 400~ LOC</li>
<li>Fixed sized arrays and strings containers</li>
</ul>
<small>
<ul class=citations>
<li>Dqn Repository <a href="https://github.com/doy-lee/dqn">github.com/doy-lee/dqn</a></li>
</ul>
</small>
</div>
<div id=intc-project>
<div class=job-role style="border-color: #BEBF5E">
<p class=job-role-year>2020</p>
<p>intc, 128/256 bit software implementations in C</p>
</div>
<sub><i>C99/C++, Open Source, Single File Library Port</i></sub>
<p>
intc is a port of calccrypto's uint128/256 library into
a single header file library to allow u128/256
calculations. This port is primarily C first and
provides C++ helpers like operator overloads that are
opt in.
</p>
<small>
<ul class=citations>
<li>intc Repository <a href="https://github.com/doy-lee/intc">github.com/doy-lee/intc</a></li>
<li>calccrypto's uint256_t <a href="https://github.com/calccrypto/uint256_t">github.com/calccrypto/uint256_t</a></li>
</ul>
</small>
</div>
<div id=raylibsimd-project>
<div class=job-role style="border-color: #8DBCA2">
<p class=job-role-year>2020</p>
<p>RaylibSIMD, Accelerated software rendering using SIMD in C</p>
</div>
<sub><i>C99, SSE2, Graphics Programming</i></sub>
<p>
Raylib is a game-engine by Raysan5 whose main focus is
to make game engine programming simple and enjoyable.
In this project, I rewrote the software-rendering
routine to use SSE2/3 instructions to attain the
expected 4x speed-up by taking advantage of
data-parallelism offered by SIMD.
</p>
<small>
<ul class=citations>
<li>RaylibSIMD Repository <a href="https://github.com/doy-lee/RaylibSIMD">github.com/doy-lee/RaylibSIMD</a></li>
<li>Raylib Website <a href="https://raylib.com/">raylib.com</a></li>
</ul>
</small>
</div>
<div id=dtrenderer-project>
<div class=job-role style="border-color: #519A8B">
<p class=job-role-year>2017</p>
<p>DTRenderer, 3D software rendering from first principles</p>
</div>
<a href="img/projects_dtrenderer.gif"><img src="img/projects_dtrenderer.gif"></a>
<p>
DTRenderer is an attempt to build a simple software
renderer from the ground up. The main goal is to build
an intuitive understanding of graphics mathematics,
rendering pipeline and core concepts. It runs as a Win32
program with minimal dependencies.
</p>
<ul class=milestones>
<li>2D Software Rendering</li>
<li>Alpha Blending</li>
<li>Bilinear Filtering</li>
<li>Correct Color Space Pipeline (SRGB <-> Linear)</li>
<li>Rasterisation</li>
<li>Texture Mapping</li>
<li>Translation, Rotation, Scale</li>
<li>3D Software Rendering</li>
<li>Full Bright, Flat, Gouraud Shading</li>
<li>Orthogaphic, Perspective Projections</li>
<li>Translation Rotation Scale</li>
<li>Custom Wavefront Obj Loader (minimal subset)</li>
<li>Hot Reloadable DLL for Renderer Code (taken from Handmade Hero)</li>
</ul>
<small>
<ul class=citations>
<li>DTRenderer repository <a href="https://github.com/doy-lee/DTRenderer">github.com/doy-lee/DTRenderer</a></li>
</ul>
</small>
</div>
<div id=mathmasher-project>
<div class=job-role style="border-color: #DBAE55">
<p class=job-role-year>2017</p>
<p>Math Masher, Educational math game for mobile</p>
</div>
<div class=row>
<a href="img/projects_math_masher_screen_1.png"><img src="img/projects_math_masher_screen_1.jpg"></a>
<a href="img/projects_math_masher_screen_2.png"><img src="img/projects_math_masher_screen_2.jpg"></a>
<a href="img/projects_math_masher_screen_3.png"><img src="img/projects_math_masher_screen_3.jpg"></a>
</div>
<p>
Math Masher is a cross-platform mobile app that aims to
teach basic arithmetic skills including addition,
subtraction and multiplication by gamifying the learning
experience. The app was developed in a team using the
Cocos2DX framework in C++.
My role in the project is as the lead developer and
assisting role with asset design.
</p>
<ul class=milestones>
<li>Project management (Trello, minutes meeting, code review etc.)</li>
<li>Game engine architecture (Gameplay, UI, shopping mechanics, debug)</li>
<li>Basic sound editing (Compressor, EQuing, normalisation)</li>
<li>Asset designs (Creating graphical assets with Photoshop)</li>
</ul>
<small>
<ul class=citations>
<li>Math Masher website (archive copy) <a href="https://doy-lee.github.io/luneaustralia">doy-lee.github.io/luneaustralia</a></li>
<li>Trailer <a href="https://youtube.com/watch?v=AUozUZ8aY7g">youtube.com/watch?v=AUozUZ8aY7g</a></li>
</ul>
</small>
</div>
<div id=dchip8-project>
<div class=job-role style="border-color: #C16358">
<p class=job-role-year>2017</p>
<p>DCHIP8, Chip8 interpreter</p>
</div>
<div class="row">
<a href="img/projects_dchip8_screen_1.png"><img src="img/projects_dchip8_screen_1.png"></a>
<a href="img/projects_dchip8_screen_2.png"><img src="img/projects_dchip8_screen_2.png"></a>
</div>
<p>
DCHIP8 aims to emulate the CHIP8 architecture to better
understand at a lower level operations between memory,
cpu, input and output.
</p>
<ul class=milestones>
<li>Fetch, Decode, Execute Opcodes</li>
<li>Modelling memory, registers and basic CPU architecture</li>
<li>Software Rendering and interaction with Win32</li>
<li>Minimal dependencies, single file executable</li>
</ul>
<small>
<ul class=citations>
<li>DCHIP8 repository <a href="https://github.com/doy-lee/dchip-8">github.com/doy-lee/dchip-8</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>
</small>
</div>
<div id=dengine-project>
<div class=job-role style="border-color: #C16358">
<p class=job-role-year>2016</p>
<p>Dengine, Simple 2D game engine for asteroids & minimal dependencies</p>
</div>
<div class="row">
<a href="img/projects_dengine_screen_1.png"><img src="img/projects_dengine_screen_1.png"></a>
<a href="img/projects_dengine_demo.gif"><img src="img/projects_dengine_demo.gif"></a>
</div>
<p>
Dengine is a solo project, 2D game engine developed with
OpenGL and low-level libraries in C. The main goal of
Dengine is to facilitate learning from many aspects of
Computer Science. Alongside Dengine, Asteroids is being
built which guides the development of features for the
game. Dengine is inspired by Handmade Hero, with a focus
on developing as many features with minimal libraries,
such that it is not too time-consuming and
counter-productive to do so.
</p>
<ul class=milestones>
<li>Asset Management (load data into intermediate representations)</li>
<li>Audio API from OpenAL</li>
<li>Basic 2D Game Mathematics/Physics (Vector, Trig, Explicit Euler)</li>
<li>Collision Detection (Single Axis Theorem, Minkowski Sum/Diff, AABB)</li>
<li>Debug Services & Displays</li>
<li>Entity Component Systems</li>
<li>IMGUI Systems</li>
<li>Input Parsing</li>
<li>Push-Buffer Memory Systems</li>
<li>Small Size Array Optimisations</li>
<li>Standard Library Replacements (e.g. atoi, strlen, itoa, string)</li>
<li>Texture Atlas Support, Runtime Font Packing</li>
<li>OpenGL 2D Rendering Pipeline & Batching Render Calls</li>
</ul>
<small>
<ul class=citations>
<li>Dengine repository <a href="https://github.com/doy-lee/dengine">github.com/doy-lee/dengine</a></li>
</ul>
</small>
</div>
</section>
</main> </main>
</body> </body>
</html> </html>

401
style.css
View File

@ -1,401 +0,0 @@
/*******************************************************************************
* Globals
******************************************************************************/
* {
/* Reset all default margins and padding set by browser */
margin: 0;
padding: 0;
list-style-type: none;
color: rgba(0, 0, 0, 0.9);
font-size: 14px;
font-family: sans-serif;
/* Disable auto-resizing on load since it's unreliable. But allow resizing
* by users after the page has loaded */
-webkit-text-size-adjust: 100%;
}
p, h4 {
margin-top: 0.5em;
}
html {
margin-left: 10px;
margin-right: 10px;
}
body {
min-width: 50%;
margin: auto;
}
@media print {
html *{
font-size: 0.99em;
}
}
@media screen and (min-width: 60em) {
/* 960px / 16px == 60em (since 1em == 16px, base font size (above)) */
html {
font-size: 1.0em;
}
body {
max-width: 940px;
}
}
@media screen and (max-width: 48em) {
/* 768px / 16px == 48em (since 1em == 16px, base font size (above)) */
html {
font-size: 1.0em;
}
body {
max-width: 100%;
}
}
@media screen and (max-width: 20em) {
/* 320px / 16px == 20em (since 1em == 16px, base font size (above)) */
html {
font-size: 0.65em;
}
body {
max-width: 100%;
}
}
a:link, a:visited {
text-decoration: underline;
}
h1 {
font-weight: bold;
font-size: 2em;
}
h2
{
padding-bottom: 0.5%;
font-weight: bold;
font-size: 1.25em;
}
h3 {
font-size: 1em;
}
h1, h2, a:hover {
color: #009688;
}
.index_divider, .index_divider_no_top_margin {
background-color: #009688;
display: block;
}
/*******************************************************************************
* Index Page (index.html)
******************************************************************************/
#index_wrapper
{
margin: auto;
}
.index_divider, .index_divider_no_top_margin
{
height: 2px;
margin-top: 1em;
margin-bottom: 0.5em;
}
@media print {
#index_divider_last_before_optional_content {
page-break-after: always;
}
}
.index_divider_no_top_margin {
margin-top: 0;
}
.index_education_table_cell p,
.index_education_table_cell_year p,
.index_table_cell p,
.index_table_cell_year p,
.index_table_cell_name p,
.index_projects_summary_table_cell p,
.index_projects_summary_table_cell_name p,
.index_projects_summary_table_cell_year p {
margin-top: 0;
}
.index_projects_summary_table_cell_year p,
.index_education_table_cell_year p,
.index_table_cell_year p {
font-weight: bold;
min-width: 9ch;
}
@media screen and (max-width: 48em) {
/* 768px / 16px == 48em (since 1em == 16px, base font size (above)) */
.index_projects_summary_table_cell_year,
.index_education_table_cell_year,
.index_table_cell_year {
font-weight: bold;
min-width: 0;
}
}
.index_generic_table {
display: table;
}
.index_generic_table_row {
display: table-row;
}
.index_generic_table_cell {
display: table-cell;
}
.index_table_cell li {
list-style-type: disc;
margin-left: 1em;
}
#index_header_subtitle {
color: #009688;
font-weight: bold;
}
#index_header_subtitle a:link {
text-decoration: none;
}
/*******************************************************************************
* index_overview
******************************************************************************/
.index_overview {
margin: 0;
}
.index_overview_section {
width: 48%;
display: inline-block;
vertical-align: top;
}
#index_overview_section_qr_code > img{
min-width: 65px;
max-width: 20%;
}
@media screen and (max-width: 30em) {
/* 480px / 16px == 40em (since 1em == 16px, base font size (above)) */
.index_overview_section {
display: block;
}
}
.index_overview_section ul {
font-weight: bold;
}
/*******************************************************************************
* index_skills
/******************************************************************************/
#index_skills_table {
border-spacing: 2em 0.75em;
border-collapse: separate;
margin-left: -2em;
margin-top: -0.75em;
margin-bottom: -0.75em;
}
.index_skills_table_cell {
display: table-cell;
padding: 0.25em;
margin-right: 1em;
margin-bottom: 0.5em;
border: 2px solid #009688;
border-radius: 4px;
float: left;
}
/*******************************************************************************
* index_table
/******************************************************************************/
.index_table {
display: table;
border-spacing: 0.5em 0.75em;
border-collapse: separate;
margin-left: -0.5em;
margin-top: -0.75em;
margin-bottom: -0.75em;
}
.index_table_row {
display: table-row;
}
.index_table_cell_name,
.index_table_cell_year,
.index_table_cell {
display: table-cell;
}
.index_table_cell_name {
display: table-cell;
max-width: 15ch;
}
.index_table_cell_role {
color: #009688;
font-weight: bold;
}
/*******************************************************************************
* index_eduation
/******************************************************************************/
#index_education_table {
display: table;
border-spacing: 0.5em 0.3em;
border-collapse: separate;
margin-left: -0.5em;
margin-top: -0.3em;
margin-bottom: -0.3em;
}
.index_education_table_row {
display: table-row;
}
.index_education_table_cell,
.index_education_table_cell_year {
display: table-cell;
}
/*******************************************************************************
* index_projects
/******************************************************************************/
.index_projects_header {
padding-right: 3%;
margin-bottom: 2%;
}
.index_projects_content {
padding-right: 3%;
margin-bottom: 2%;
}
.index_projects_content ul, .index_projects_content li {
list-style-type: disc;
margin-top: 0.15em;
margin-left: 1.25em;
}
.index_projects_content_section {
margin-bottom: 1em;
}
.index_projects_preview_images {
text-align: center;
margin-bottom: 1em;
}
#index_projects_preview_images_loki img {
width: 100%;
height: 100%;
}
#index_projects_preview_images_novel img {
width: 100%;
height: 100%;
}
#index_projects_preview_images_kay_engine img {
width: 100%;
height: 100%;
}
/*******************************************************************************
* index_projects_dtrenderer
/******************************************************************************/
#index_projects_preview_images_dtrenderer img{
width: 100%;
height: 100%;
}
/*******************************************************************************
* index_projects_math_masher
/******************************************************************************/
#index_projects_math_masher h2 {
}
#index_projects_preview_images_math_masher img{
width: 33%;
height: 33%;
}
/*******************************************************************************
* index_projects_dengine
/******************************************************************************/
#index_projects_dengine h2 {
}
#index_projects_preview_images_dengine img {
width: 49.5%;
height: 49.5%;
}
@media screen and (max-width: 45em) {
/* 720px / 16px == 45em (since 1em == 16px, base font size (above)) */
#index_projects_preview_images_dengine img {
width: 95%;
height: 95%;
display: inline-block;
}
}
/*******************************************************************************
* index_projects_dchip8
/******************************************************************************/
#index_projects_preview_images_dchip8 img {
width: 49%;
height: 49%;
}
@media screen and (max-width: 45em) {
/* 720px / 16px == 45em (since 1em == 16px, base font size (above)) */
#index_projects_preview_images_dchip8 img {
width: 95%;
height: 95%;
display: inline-block;
}
}
/*******************************************************************************
* index_projects_dqn
/******************************************************************************/
#index_projects_preview_images_dqn img {
width: 100%;
height: 100%;
}
/*******************************************************************************
* index_footer
/******************************************************************************/
#index_footer {
margin-bottom: 25px;
text-align: center;
}