Nicholas Paul Johnson
Computer Science Department
Princeton University
Princeton, NJ 08540 USA
cell: +1-434-***-****
********@**.*********.***
http://www.cs.princeton.edu/ npjohnso
Education
Graduate Student of Computer Science at Princeton University, September 2008 present. Part of
the Liberty Research Group, under advisor David August. Relevant course work: programming languages,
theory of computation, and arti cial intelligence.
B.S. in Computer Engineering with a minor in Applied Mathematics from the University of Virginia,
Class of 2005. Thesis Title: Development of a tool for pre-veri cation of con guration for a data-driven
software system.
Technical Skills
Extensive experience in computer programming in C/C++, Java, C#, Ruby, Python, Standard ML
on Linux, Windows, Palm Pilot and RIM Blackberry, and on embedded systems such as MSP430 and
PIC16.
Experience in digital and analog circuit design using Spice, VHDL; experience with FPGAs.
Experience in web technologies, including SQL relational databases, computer networking and network
design, Web Services, Web 2.0 Technologies.
Professional Experience
Research Intern at Microsoft Research Lab India. June August 2009. Advisor: Ganesan Rama-
lingam. Explored the uses of concolic execution for speci cation inference, and combining speci cations
for multiple implementations of a single algorithm.
Graduate Student of Computer Science at Princeton University. September 2008 present. Advisor:
David August. Implemented the Decoupled Software Pipelining (DSWP) analysis, the Multi-Threaded
Code Generation (MTCG) transformation, and On-Stack Replacement (OSR) within the Low-Level
Virtual Machine (LLVM) compiler infrastructure.
Software Engineer for mSnap. February September 2008. Redeveloped signi cant portions of the
mobile message processing infrastructure. Designed robust and scalable message processing pathway.
Software architecture and design, database optimization, multithreaded programming.
Software Engineering as an Independent Contractor for clients such as Retail Relay and Elder
Research. January 2007 present. Developed software systems on Blackberry hand-held devices which
communicated with back-end databases via web services. Developed innovative web-interfaces for a
company s data mining software.
Embedded Systems Developer for Visi-Trak Sensors. Aug 2006 September 2007. Developed em-
bedded software for industrial sensors, and a tool chain for manufacturing quality assurance, diagnostic,
and integration. Responsibilities included project management, software engineering, digital electronic
design, analog design.
1
Computer Programmer, Web Developer for Riovia Communications Group. June 2005 July
2006. Developed custom software for a tax company and a local non-pro t organization. Responsibil-
ities included design of applications using scalable service infrastructures, and integrating third party
data sources (such as GoogleMaps) into existing applications.
Computer Programmer, System Administrator and Research Assistant for the Behavioral
Medicine Center in UVa s Health System, and UVa Diabetes Technology Program. May 2003 May
2005. Focusing on research into technologies for treatment of Diabetes, I created the idbm2 system
for management of clinical research data, digital surveys as Palm Pilot programs. Required skills
included programming, computer security, computer networking, embedded systems programming.
Attended the 2004 Diabetes Technology Conference. Experience communicating technical issues to a
lay audience, developing a large software system on a mostly independent basis.
Research Assistant for Dr. John C. Knight, Ph.D. in UVa s CS Department. Aug 2004 May 2005.
Researched methods for veri cation of data in the Federal Aviation Administration s Minimum Safe
Altitude Warning System. Incorporated use of automated theorem provers and translation system
technologies.
Teaching Assistant for Dr. Kevin Skadron, Ph.D. in UVa s CS 414 Operating Systems. Jan May
2005. Designed assignments, held o ce hours, and graded assignment submissions for a fourth-year
class.
Computer Programmer, Web Developer for The Riovia Communications Group. Aug 2001 Aug
2002. Developed active web-pages using ASP, JSP and a MSSQL back-end for corporate clients and
the State of Ohio. Skills used include programming, graphic design, database design and optimization.
Computer Programmer for FreeSpace Wireless. June 2003 June 2004. Modi ed low-level network
services for a wireless hot-spot management system, modi ed ISC s dhcpd so that it would authenticate
clients against a back-end database and adjust rewall rules to control bandwidth allocation on a per-
client basis. Skills used include programming, modifying large third-party software, Linux networking.
Honors, Achievements, and Other Experience
Created an open-source compiler jackcc on for an academic instruction set.
http://jackcc.sourceforge.net/
Winner for microprocessor design contest in Dr. John Lach s course ECE 436 Advanced Digital Design.
Volunteer bicycle mechanic at 123 Tompkins Community Space, 2007 2008. Volunteer bicycle mechanic
at Charlottesville Community Bikes, 2004 2007.
Top-ten nalist in the 2004 IEEE CS International Design Competition for design of a distributed
water quality monitoring network. http://tinyurl.com/jr3yv
Founder of MAKE:Princeton, a student organization of inventors and artists. September 2008 present.
2