Senior Software Engineer concentrating on the .NET framework and C#.

My GitHub:

    • A declarative approach to creating RESTful web services which are backed by an MS SQL Server.
    • Entirely asynchronous execution using .NET 4.5 and new C#5 async/await features.
    • Describes a simple set of services and methods which are implemented by SQL SELECT queries with results serialized as JSON.
    • Runs on my REST0 framework which is an independent web host using HttpListener API (does not require IIS nor ASP.NET nor any other framework or host application).
    • Invented HSON format for storing JSON in a more human-readable way with comments, multi-line string literals, and external import functionality.
  • IVO
    • Immutable Versionable Objects.
    • An implementation of the git object model for .NET 4.5 which can be persisted to a MS SQL Server database or a local filesystem.
    • Entirely asynchronous implementation.
    • Avoids exception throwing using functional-programming-inspired data structures (Either, Maybe, etc.).
    • A very basic web content (HTML) management system implemented on top of IVO.
    • Written in C#5 on .NET 4.5.
  • q.ashx
    • Single file deployment of a web handler (ashx file) which accepts SQL queries to execute via the query-string and asynchronously executes them against the SQL server and serializes results to JSON.
    • Written in C# on .NET 3.5SP1 for ASP.NET.
    • Entirely asynchronous implementation.
  • Clicker
    • Simple C# console application to generate a metronome click-track.
    • Uses a source MIDI file which describes tempo changes and time signature changes.
    • Exports track as a standard RIFF WAVE file.
    • Sample-accurate timing.
    • I was fed up with broken implementations of metronomes in popular DAW software, especially those that don’t let you export the click  as its own track (e.g. Cakewalk Sonar), so I wrote this to solve that problem.
  • Solstice 3D Visualizer
    • An application which visualizes the 3D room data from the original NES title “Solstice” in true 3D.
    • Written in C# with OpenTK framework for OpenGL bindings.
    • Requires the original NES ROM file to pull data from.
  • Blaster Master retro reimplementation (partial)
    • A faithful recreation of the NES title “Blaster Master” on PC.
    • Written in C/C++ with OpenGL, intended to be cross-platform.
    • Abandoned due to time constraints.
    • Comes with a functional map editor to create your own maps in the spirit of the original game.

Contributions to Open-Source Software Projects:

  • Dolphin Wii emulator:
    • SSE2-optimized texture decoder code.
    • All code attributed to or noted by “JSD” is mine.
    • Resulted in significant overall speedups for game emulation.
    • My AMD CPU at the time was limited to only the SSE2 instruction set so I did not pursue SSE3+ optimizations.
  • OpenRA:
    • An open-source clone of original 1995 release of Command & Conquer: Red Alert for modern PCs.
    • Several branches exist, one per feature/improvement.
    • Most branches have been rebased onto the upstream ‘bleed’ branch.
    • Main concentration was on improving Harvester unit AI to alleviate the player from having to babysit them. Changes are:
      • Harvesters do not search the entire map for the next patch of resources to harvest, but limit their search to a default radius from the last harvested patch.
      • Harvesters “communicate” with other friendly harvesters using a claim system to mark which resource cells they intend to harvest to prevent harvester collisions.
      • A selected group of harvesters told to harvest a single target location automatically distribute their targets around the selected target cell to prevent collisions.
      • Harvesters auto-select the “best” refinery to return to, balanced by number of harvesters already headed there vs. distance to the refinery, capped at 3 harvesters per refinery.
      • Empty harvesters wait around for regenerative resources to regenerate in order to collect and return them rather than sitting idle waiting for player intervention.
      • Non-empty harvesters return to refineries early if there are no resources nearby to collect rather than sitting idle waiting for player intervention.
    • Made several other smaller improvements:
      • A* debug overlay mode which shows how often a cell is visited by the A* algorithm.
      • A* improvements to allow units to path together as groups headed in generally the same direction.
      • Units scatter to avoid projectiles.
      • Units path around dangerous zones created by splash-damaging projectiles.
      • Units stop certain suicidal behaviors such as finding the point-blank firing range to attack an enemy at.


Loading Facebook Comments ...

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    Markdown is turned off in code blocks:
     [This is not a link](

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see