alenlpeacock@gmail.com Alen L. Peacock
1455 N. 200 West   Orem, Utah   84057   (801) 434-5435
http://alenpeacock.flud.org/

Experience

  • 2006 July - Present: Principal Software Engineer at Mozy
    • Helped create Mozy's scalable backend system responsible for storing and managing dozens of petabytes of data in multiple datacenters. Contributed to development of original system, written in Python (2006 - joined when there was only one other developer on this project), and played major role in rewrite/redesign in C/C++ for performance and scaling (2007-present). Helped design and implement novel distributed system technologies, including single-instance-storage, bloom filters, reed-solomon erasure coding, bitrot detection, etc.
    • Created new backend web-restore engine, which services customer requests for restoring files. Sole developer and architect for most of this project, later led a small international team in finishing and maintaining [C/C++/Boost/Asynchronous]
  • 2004 October - 2006 July: Software developer at Novell.
    • Designed and implementated tools to help Novell customers migrate from NetWare to Novell's newer Linux offerings. [ruby, python, expect, C]
    • Helped a moderate-sized team create enterprise software used by Novell customers to the Linux platform, producing Novell Branch Office 9. Contributed input to suggested architectural changes planned as part of the rewrite, and produced software deliverables as part of the development team. [C/C++]
  • 2004 December - 2005 May: Consultant for MIT's Lincoln Laboratory, continuing software development and research work on airborne networking and link emulation. [C++]
  • 2001 October - 2004 October: Associate Staff at MIT Lincoln Laboratory. Software development, system architecture, and systems research as part of the Advanced Networks and Applications Group.
    • Researched topics in mobile ad-hoc wireless networks composed of airborne nodes and worked with a team to develop prototype network control application for heterogeneous collections of mobile wireless datalinks. Designed many components of the software architecture and wrote large portions of the more than 65,000 lines of C++ code. Responsibilities included coordinating development of a single code base to be used in both a laboratoy environment with emulated data links and a live environment aboard a Boeing 707 aircraft with real data links and network equipment. [C/C++, Java, Automake, Autoconf, SVG, TCP/IP Socket Programming, Cisco IOS].
    • Assisted in the development of network testbeds for airborne networks and next generation satellite/terrestrial backbone networks. Conducted experiments on the testbeds and built tools to assist in that task. Compared performance of several strategies for improving connectivity and throughput of highly-mobile networks. Evaluated utility of different strategies to use multiple links on a platform to provide a single virtual connection. [C/C++, scripting]
    • Created "Lincoln Link Emulator," a link-layer emulation tool capable of emulating the bit error rate, latency, and throughput limitations of different types of links. The tool is transparent to systems-under-test and capable of near line-rate at gigabit speeds. [Linux, C/C++, network-layer programming]
    • Integrated (including creation of custom software), operated, and analyzed the performance of a Tactical Common Data Link (TCDL) system onboard the Laboratory's Boeing 707 experimental aircraft. Participated in excercises and experiments with this MC2A-x platform (see Aviation Week & Space Technology, Sep. 23, 2002). [C/C++, shell scripting, Matlab, Gnuplot]
    • Created software to acquire and synchronize data acquisition streams from multiple cameras simultaneously as part of research into machine vision. [C/C++, Java]
  • 2001 February - 2001 September: Application Server Software Developer for iCentris. Worked on a team of developers to create ProviderPay, a web-based financial application for physicians which provides billing services, claims adjudication, and claims payment advances. [J2EE, Java, SQL (Oracle and Postgres), JDBC, EJB, XML]
    • Wrote server-side processing code (EJBs) and client-side JSPs.
    • Interfaced with legacy mainframe systems via COBOL-style flat files and EDIs. Wrote custom interface code.
    • Installed and administered BEA Weblogic application server, Oracle database, and Bugzilla bug-tracking systems.
  • 1996 November - 2001 January: Research Assistant for the Performance Evaluation Laboratory (http://pel.cs.byu.edu/) at Brigham Young University.
    • Researched disk I/O performance improvements through detection of determinism in access data.
    • Assisted in research related to processor address trace collection. Wrote Seize (http://traces.byu.edu/new/Tools/seize.html) for the Linux Kernel, a device driver for halting and unhalting a machine externally.
    • Created WebBeater, a web server stressing tool for performance studies.
    • Developed the web sites for:
    • Performed system administration tasks for Linux, Windows 9x/NT, Solaris, and HPUX machines.
    • Wrote UintaApplet to aid students of a computer architecture course to complete a simulator for the Uinta computer architecture.
    • Helped develop web sites, tutorials, and instructions for an "Introduction to Computer Organization" course.

Education

  • 2003 & 2004: Massachusetts Institute of Technology, Cambridge, MA. Enrolled in graduate courses ["special student" status]: 6.836 Embodied Intelligence, grade received: A. 6.824 Distributed Computer Systems, grade received: A-.
  • 1998-2001: Brigham Young University, Provo, UT. Masters of Science in Computer Science. 3.89 GPA (on a scale of 4.0).
  • 1992 & 1995-98: Brigham Young University, Provo, UT. Bachelor of Science in Computer Science.
  • 1988-1992: Roy High School, Roy UT. Diploma with honors. Presidential Academic Fitness Award, 1988-89. United States National Science Merit Award, 1989. All-American Scholar, 1989. United States National Leadership Award, 1989. Academic Letter. Honor Roll and High Honor Roll.

Skills

  • Language/Technology Experience:
    • Internet-scale technologies: asynchronous programming, DHTs, column-oriented databases, shared-nothing architectures, horizontal scaling, etc. [4 years]
    • C/C++ [10+ years total]
    • Python (including Twisted-Python) [3+ years]
    • shell scripting (bash, sed, awk, etc.) [8+ years]
    • Perl [2 years (stale knowledge)]
    • XML, XSLT [1 year]
    • Ruby (including Rails) [total noob]
    • Java (including J2EE, JSP, JNDI, JSP, JDBC, JavaBeans & EJB) [4+ years industrial (stale knowledge)]
    • Familiarity with: Lisp/Scheme, Tcl/Tk, Javascript, PHP, SQL
    Comfortable with GNU development tools, and experience with GUI application development under X-windows, wxWidgets, and the Java platform. Understanding of TCP/IP networking and experience in writing networked applications. Familiarity with basic security implementations and machine learning techniques.
  • Networking Experience: Familiar with TCP/IP, XCP, SCPS, OSPF, EIGRP, GMPLS, etc., Mobile Ad-hoc networking topics, Satcom topics, etc. (I'm a little rusty on some of these).
  • Operating System Experience: Unix (Linux, BSDs, Solaris, HP-UX, Irix), Windows, OSX.

Publications

  • Joe Cooley, Chris Taylor, Alen Peacock, "ABS: the Apportioned Backup System", published MIT's CSAIL.
  • Alen Peacock, Xian Ke, Matthew Wilkerson. Book chapter "Identifying Users by Their Typing Patterns" in Security and Usability, O'Reilly Publication edited by Lorrie Cranor and Simson Garfinkel, 2005.
  • Alen Peacock, Xian Ke, Matthew Wilkerson. "Typing Patterns: A Key to User Identification" in IEEE Security & Privacy Magazine: Special Issue on Usability and Security, September 2004. IEEE.
  • Paul Metzger, Alen Peacock, Glenn Meurer, and Vineet Mehta. "An examination of link connectivity fluctuations in airborne networks." In Proceedings of the IEEE Military Communications Conference (MILCOM), Boston, MA, Ocotober 2003. IEEE.
  • Michael D. Beynon, Daniel J. Van Hook, Michael Seibert, Alen Peacock, and Dan Dudgeon. "Detecting abandoned packages in a multi-camera video surveillance system." In IEEE Conference on Advanced Video and Signal Based Surveillance, pages 221-228, Miami, FL, 21-22 July 2003. IEEE.
  • Alen Peacock, "Dynamic Detection of Deterministic Disk Access Patterns." Masters Thesis, Brigham Young University, 2001.
  • Alen Peacock and J. Kelly Flanagan, "Evaluation and Elimination of Internet Web Server Bottlenecks," 1997-98 BYU Office of Research and Creative Activities Undergraduate Research Journal (http://ucs.byu.edu/acadvp/orca/1997Journal.pdf), 1998.

Awards and Miscellaneous

  • 1999: National Science Foundation (NSF) Performance Evaluation Fellowship.
  • 1998: BYU Office of Creative Research and Activities ORCA Scholarship.
  • 1997 January: Winner of the AT&T Student Art "Live Out Loud" competition in the fine art category. Winner in both Internet voting and professional judging. Artwork.
  • 1993 January - 1995 January: Lived in Uruguay. Fluent in Spanish.