Hello! I am a software engineer & engineering manager with nearly 20 years focusing on performant, informative, and accessible web products and applications. My passion is the intersection of user experience + product + developer experience.
Personal Projects / OSS
Physijs
https://github.com/chandlerprall/physijsA physics plugin for Three.js that allows adding dynamic objects to the scene with little adjustment to code. Try the Jenga-inspired interactive demo.
Goblin Physics
https://github.com/chandlerprall/goblinphysicsRealtime 3D physics and collision detection engine built from the ground up in and for JavaScript.
Insula
https://github.com/chandlerprall/react-insulaState management library inspired by Redux's performance woes along with my personal negative opinion of Redux's reducer model. Was used in Crafty's video player for performance reasons.
Napoleon
https://github.com/chandlerprall/napoleonAn isomorphic JavaScript routing library using a tree structure for performance, predictability, and reporting route collisions. Was used in Crafty's isomorphic Node.js+Single Page Applications, replacing Express's routing system and ensuring server & client routing always acted identically.
Alexandria
https://github.com/chandlerprall/alexandriaStatic site generator (used by this site) built as a proof of concept while evaluating Gatsby vs. Next.js for projects at Elastic. Alexandria consumes MDX source files + custom components and outputs static HTML+CSS+JS. Client side JavaScript is enabled through a novel Dynamic component which creates a js bundle to only hydrate its children.
Sagebrush Engine
https://github.com/chandlerprall/sagebrush-engineAn electron based app/game engine with hot code reloading, managed state, and export for web. Red Dot is an example game with its source on github.
Sagebrush IDE
https://github.com/chandlerprall/sagebrushA way for me to explore programming language design, parsing, and the Monaco editor. Includes a custom regex engine for tokenizing, repurposed for parsing expressions. Pre-defined programs for parsing JSON and tables are available at ide.chandlerprall.com
Work History
Elastic
I joined Elastic as the first engineer fully dedicated to the Elastic UI React component library. The team continued growing to 2 designers and 4 engineers, with myself as the team lead.
While EUI was my primary area, our attention to accessibility brought me into the cross-team accessibility working group and coordinating some accessibility-related efforts across products.
Within these roles I worked with product & other leads to understand requirements, participate in and empower cross-team collaboration, and contribute through pairing, mentoring, and authoring code.
Craftsy
My primary role at Craftsy was providing technical leadership and mentorship to the front end developers, including pair programming, reviewing pull requests, and leading the team through larger codebase updates. I played an instrumental part in growing the front end team from 2 to 15 engineers.
This involved working closely with our devops and backend teams to ensure we aligned on company goals; as part of this I was a member of the SRE team, providing expertise around our nodejs, web, and CDN layers.
Outside of engineering, I worked with other business departments and individuals to gain a better understanding of the business as a whole, which improved the front end team’s impact.
SheKnows
Worked closely with product and business leads to build and implement new user- and internal- facing features, coordinating with back end and database engineers, playing a key role in a global redesign that saw a 15% lift in return visitors and in a project that cut our landing page development time down from 3 weeks to a couple days.
Weaver Multimedia Group
Was part of a two-person team to overhaul the website’s look & feel, and maintained data import scripts which powered our key product.
Active Website
In charge of the import and storage of real estate data from dozens of MLS sources across the U.S. I worked with design, front end, and back end teams to understand their needs and reliably deliver transformed data across various systems. I also provided JavaScript assistance to our team building Waste Management’s business-facing waste disposal portal.