Ned Bingham
545 Warfield Road, North Plainfield NJ
edward.bingham@yale.edu
(812) 606-2407

nedbingham.com
github.com/nbingham1
stackoverflow.com/users/241910
Highly accredited computer engineer with experience across the full stack including digital circuit design, computer architecture, assembly, systems programming, database systems, computer graphics, distributed systems, and both front and back end web development. Quick to learn, highly focused, and easily motivated. Open to criticism as an opportunity for self improvement. Ready to bring new ideas to the table and apply this extensive skill set.

Experience

Google

Software Engineering Intern

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.

Sunnyvale, CA

May 2018 - Aug 2018

Mountain View, CA

May 2016 - Aug 2016

Qualcomm Research and Development

Intern

Research into self-timed bit-parallel multiplier architectures, taking advantage of irregular data patterns to yield a variety of high throughput solutions.

San Diego, CA

Jun 2014 - Sep 2014

Intel Corporation

Pre-Silicon Validation Engineer

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.

Hudson, MA

May 2012 - Aug 2012
Sep 2011 - Jan 2012

Architecture Technology Corporation

Intern

Development of scripts and Java plugins to extend support for two computer forensics tools: RouterMarshal and P2PMarshal.

Ithaca, NY

May 2010 - Aug 2010

Indiana University's Perception Action Lab

Lab Programmer

Implemented a variety of displays for scientific experiments in human perception that have since been published. Developed other tools including a program to help assign teaching assistants, a tool for analysis of bacterial cultures, and the website for the lab.

Bloomington, IN

2008 - 2009

Publications

Self-Timed Adaptive Digit-Serial Addition [doi, html, pdf, srcdoi:10.1109/TVLSI.2019.2918441]

IEEE Transactions on Very Large Integrated Systems
Ned Bingham, Rajit Manohar

2019

QDI Constant Time Counters [doi, html, pdf, srcdoi:10.1109/TVLSI.2018.2867289]

IEEE Transactions on Very Large Integrated Systems
Ned Bingham, Rajit Manohar

2018

Breaking camouflage and detecting targets require optic flow and image structure information [doi, pdfdoi:10.1364/AO.56.006410]

The Optical Society of America
Jing Samantha Pan, Ned Bingham, Chang Chen, and Geoffrey P. Bingham

2017

Embodied memory allows accurate and stable perception of hidden objects despite orientation change [doi, pdfdoi:10.1037/xhp0000392]

American Psychological Association
Jing Samantha Pan, Ned Bingham, Geoffrey P. Bingham

2017

Optical information for accurate perception of objects with orientation change [uriir.psych.ac.cn/handle/311026/20820]

Institute of Psychology, Chinese Academy of Sciences
Jing Samantha Pan, Ned Bingham, Geofrey P Bingham

2016

Embodied Memory: Effective and Stable Perception By Combining Optic Flow and Image Structure [doi, pdfdoi:10.1037/a0032070]

American Psychological Association
Jing Samantha Pan, Ned Bingham, Geoffrey P. Bingham

2013

Object Recognition Using Metric Shape [doi, pdfdoi:10.1016/j.visres.2012.07.013]

Elsevier Vision Research
Young-Lim Lee, Mats Lind, Ned Bingham, Geoffrey P. Bingham

2012

Education

PhD Candidate, Computer Engineering

Yale University

I am researching how to leverage average workload characteristics to optimize energy and throughput. In the Spec2006 benchmark, 320 instructions account for 60% of the instruction execution count. Further, 46% of instructions are integer operations, the average bitwidth of which is 13 bits. I hypothesize that a statically mapped asynchronous digit-serial CGRA can realize significant optimizations for general compute.

New Haven, CT

Apr 2017 - Present

Masters of Science, Computer Engineering

Cornell University
GPA 4.00

QDI design offers a unique pathway for describing circuitry algorithmically rather than structurally and automatically synthesizing that circuit through a set of formal transformations. I worked toward implementing the lower abstractions and associated tranformations of this pathway, designing a simulator, state space elaborator, and state conflict checker for Handshaking Expansions (HSE) along with partial implementations for unique state encoding, and guard strengthening.

Fall 2014 Subject Number Median Enrolled Credits Grade
Introduction to Database Systems CS 5320 3.00 A-
Mobile and Ubiquitous Computing CS 5454 4.00 A
Spring 2014 Subject Number Median Enrolled Credits Grade
Combinatorial Optimization ORIE 6334 0.00 V
Fall 2013 Subject Number Median Enrolled Credits Grade
Parallel and Distributed Computing CS 5460 3.00 A

New York, NY

May 2013 - Apr 2017

Bachelor of Engineering, Computer Engineering

Cornell University
GPA 3.29

Spring 2013 Subject Number Median Enrolled Credits Grade
Ancient Peoples and Places ANTHR 1200 (B+) 108 3.00 C+
Introduction to Controlled Fusion ECE 4840 (A-) 22 3.00 A-
ECE Independent Project ECE 4999 (A) 36 4.00 A
International Trade and Finance ECON 2300 (B) 252 3.00 C
Introduction to Linguistics LING 1101 (B+) 40 4.00 B
Intermediate Tae Kwon Do PE 1376 1.00 SX
Fall 2012 Subject Number Median Enrolled Credits Grade
Human Computer Interaction Design COMM 3450 (A-) 84 3.00 B+
Computer Architecture ECE 4750 (A-) 45 4.00 B+
Advanced Digital VLSI ECE 5740 4.00 A+
Intermediate Tae Kwon Do PE 1376 1.00 SX
Death of God RELST 3342 (B+) 31 4.00 B+
Spring 2012 Subject Number Median Enrolled Credits Grade
Introduction to Microelectronics ECE 3150 (B-) 86 4.00 C-
Networks and Telecommunications ECE 4450 (A) 95 4.00 B+
Digital VLSI Design ECE 4740 (B+) 45 4.00 B+
Digital System Design using Microcontrollers ECE 4760 (A) 92 4.00 A
Intermediate Tae Kwon Do PE 1376 1.00 SX
Summer 2011 Subject Number Median Enrolled Credits Grade
Operating Systems CS 4410 3.00 A-
Electromagnetic Fields and Waves ECE 3030 4.00 B
Probability and Inference ECE 3100 4.00 B
Statics and Mechanics of Solids ENGRD 2020 4.00 B+
Spring 2011 Subject Number Median Enrolled Credits Grade
Signals and Systems ECE 2200 (B) 95 4.00 A-
Introduction to Digital Logic Design ECE 2300 (B) 46 4.00 A-
ECE Practice and Design ECE 2400 (A-) 71 3.00 A
Computer Organization ECE 3140 (B+) 99 4.00 B+
Tango PE 1167 1.00 SX
Intermediate Tae Kwon Do PE 1376 1.00 SX
Swedish Massage PE 1412 1.00 SX
Fall 2010 Subject Number Median Enrolled Credits Grade
Introduction to Circuits ECE 2100 (B+) 66 4.00 B+
Object Oriented Programming and Data Structures ENGRD 2110 (B+) 193 3.00 A
Violet Satellite Team MAE 4900 (A) 160 3.00 B+
Differential Equations MATH 2930 (B) 370 4.00 B
Swim Conditioning PE 1104 1.00 SX
Judo PE 1355 1.00 SX
Intermediate Tae Kwon Do PE 1376 1.00 SX
Oscillations, Waves, and Quantum Physics PHYS 2214 (B+) 124 4.00 B+
Spring 2010 Subject Number Median Enrolled Credits Grade
Engineering General Chemistry CHEM 2090 (B) 141 4.00 B+
Transition to Object Oriented Programming CS 1130 1.00 SX
Serial Novel Goes Graphic ENGL 1123 (A-) 33 3.00 B
Introduction to Nanoscience and Nanoengineering ENGRI 1200 (A) 33 3.00 B
Violet Satellite Team MAE 4900 (A) 190 3.00 A-
Linear Algebra for Engineers MATH 2940 (B) 354 4.00 B-
Intermediate Tae Kwon Do PE 1376 1.00 SX
Electricity and Magnetism PHYS 2213 (B+) 172 4.00 A-
Fall 2009 Subject Number Median Enrolled Credits Grade
Introduction to Architecture ARCH 1301 (A) 155 3.00 B+
Introduction to Computing using Matlab CS 1112 (B) 262 4.00 A-
Write about Film ENGL 1108 (A-) 64 3.00 B
Engineering Seminar ENGRG 1050 1.00 SX
Special Investigations into MAE MAE 4900 (A) 221 0.00 NGR
Multivariable Calculus for Engineers MATH 1920 (B) 455 4.00 B-
Tae Kwon Do PE 1375 1.00 SX
Introduction to Special Relativity PHYS 2216 1.00 SX

Ithaca, NY

Aug 2009 - May 2013

Projects

Haystack (QDI Circuits, Compilers, C++)

github.com/nbingham1/haystack

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.

Blaze Game Engine (C++, GLSL, OpenGL)

github.com/nbingham1/Blaze

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.

Patch (Python, NLP)

github.com/debatable-media/Patch

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.

www.FickleFridge.com (PHP, Javascript, Web-Scraping)

github.com/nbingham1/ficklefridge

A recipe website that calculates the ingredients that are more likely to be in a recipe with the list of ingredients you have already selected.

Toy Neuron (C, Electronics)

nbingham1.github.io/neuron

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.

Boolean (C++, Bit-Manipulation)

github.com/nbingham1/boolean

A library for fast many-variable boolean operations. This encodes four-valued variable using two bits (00 is error, 01 is false, 10 is true, and 11 is unknown), packing 16 variables into a single integer so they can be operated on in parallel.

Standard Core (C++)

github.com/c-cores/stdcore

A standard library unintentionally grown over the course of 14 years. In particular, this library implements generic slices by wrapping any container of iterators.