Ph.D. in Computer Science with over 13 years experience in successful
high-tech startups. Interests include social networking, mobile
applications, and next generation Internet technologies.
Work Experience
Feb 2012 - July 2013     Senior Software Engineer (BandPage, San Francisco, CA)
Designed and implemented backend server code for a system that supported 500,000 artists and
30 million MAU, including REST and graph BandPage APIs, artist search using Solr, and Amazon
messages queues. Integrated with 3rd party APIs such as Facebook, Twitter, and CrowdFlower.
Key technologies: Java, Spring, Hibernate, MySQL, Amazon SQS, XML, JSON, Eclipse, git, maven.
Nov 2009 - Nov 2011     Senior Software Engineer (adBrite, San Francisco, CA)
Designed and implemented software for the largest independent ad exchange, which serves over 150 million impressions a day on over 60,000 sites. Worked on core server components such as inline, XML, and real-time video ads. Used predictive models generated from Hadoop map/reduce. Built a number of publisher, testing, and ad review tools. Key technologies: Java, PHP, MySql, MongoDB, HTTP/TCP, Javascript, JQuery, JSON, JSP, HTML, XML, CSS, Hadoop, tcpdump, wireshark, svn, git.
Feb 2003 - Nov 2009     Senior Software Engineer (Sun Microsystems, Santa Clara, CA)
Designed, implemented, and tested software for an advanced video server, capable of storing 300,000 hours of content and delivering 160,000 2 Mbps mp4 streams. Agile software development included daily stand-up meetings, test-driven development, pair-programming, and continuous integration. Worked on core server components, CLI and GUI user interfaces, and built most of the end-to-end testing infrastructure. Key technologies: C++, design patterns, multiple threads, Linux, Solaris, TCP/UDP, shared memory, gdb, dtrace, valgrind, tcpdump, tcl/tk, svn. (startup Kealia acquired by Sun in April 2004)
Jul 2000 - Jul 2002     Senior Software Engineer (Transmeta, Santa Clara, CA)
Implemented and tested the world's first implementation of the AMD-64 instruction set (in software, before it was fabricated in silicon). Delivered product on time despite having an extremely aggressive schedule, which required attention to very low-level hardware details. Also built an abstract interpreter to validate x86 translations. Key technologies: C, Java, gdb, bash, perl, x86, AMD-64, cvs.
Jan 1998 - Jul 2000     Research Scientist (University of Pennsylvania, PA)
Created "self-specializing mobile code" that travels over the network and automatically optimizes itself to its destination environment. This technology combined run-time code generation and a type-theory breakthrough that verified safety properties about code not yet generated. Key technologies: C, gcc, TCP/UDP, Standard ML, static analysis, partial evaluation, type-checking.
Education
1992 - 1997   Ph.D. in Computer Science (University of Rennes, France)
1988 - 1992   B.S. in Computer Engineering (Carnegie Mellon University)
Select Publications
Self-specializing mobile code for adaptive network services. L. Hornof. International Working Conference on Active Networks, Lecture Notes in Computer Science 1942, Springer-Verlag, Tokyo, October 2000.
A study of large object spaces. M. Hicks, L. Hornof, J. Moore, and S. Nettles. International Symposium on Memory Management, Vancouver B.C., October 1998.
Partial evaluation for software engineering. C. Consel, L. Hornof, J. Lawall, et. al. ACM Computing Surveys, Symposium on Partial Evaluation, September 1998, vol 30, no 3.
Compiling Prolog to Standard ML: Optimizations. L. Hornof. Senior Honors Thesis, Carnegie Mellon Technical Report CMU-CS-92-166, September 1992.
(complete list of publications at http://www.hornof.org/Technology.html)
Invited Talks
In addition to conferences and workshops, I have also presented my work at a number of research institutions, including Microsoft Research, Xerox PARC, Stanford, University of Washington, and the University of Copenhagen.