End to end development of the emoji picker for chat.google.com in 2018 from database schema and server-side handlers to client-side behavior, layout, and animations with both unit and integration tests. Design and implementation of a complete development environment and standard circuit library for self-timed circuits in 2016 with automatic test generation supporting mixed-signal simulation.
Research into self-timed bit-parallel multiplier architectures, taking advantage of irregular data patterns to yield a variety of high throughput solutions.
Design of tests and test coverage for the power controller of the Haswell architecture in 2012 and low level cache of the Ivytown architecture in 2011. Design and implementation of a static analysis tool to automatically generate tests from coverage reports.
Research toward a statically-mapped self-timed digit-serial CGRA with the goal of leveraging average workload characteristics to optimize energy and throughput for general compute.
Implemented many low level abstractions and transformations necessary for automatic circuit synthesis from behavioral rather than structural descriptions including a simulator, state space elaborator, and state conflict checker for Handshaking Expansions (HSE) along with partial implementations for unique state encoding, and guard strengthening.
A synthesis engine for Quasi-Delay Insensitive circuits. Circuits are described as an abstract behavioral model in CHP and formal transformations are applied to synthesize a CMOS circuit.
A rendering engine for large randomly generated planets. The planet is an icosohedron (2o triangles) where each side is subdivided and random heights added as the player gets closer to the surface.
A text summary tool that extracts a vector of nouns or topic from a sentence then calculates the semantic distance between the topics of two sentences. A four-sentence window is slid over the text producing a graph of topic distance in which local minima represent paragraph boundaries. Summary sentences that best cover the topic are selected from each paragraph and concatenated allowing for the process to be repeated.
A friend and I made four small neuron toys that can be connected together to form a simple neural network. Upon firing, a large set of LEDs along the axon and dendrites light up in sequence to show the depolarization as it travels from one neuron to the next.