From 5d5e69991e075e40e3a1b4c7ec6e3271ca081d90 Mon Sep 17 00:00:00 2001 From: doyle Date: Wed, 15 Feb 2023 00:13:00 +1100 Subject: [PATCH] Start working on draft of new website --- index.html | 705 ++++++++++------------------------------------------- 1 file changed, 135 insertions(+), 570 deletions(-) diff --git a/index.html b/index.html index 089ba96..c0eb4d9 100644 --- a/index.html +++ b/index.html @@ -1,584 +1,149 @@ - - - + + - - - - - Doyle T. | Resume + - - + +
+
+

Doyle T.

+

G'day, I'm a software developer that enjoys low-level programming.

+
+
- -
+
+

Links

+
+ +
+
+

Tenure

+
-

DOYLE T.

+
+

2022 - Present

+

AI, C++ Senior Software Engineer, Agent Orientated Software (AI)

+
-
- Print Friendly Summary: doy-lee.github.io/doylet_resume_summary.pdf +
+
+

2020 - 2022

+

AI, C++ Software Engineer, Agent Orientated Software (AI)

+
+

+ AOS creates tools for creating trustable and explainable + AI using multi-agent architecture and the cognitive + framework Beliefs, Desires, Intentions (BDI). My role + involves improving AI toolchain such as improving + cross-agent collaboration, forward planning, scheduling + and deconflicting intention execution and distributed + agent communication to improve resilience in adversarial + situations. +

+

+

-
- -
- -
-
-

DETAIL

+
+
+

2018 - 2020

+

C++ Software Engineer, Oxen (Blockchain)

+
+

+ Oxen is a non-for-profit, open-source company developing + privacy protocols and tools. I implemented + a decentralized layer of servers known as the Service + Node[1] network that distributes the blockchain and + maintains layer access-control. They coordinate + peer-to-peer to evict underperforming and malicious + peers whilst generating entropy for securing blocks + using checkpointing[2] and a commit-reveal scheme known + as Pulse[3]. +

+

+ With over 1k+ servers and growing, the Service Node + network provides a sybil-resistant foundation to + facilitate a privacy preserving onion routing network, + Lokinet, and, a privacy preserving messenger, Session. +

-
- - - -
-

RESUME QR CODE

- -
-
- -
- -
-

WORK EXPERIENCE

- -
-
    -
  • -

    CURRENT

    -

    2020 OCT

    -
  • - -
  • -

    AOS Group

    -

    Software Engineer

    -
  • - -
  • -

    - AI Toolchain/Planning Engine Team: - (aosgrp.com) -

    -

    - AOS creates tools to model real-world systems via reasoning agents - running in AOS's real-time BDI (Beliefs, Desires, Intentions) - planning engine providing fault-tolerant, traceable and - explainable autonomous real-world systems. -

    -
      -
    • C++11, Kafka, RTI DDS, SFML, Dear ImGui, BDI/Multi-Agent Protocols, Windows/Linux
    • -
    • - Write a 2D simulation engine w/ ECS for tests and - demonstration of interactive agent models. -
    • -
    • - Converting real-world system specs to a multi-agent - paradigm to highlight deficiencies in the development - methodology leading to new protocols such as how to share - beliefs between teams of agents and interactive human - contribution into agent decision making. -
    • -
    • - Co-implement a distribution protocol for the planning engine - allowing the synchronisation of other engine instances for - fault-tolerance and cross-engine agent collaboration. -
    • -
    • - Documenting best practices and tutorials for designing effective - multi-agent systems. -
    • -
    -
  • -
- -
    -
  • -

    2020 OCT

    -

    2018 FEB

    -
  • - -
  • -

    Oxen (prev. Loki)

    -

    Software Engineer

    -
  • - -
  • -

    - Blockchain Team - (github.com/oxen-io/oxen/commits?author=Doy-lee) -

    -

    - Oxen is a blockchain company that creates privacy tools that enable - untraceable, secure and anonymous money, onion routed messaging and - networks powered by a masternode network on-top of the blockchain. -

    -
      -
    • C++14, Boost, Docker, CMake, Libsodium, Monero/Cryptonote, Windows/OSX/Linux/Android
    • -
    • - Implement layer 2 masternodes which are quorums of - permissioned nodes via new chain protocols: de/registration and - payout transactions and self-regulating consensus with - reliability metrics and voting via a P2P gossip network. -
    • -
    • - Improve chain resilience by securing blocks using checkpoints - formed by masternode consensus providing faster settlement and - finalization of transactions on the network. -
    • -
    • - Implement an on-chain DNS registry for named records for - wallets, messaging aliases and domains on the onion routed - networks. -
    • -
    • - Transition from Proof of Work to Proof of Stake - on a decentralized network using a commit-reveal scheme for - generating non-exploitable entropy for block generation. -
    • -
    • - Responsible for building, packaging and distribution of - releases. Patching vulnerability disclosures and fixing - network stalls on an in production network. -
    • -
    • - Fix/improve/create test tooling for the Service Node network - including a re-write of the Monero testing framework and - integration tests using IPC named pipes over multi-process. -
    • -
    -
  • -
- -
    -
  • -

    2017 NOV

    -

    2017 AUG

    -
  • - -
  • -

    Wargaming

    -

    Intern SWE

    -
  • - -
  • -
      -

      - Client Tools Team - (wargaming.com/en/about/) -

      -
    • Assisting with the game editor for the asset pipeline involving C++11, Qt, Jira, Perforce, Plastic
    • -
    -
  • -
- -
-
- -
- -
-

SIDE PROJECTS

- -
- -
    -
  • -

    ONGOING

    -
  • - -
  • -

    Dqn Library

    -
  • - -
  • -

    - Personal Utility Library C++ - (github.com/doy-lee/dqn) -

    -
      -
    • Helpers to bootstrap projects quickly and improving my API design by experience
    • -
    • Cache friendly stack based containers for data that has a low upper-bound
    • -
    • Arena based allocators for manual, cheap heap allocation and freeing
    • -
    • For learning, SHA3-256, unit test, C/C++ metaprogram generator library
    • -
    -
  • -
- - - -
-
- -
-
-

EDUCATION

- -
-
-
- - -
- -
-
-

OXEN (formerly Loki) - Privacy tools for untraceable, secure and anonymous communications

-
- -
-
-
- -
- -
-

SUMMARY

-

- Oxen is a blockchain company that creates privacy tools that enable - untraceable, secure and anonymous money, onion routed messaging and - networks powered by a masternode network on-top of the blockchain. -

- -

- They are an open-source, non-for profit company that is responsible for - developing the Oxen blockchain, Session a private messenger and Lokinet - an onion routing network. -

- -

- As the primary blockchain engineer, I worked towards developing a - masternode network and auxiliary features that protects the network from - malicious activity, tampering and allow nodes to enter and leave the - permissioned network to maintain a sybil resistant network that is - suitable for onion routing of the services provided on-top. -

-
- -
-

MILESTONES

-

Service Node Network (Masternode Layer)

- https://docs.oxen.io/about-the-oxen-blockchain/oxen-service-nodes -
    -
  • Implement layer 2 masternodes which are quorums of permissioned nodes via new chain protocols: de/registration and payout transactions and self-regulating consensus with reliability metrics and voting via a P2P gossip network.
  • -
  • Design new cryptographic transactions for Service Node registration/blacklisting/unlocking/voting
  • -
  • Penalizing misbehaving Service Nodes by temporary locking of registered funds and rewarding behaving Service Nodes with automatic on-chain
  • -
  • Keep the network consistent against malicious Service Nodes by gracefully rolling back state and banning.
  • -
  • Develop a node grouping system aka. quorums to self-regulate the network by collecting metrics and coming to consensus to deregister nodes off the network
  • -
  • JSON RPC API for statistics used by external services for metrics (i.e. CoinMarketCap, Masternodes Pro, lokidashboard.com)
  • -
- -

Service Node Checkpointing

- https://github.com/oxen-io/oxen-improvement-proposals/blob/master/LIPS/LIP-3.md -
    -
  • Improve chain resilience by securing blocks using checkpoints formed by masternode consensus providing faster settlement and finalization of transactions on the network.
  • -
  • Defend against 51% attacks on the blockchain and mitigate double spends
  • -
  • Additional consensus rules to lock in blocks autonomously by Service Nodes
  • -
  • Improves the previous manual system of updating hardcoded lists per release to passively locking the chain as it progresses.
  • -
- -

Oxen Name System

- https://docs.oxen.io/using-the-oxen-blockchain/overview#oxen-name-system-ons-human-readable-names-for-session-lokinet-and-more -
    -
  • Implement an on-chain DNS registry for named records for wallets, messaging aliases and domains on the onion routed networks.
  • -
  • New transactions to burn funds and record temporarily owned name entries into the blockchain
  • -
  • Interop with Libsodium and Monero cryptography for encryption/decryption of records
  • -
  • End User API for integration across external services such as Session, wallet software and Lokinet
  • -
- -

Pulse (Proof of Stake)

- https://github.com/oxen-io/oxen-improvement-proposals/blob/master/LIPS/LIP-5.md -
    -
  • Transition from Proof of Work to Proof of Stake on a decentralized network using a commit-reveal scheme for generating non-exploitable entropy for block generation.
  • -
  • Coordinate a commit reveal scheme to generate and collect entropy from a quorum of nodes within an time-limited epoch for block generation
  • -
  • Multi-round process to synchronise data, prevent leaking of random entropy and ensure no biasing of results
  • -
  • Fail safe mechanisms to support round failure, and network failure, i.e. falling back to Proof of Work when the Service Nodes are unable to coordinate the quorum
  • -
- -

Other

-
    -
  • Loki Onion Blockchain Explorer - Forked and repurposed for additional Service Node information
  • -
  • Loki Integration Tests - Multi-process IPC to blockchain daemons to simulate user interaction
  • -
  • Loki RPC Doc Generator - Custom Recursive Descent Parser for generating documentation
  • -
  • Rewriting core testing framework to extensively test new Service Node features
  • -
  • Handling cross platform builds, CI and distribution (Windows, Linux, OSX, Android)
  • -
-
- -
-

LINKS

- -
- -
-
-
-
- -
-
-

DTRENDERER (2017) - 3D Software Renderer from First Principles

-
- -
- -
- -
-
-

SUMMARY

-

- 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. -

-
- -
-

MILESTONES

-

2D Software Rendering

-
    -
  • Alpha Blending
  • -
  • Bilinear Filtering
  • -
  • Correct Color Space Pipeline (SRGB <-> Linear)
  • -
  • Rasterisation
  • -
  • Texture Mapping
  • -
  • Translation, Rotation, Scale
  • -
-

3D Software Rendering

-
    -
  • Full Bright, Flat, Gouraud Shading
  • -
  • Orthogaphic, Perspective Projections
  • -
  • Translation Rotation Scale
  • -
-

Misc.

-
    -
  • Custom Wavefront Obj Loader (minimal subset)
  • -
  • Hot Reloadable DLL for Renderer Code (taken from Handmade Hero)
  • -
  • SIMD "Optimisation" (with a grain of salt, tried to with some % improvement)
  • -
-
- -
-

LINKS

-
    -
  • Github (github.com/Doy-lee/DTRenderer)
  • -
+
+
+

2017 - 2017

+

C++ Intern Software Engineer, Wargaming Sydney (Game Dev)

- +

+ Game development company most popular for developing + World of Tanks. I was in the tools team assisting with + the development of the editor for the asset pipeline. +

-
- -
- -
-
-

MATH MASHER (2017) - Educational Mobile Math Game

-
- -
- - - -
- -
-
-

SUMMARY

-

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 is - developed with a team using the Cocos2dx framework in - C++.

- -

My role in the project is as the lead developer and - assisting role with asset design.

-
- -
-

MILESTONES/RESEARCH

-

Features that have been implemented at one point or tasks responsible for.

-
    -
  • Project Management (Trello, Minutes Meeting, Code Review etc.)
  • -
  • Game Engine Architecture (Gameplay, UI, Shop, Debug)
  • -
  • Basic Sound Editing (Compressor, EQuing, Normalisation)
  • -
  • Asset Designs (Assisting with graphical asset creation)
  • -
-
- -
-

LINKS

- +
+
+

2014 - 2017

+

B. Computer Science, University of New South Wales

-
-
- -
- -
-
-

DCHIP8 (2017) - CHIP8 Interpreter

-
- -
- - -
- -
-
-

SUMMARY

-

DCHIP8 aims to emulate the CHIP8 architecture to - better understand at a lower level operations between - memory, cpu, input and output.

-
- -
-

MILESTONES/RESEARCH

-
    -
  • Fetch, Decode, Execute Opcodes
  • -
  • Modelling memory, registers and basic CPU architecture
  • -
  • Software Rendering and interaction with Win32
  • -
  • Minimal dependencies, single file executable
  • -
-
- -
-

LINKS

- -
- -
-
- -
- -
-
-

DENGINE (2016) - Basic 2D Engine

-
- -
- - -
- -
-
-

SUMMARY

-

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.

-
- -
-

MILESTONES/RESEARCH

-

Features/research that have been implemented at one point in the making of the engine.

-
    -
  • Asset Management (load data into intermediate representations)
  • -
  • Audio API from OpenAL
  • -
  • Basic 2D Game Mathematics/Physics (Vector, Trig, Explicit Euler)
  • -
  • Collision Detection (Single Axis Theorem, Minkowski Sum/Diff, AABB)
  • -
  • Debug Services & Displays
  • -
  • Entity Component Systems
  • -
  • IMGUI Systems
  • -
  • Input Parsing
  • -
  • Push-Buffer Memory Systems
  • -
  • Small Size Array Optimisations
  • -
  • Standard Library Replacements (e.g. atoi, strlen, itoa, string)
  • -
  • Texture Atlas Support, Runtime Font Packing
  • -
  • OpenGL 2D Rendering Pipeline & Batching Render Calls
  • -
-
- -
-

LINKS

-
    -
  • Github (github.com/Doy-lee/Dengine)
  • -
-
- -
-
-
- - +
+
+