$name\n\n"; }
function matrix_expand($input)
{
$output = $input;
while(strlen($output) < 15) { $output = $output . " "; }
return $output;
}
function matrix_row($skill, $ability, $used_for, $last_used)
{
$skill = matrix_expand($skill);
$ability = matrix_expand($ability);
$used_for = matrix_expand($used_for);
$last_used = matrix_expand($last_used);
print "
| $skill | $ability | $used_for | $last_used\n";
}
function matrix_start($type)
{
print "\n\n";
matrix_row($type, "Ability Level", "Used For", "Last Used");
print "\n";
print "\n";
}
function matrix_end() { print "\n \n\n"; }
function experience($time, $company, $location,
$title, $description = '', $moreinfo = array())
{
print "\n";
print "- $time,\n $company ($location):\n";
print "$title\n";
if($description != '')
{
print "
\n";
print " - $description\n";
print "
\n";
while($info = current($moreinfo))
{
print " - $info\n";
next($moreinfo);
}
print "
\n";
print " \n";
}
print " \n\n";
}
function paper($title, $authors, $published)
{
print "\"$title\",\n$authors; $published\n\n";
}
function project($name, $url, $description)
{
print " $name:\n";
print " $description\n";
}
function education($time, $school, $where, $description, $classes)
{
print "\n";
print "- $time, $school, $where:\n";
print "
\n";
print " - $description\n";
print "
- Courses taken include:\n";
print "
\n";
while($class = current($classes))
{
print " - $class\n";
next($classes);
}
print "
\n";
print " \n";
print " \n";
}
##################################################
# List Work Experience #
##################################################
resume_header('Professional Experience');
experience('Feb 2007 - Aug 2008',
'Volant Trading', 'New York, NY', 'Developer',
'Part of a team building an automated equity options trading system',
array(
'Implemented market price feeds for NASDAQ, NYSE, and ARCA markets',
'Implemented trade reconciliation via SOAP interface using gSOAP',
'Implemented realtime P&L analysis against market and model values',
'Implemented several GUIs for reporting and data input using Qt'
)
);
experience('Feb 2006 - Feb 2007',
'Independent', 'Washington, DC', 'Consultant',
'Consulting on operating system and network security',
array(
'Reviewed the design and implementation of a Windows firewall',
'Tested a set of extensions to the Windows security model',
'Wrote SWAAT,
the Securitycompass Web Application Analysis Tool'
)
);
experience('Aug 2005 - Feb 2006',
'Atlan Laboratories', 'Mclean, VA', 'Security Engineer',
'Multiple areas of work related to FIPS 140 validation',
array(
'Sole maintainer/developer of Atlan\'s suite of proprietary test tools',
'Review and test cryptographic implementations for flaws',
'Provide subject matter expertise to the Atlan team in the area
of cryptography'
)
);
experience('Jan 2004 - Aug 2005',
'Cybertrust', 'Herndon, VA', 'Security Engineer',
'As part of the Enhanced Services group, performed penetration tests,
security analysis, and code review engagements',
array(
'Reviewed security of client applications and infrastructure',
'Analyzed technical flaws in terms of client business risk',
'Built and maintained critical internal and client-facing systems'
)
);
experience('May 2002 - Mar 2003',
'JHU Information Security Institute (Systems Research Lab)',
'Baltimore, MD', 'Programmer',
'Worked on the OpenCM configuration management system');
experience('May 2000 - Dec 2001',
'JHU Computer Interaction with Physical Systems Lab',
'Baltimore, MD', 'System Administrator/Programmer',
'Maintained systems, programmed computer vision applications in C and C++');
experience('Jun 1999 - May 2002', 'JHU Association for Computing Machinery',
'Baltimore, MD', 'System Administrator',
'Maintained all systems for the JHU student ACM chapter');
##################################################
# List Open Source Projects #
##################################################
resume_header('Open Source Projects');
print "I have worked on a number of open source projects, including major
work on the following:
";
project('Botan', 'http://botan.randombit.net/',
'A portable, flexible, and powerful library of cryptographic
algorithms, protocols, and formats written in C++');
project('OpenCM', 'http://www.opencm.org/',
'A configuration management system built to support the distributed
development of an EAL7-rated secure operating system');
project('Cutlass', 'http://www.synacklabs.net/projects/cutlass/',
'A secure P2P network for file transfer, chat, and VoIP');
project('CapOver', 'http://www.randombit.net/projects/cap_over/',
'A small Linux Security Module that extends the default Linux
capability model to greatly reduce the number of programs which must
run with privileges (now part of vSecurity)');
project('VNCcrack', 'http://www.randombit.net/projects/vnccrack/',
'A fast password cracker for cleartext VNC challenge/response pairs');
print " \n\n";
##################################################
# Technical Skills #
##################################################
resume_header('Technical Skills');
?>
- Languages: C++, C, Python, Perl, Common Lisp, C#, Java, Scala,
PHP, Bourne Shell, assembler (x86, x86-64, Alpha, MIPS)
- Operating Systems: Unix/POSIX (Linux, OpenBSD, NetBSD, FreeBSD,
Solaris, IRIX, HP-UX, QNX), Windows NT, MacOS X, BeOS
ShmooCon 2005');
paper('Cutlass - Cryptographic Protection for Everyone\'s Voice and Data',
'Todd MacDermid, Jack Lloyd, Kathy Wang', 'ToorCon 2004');
paper('OpenCM: Early Experiences and Lessons Learned',
'Jonathan S. Shapiro, John Vanderburgh, Jack Lloyd',
'Freenix 2003');
paper('An Analysis of RMAC', 'Jack Lloyd',
'IACR ePrint 2002/170');
##################################################
# List Education #
##################################################
resume_header('Education');
?>
2003, B.Sc. Computer Science,
The Johns Hopkins University, Baltimore, MD
|
|---|