<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="resume.xsl"?>

<!DOCTYPE
	resume PUBLIC "-//Sean Kelly//DTD Resume 1.5.1//EN"
	"http://xmlresume.sourceforge.net/dtd/resume.dtd"
>

<resume id="WilliamAhern:20060121">
	<header>
		<name id="w.ahern">
			<firstname>William</firstname>
			<surname>Ahern</surname>
		</name>
		<address>
			<street>5432 Geary Blvd. #163</street>
			<city>San Francisco</city>
			<state>CA</state>
			<zip>94121</zip>
		</address>
		<contact>
			<phone>415-608-5833</phone>
			<email>william@25thandClement.com</email>
			<url>http://www.25thandClement.com/~william/projects/</url>
		</contact>
	</header>

	<skillarea>
		<title>Unix</title>
		<skillset>
			<title>Administration</title>
			<skill>Sendmail</skill>
			<skill>PostgreSQL</skill>
			<skill>Apache</skill>
			<skill>MySQL</skill>
			<skill>UW-IMAP</skill>
			<skill>Samba</skill>
			<skill>BIND (v4, v8, v9)</skill>
			<skill>GNU/Linux</skill>
			<skill>OpenBSD</skill>
		</skillset>
		<skillset>
			<title>Programming</title>
			<skill>C</skill>
			<skill>Perl</skill>
			<skill>Lua</skill>
			<skill>Java</skill>
			<skill>M4</skill>
			<skill>Sed</skill>
			<skill>Awk</skill>
			<skill>ANSI SQL</skill>
			<skill>Unix Shell (Korn, Z-Shell, Bash)</skill>
		</skillset>
		<skillset>
			<title>Interfaces/Tools</title>
			<skill>BSD Sockets</skill>
			<skill>POSIX Threading, IPC</skill>
			<skill>SysV IPC</skill>
			<skill>OpenSSL</skill>
			<skill>GNU Autotools</skill>
			<skill>CVS, SVN</skill>
			<skill>C Standards/Libraries (C89/90, C99, POSIX/SUSv3, SysV, BSD, GNU)</skill>
		</skillset>
	</skillarea>

	<skillarea>
		<title>WWW</title>
		<skillset>
			<title>Programming</title>
			<skill>XSL</skill>
			<skill>PHP</skill>
			<skill>ColdFusion</skill>
			<skill>JavaScript</skill>
		</skillset>
		<skillset>
			<title>Presentation</title>
			<skill>XML</skill>
			<skill>RDF 1.0</skill>
			<skill>RSS 1.0/2.0</skill>
			<skill>XHTML 1.0/2.0</skill>
			<skill>CSS 1.0/2.0</skill>
		</skillset>
	</skillarea>

	<skillarea>
		<title>Internet Architecture</title>
		<skillset>
			<title>Protocols</title>
			<skill>IPv6</skill>
			<skill>IPSec</skill>
			<skill>HTTP</skill>
			<skill>SSL/TLS</skill>
			<skill>XMPP</skill>
			<skill>SMTP</skill>
			<skill>LDAP</skill>
		</skillset>
		<skillset>
			<title>Methodologies</title>
			<skill>X.509 Certificate Management</skill>
			<skill>P2P (Distributed vs. Federated; Distributed hash tables)</skill>
			<skill>Principles of Cryptography (RSA vs. DH; Secrecy vs. Authentication vs. Authorization)</skill>
		</skillset>
	</skillarea>

	<pubs>
		<pub>
			<bookTitle>mod_auth_bsd</bookTitle>
			<publisher>William Ahern</publisher>
			<para>
				Apache 1.x authentication module using BSD Authentication framework.
			</para>
			<url>http://www.25thandClement.com/~william/projects/bsdauth.html</url>
		</pub>

		<pub>
			<bookTitle>Air Control (airctl)</bookTitle>
			<publisher>William Ahern</publisher>
			<para>
				Unix command-line utility to control Apple's Airport base station. The Airport base station uses an SNMP-like control format over UDP.
			</para>
			<url>http://www.25thandClement.com/~william/projects/airctl.html</url>
		</pub>

		<pub>
			<bookTitle>AnonNet</bookTitle>
			<publisher>William Ahern</publisher>
			<para>
				A fully distributed, P2P anonymizing network. Awarded grant from the <link href="http://www.linuxfund.org/">Linux Fund</link>.
			</para>
			<url>http://www.authnet.org/anonnet/</url>
		</pub>

		<pub>
			<bookTitle>PostgreSQL</bookTitle>
			<publisher>PostgreSQL Project</publisher>
			<para>
				Contributed OpenBSD getpeereid(2) support for passwordless authentication over Unix domain sockets.
			</para>
			<url>http://www.postgresql.org/</url>
		</pub>

		<pub>
			<bookTitle>GNU ADNS</bookTitle>
			<publisher>Ian Jackson</publisher>
			<para>
				Contributed DNS SRV (RFC 2782) record query support to the GNU ADNS asynchronous DNS resolver library.
			</para>
			<url>http://www.chiark.greenend.org.uk/~ian/adns/</url>
		</pub>

		<pub>
			<bookTitle>c-ares</bookTitle>
			<publisher>MIT, Daniel Stenberg, et al</publisher>
			<para>
				Contributed bug patches, feature enhancements
				to this asynchronous DNS resolver.
			</para>
			<url>http://daniel.haxx.se/projects/c-ares/</url>
		</pub>

		<pub>
			<bookTitle>OpenSSH</bookTitle>
			<publisher>Damien Miller, et al</publisher>
			<para>
				Implemented Unix domain socket forwarding
				for OpenSSH. Required extensive changes
				at all levels of the code, including
				SECSH protocol handling.
			</para><url>http://25thandClement.com/~william/projects/streamlocal.html</url>
		</pub>
	</pubs>

	<history>
		<job>
			<jobtitle>Senior Engineer</jobtitle>
			<employer><link href="http://www.barracudanetworks.com/">Barracuda Networks</link></employer>
			<period>
				<from>
					<month>March </month>
					<year>2004</year>
				</from>
				<to>
					<present/>
				</to>
			</period>
			<description>
				<para>
					Senior software engineer and
					architect.  Responsible for design,
					construction and maintenance of various
					systems level components.
				</para>
				<projects>
					<project>
						Microsoft Exchange Accelerator: Links Barracuda Spam Firewall
						with Active Directory/LDAP organization database with
						lightweight, event based, caching interconnect daemon. Seamlessly
						supports both LDAP and SMTP recipient verification.
					</project>
					<project>
						Barracuda::Bayes: Constructed Bayesian statistical analysis component
						including a custom, fault-tolerant and self-healing embedded database for token storage, international script/character set
						(I18N) word boundary parsing, and Markov chaining.
					</project>
					<project>
						Barracuda SMTP Daemon: Personally constructing lightweight, high performance, filtering, event based
						SMTP (E-mail) server. Supports single-pass streaming filtering, encompassing all of
						RFC821/2821 communication, RFC822/2822 parsing, MIME decomposition, Unicodification and attachment decoding. Filtering
						modules can be written in C, Perl or Lua as loadable modules. Filtering policy
						implemented through execution of a declarative policy script.
						Automated code generation produces
						over 80% of the intermediate C source code, reducing bugs, development time, and increasing the
						the ratio of source which can be statically analyzed.
					</project>
					<project>
						Support Infrastructure: Building and maintaining a highly secure environment through which
						technical support personnel remotely access tens of thousands of Barracuda appliances around
						the world. This involves constructing a robust, multi-layered authentication and authorization infrastructure
						within Barracuda's network and accompanying support included within each appliance.
					</project>
					<project>
						Spearheaded refactoring of build infrastructure towards a non-recursive Make paradigm.
						Allows for defining a complete directed acyclic graph of project dependencies across the
						entire source tree (comprising millions of lines of code). This provides invaluable
						insight for both engineering and product management.
					</project>
				</projects>
			</description>
		</job>
		<job>

<jobtitle>Contracted Consultant</jobtitle> 			<employer><link
href="http://www.jinsa.org/">JINSA</link></employer> 			<period>
				<from>
					<month>August </month>
					<year>2002</year>
				</from>
				<to>
					<month>December </month>
					<year>2003</year>
				</to>
			</period>
			<description>
				<para>
					Changes and additions to the JINSA Online content management system.
					Technical consultation as issues arose.
				</para>
				<projects>
					<project>
						Created new JINSA store. All data kept in central XML repository, using XSLT templates for presentation.
						Real-time USPS shipping rate quotes using their XML web services interface.
					</project>
					<project>
						Related article document-vectoring engine. Worked closely with the original author of the Text::Document Perl module to increase the document parsing and scoring speed. Batch processing of JINSA's document set went from hours to minutes.
					</project>
					<project>
						Integrated site administrator authentication with the underlying system authentication framework. The project mostly consisted of writing mod_auth_bsd, which links Apache's HTTP Basic Authentication functionality with the BSD Authentication framework (similar to PAM) employed in OpenBSD and BSDi Unix.
					</project>
					<project>
						Refactored various backend elements to generate XML for metadata storage and content presentation.
						Rewrote custom PHP XML processors to utilize XSLT templates. Home page, Recent news and
						side bars generated from XML using XSLT. These features tied into the custom CMS, and so re-transformed
						with change or addition of new content, not simply on each page view.
					</project>
					<project>
						Automatic RSS feed generation from XML site content using XSLT.
					</project>
					<project>
						Automatic weekly e-mail digests advertising new site content to members.
					</project>
				</projects>
			</description>				
		</job>
		<job>
			<jobtitle>Associate Consultant</jobtitle>
			<employer><link href="http://www.agconsult.com/">AG Consulting</link></employer>
			<period>
				<from>
					<month>October </month>
					<year>2000</year>
				</from>
				<to>
					<month>June </month>
					<year>2002</year>
				</to>
			</period>
			<description>
				<para>
					Worked for the e-Solutions group within AG. We developed self-service web-based solutions primarily atop clients' ADP Enterprise/Horizon and PeopleSoft HRMS/ERP systems.
				</para>
			</description>
			<projects>
				<project title="Stewart Enterprises">
					Web based self service timesheet application integrated with their ADP Enterprise HRMS. Utilized Coldfusion and JavaScript with an MS SQL database.
					The front-end to this application heavily relied on DHTML to reduce client-server round trips, as the end-users were on 14.4- and 28.8- baud modems (and IIS did not support on-the-fly HTTP compression).
					Bandwidth could be maximally used for sending data and not presentation code.
					This methodology is now commonly called AJAX, following the advent of Google Maps.
				</project>
				<project title="Kinetics Group">
					Constructed web self-service interface into ADP EV2 installation using ADP's Java WYSIWYG EBuilder for the EV2 Java servlet web component.
				</project>
				<project title="Financial Portal">
					Created a portal for AG Consulting project managers and executives to track project revenues and account receivables. Data fed from ADP Corporate headquarters' Oracle Projects system. Portal centered around Crystal Reports presentations, with several batch processes run on MS SQL and Oracle.
				</project>
			</projects>
			<achievements>
				<achievement>
					Published in an industry magazine with an article describing issues around Internet security and single-signon (SSO).
					Described the relationships between privacy, authentication and authorization and how those properties are effected across different web service schemes.
				</achievement>
			</achievements>
		</job>
		<job>
			<jobtitle>Software Engineer</jobtitle>
			<employer><link href="http://www.mailshell.com/">Mailshell.com</link></employer>
			<description>
				<para>
					Online e-mail service which provides a web based client mail interface to filter out SPAM. The service linked to existing POP3 or IMAP accounts, or used pseudo-anonymous proxy e-mail addresses managed by Mailshell.
				</para>
			</description>
			<period>
				<from>
					<month>May </month>
					<year>2000</year>
				</from>
				<to>
					<month>October </month>
					<year>2000</year>
				</to>
			</period>
			<projects>
				<project>
					Developed web-proxy interface which allowed users to easily utilize Mailshell's anti-spam services when browsing. PHP, Perl.
				</project>
				<project>
					Developed an indexing search engine for the mailing-list directory. PHP, Perl.
				</project>
				<project>
					IMAP client-interface tied into the Mailshell anti-spam facilities.
				</project>
			</projects>
		</job>
		<job>
			<jobtitle>Manager of Information Systems</jobtitle>
			<employer><link href="http://www.jinsa.org/">JINSA</link></employer>
			<period>
				<from>
					<month>March </month>
					<year>1998</year>
				</from>
				<to>
					<month>May </month>
					<year>2000</year>
				</to>
			</period>
			<projects>
				<project>
					Developed JINSA Online
					(www.jinsa.org), including custom
					session support (pre-PHP Sessions),
					integration of seamless real-time
					credit card transactions, and web
					based document/article
					administration.  Home page and
					Recent News content kept in XML,
					transformed using custom PHP
					processors (pre-XSL).  Utilized PHP
					and Perl on top of Linux, Apache and
					MySQL solutions.  Heavy integration
					of JavaScript GUI tool-kit (DynAPI2)
					into site navigation menus.
				</project>
				<project>
					Mailing list management, web site
					traffic analysis, and on-line
					multimedia content distribution.
					Multimedia management included
					porting of Apple's Quicktime Streaming
					Server to Linux servers.
				</project>
				<project>
					Developed service solutions and
					custom applications for staff
					members (i.e.  Web Calendar,
					Database conversions).
				</project>
				<project>
					WWW, File and Database server (MS
					Access, Sybase ASE) maintenance.
					Firewall and router configuration.
					Office PC (Win9x/NT/Mac) and LAN
					maintenance.
				</project>
			</projects>
		</job>
		<job>
			<jobtitle>Helpdesk Support</jobtitle>
			<employer>The George Washington University</employer>
			<period>
				<from>
					<month>September </month>
					<year>1997</year>
				</from>
				<to>
					<month>August </month>
					<year>1998</year>
				</to>
			</period>
			<description>
				<para>
					Assisted students with computer laboratory issues. Handled university student computing services accounts; i.e. Unix account registration, e-mail issues, etc.
				</para>
			</description>
			<achievements>
				<achievement>
					Discovered intruder on main student
					unix server (GWIS2), alerting
					administrators and leading to a
					complete overhaul of security
					management within GW's Information
					Services group.
 				</achievement>
			</achievements>
		</job>
	</history>

	<academics>
		<degrees>
			<degree>
				<level>Bachelor of Arts</level>
				<major>International Affairs</major>
				<institution>The George Washington University</institution>
				<period>
					<from>
						<date>
							<month>August</month>
							<year>1997</year>
						</date>
					</from>
					<to>
						<date>
							<month>May</month>
							<year>2000</year>
						</date>
					</to>
				</period>
				<annotation>
					Conference of degree pending completion of foreign language proficiency examination.
				</annotation>
			</degree>
		</degrees>
		<note>
			<para>
				The first year of college was attended full-time at the University of West Florida, coterminus with highschool (1996-1997).
			</para>
		</note>
	</academics>
</resume>
