Skip to content
View PJensen's full-sized avatar

Organizations

@DotNetHack

Block or report PJensen

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
PJensen/README.md

PJensen

Software architect at Harvard Management Company. I design systems that make institutional-scale portfolio management transparent and navigable — bridging human judgment with structured data where the stakes are real.

I've been writing code for thirty years. BASIC in fourth grade, C by sixth, inline x86 assembly by sixteen — plotting pixels to 0xA000 on an 80386 using shift-add multiplication picked up from a book I found at the Salvation Army. The reference books are still in the garage.

Since then: Acadia University (CS), cross-platform systems across GNU/Linux, Win32, HP-UX, and Solaris, sixteen years of C#/.NET, and a long arc through Python, JavaScript, and whatever the problem demands. I care about the layer underneath — the primitives, the state model, the thing hiding below the abstraction everyone's excited about.

I also paint, sculpt, ski, drum, and grow rare medicinal plants. My grandmother taught me to work with my hands across every medium. Each one reinforces the same principle: precision and creativity aren't opposites — they sharpen each other.


Projects

ecs-js — A tiny, deterministic Entity–Component–System core in pure JavaScript. Zero dependencies. No build step. Fourteen source files.

  • Caller-driven ticking — the library has no opinion about time
  • Phase-agnostic system scheduling with topological ordering (before/after declarations)
  • Seeded PRNG (mulberry32) + deferred structural mutations = full determinism
  • Snapshot/restore for time travel, replays, and branching
  • Archetypes, hierarchy management, cross-world entity references
  • Query builder with where, project, orderBy, offset, limit
  • Entity-local scripting via handler tables with event routing and error capture
  • Storage flexibility: map for clarity, soa for throughput

Built for simulations, agent-driven systems, and complex interactive state — not just games, though it handles those too.

js-hack — A spiritual successor to NetHack, built on ecs-js. Roguelike mechanics as an architectural stress test.

DotNetHack — The earlier attempt — a .NET roguelike from 2012 that started the thread.


Writing

I publish on Substack — essays on system architecture, AI substrate problems, institutional dynamics, and the practice of looking underneath.


   

Pinned Loading

  1. ecs-js ecs-js Public

    Entity–Component–System architecture for JavaScript Zero dependencies. No build step. Deterministic, phase-agnostic, and caller-driven — your loop, your rules.

    JavaScript 2

  2. JSHack JSHack Public

    JavaScript

  3. ImageFeedMiner ImageFeedMiner Public

    A system-tray windows application that pulls images from online cameras. By default it's pointed at several views of Mt. Washington.

    C# 1

  4. Elliptic Curves Elliptic Curves
    1
    # Authors: Pete Jensen, Natasha Mandryk (math)
    2
    class ECurve:
    3
        def __init__(self, p, a, b):
    4
            # Define basic variables, coefficients and prime p.
    5
            # (y^2 mod p) = (x^3 + ax + b) mod p
  5. Hex2 Hex2 Public

    Hex game for DOS; written for Borland Turbo C V4.5.2 (last build 2008)

    C 1

  6. DotNetGUI DotNetGUI Public

    Console GUI Framework

    C# 5