CHRISTOPHER J. MADSEN 1113 Abrams Rd. Apt. 296 Richardson, TX 75081-5573 Phone: (972) 437-9818 Email: Christopher.Madsen@cjmweb.net OBJECTIVE A programming job working alone or as a member of a team EXPERIENCE 2009 - Present Self Employed Richardson, TX FREELANCE CONSULTANT I write Perl scripts and modules under contract. PostScript-Report was released to CPAN; my other work was not suitable for CPAN release. 2004 - 2009 TRX Dallas, TX ETL PROGRAMMER I wrote and maintained Perl scripts to Extract, Transform, and Load credit card and travel data from various formats into DB2 and MySQL databases. I also helped design and implement TRX's Generic File Processor framework to simplify this task. 1999 - 2004 Travel Technologies Group / TRX Dallas, TX PROGRAMMER FOR CORRE AND ENCORRE I helped maintain CoRRe and EnCoRRe/CORREX using Borland C++ for Windows. This involved using multiple GDS reservation systems and Oracle databases. In my spare time, I rewrote our email delivery system. The existing system was a combination of C++ and a homebrewed scripting language, was slow and difficult to maintain, and had numerous bugs. My version, written in Perl, is much faster, more reliable, and is still in use. 1993 - 1999 Schoolhouse Software Denton, TX PROGRAMMER FOR THE PC GRADEBOOK I wrote the DOS version of The PC GradeBook in C++ using Borland's Turbo Vision text-based windowing framework. I later ported it to Windows 95 using MFC, Visual C++, and the Standard Template Library. 1989 - 1993 Schoolhouse Software Denton, TX APPLE II PROGRAMMER FOR GRADEBOOK IV I completely rewrote a menu-driven gradebook from Applesoft BASIC in 6502 assembly language, and gave it a spreadsheet-style interface. I was the sole programmer and the primary designer, with input from the company owner. EDUCATION 1989 - 1995 Youngstown State University Youngstown, OH BACHELOR OF SCIENCE, SUMMA CUM LAUDE Major: Computer Science Minors: Physics and mathematics GPA: 4.0 AWARDS 2004 - TRX XCELLER AWARD (2ND QUARTER OF 2004) One award is given each quarter per 100 employees to recognize top-performing employees nominated by their coworkers. I received it for my work on CORREX. 1993 - YSU UNDERGRADUATE AWARD IN COMPUTER SCIENCE One award is given each year for outstanding academic achievement in the study of computer science. 1992 - MEMBERSHIP IN PHI KAPPA PHI Phi Kappa Phi was founded in 1900 to recognize and encourage superior scholarship in all academic disciplines. 1989 - NATIONAL MERIT FINALIST YSU gave me an Outstanding Scholar's Award scholarship. OPEN SOURCE WORK My open source programs are available at my website, www.cjmweb.net. PERL In 2010, I gave a talk about PostScript-Report at YAPC::NA. In 1998, I rewrote the Win32 IPC modules (part of libwin32) to remove unnecessary code, fix an egregious bug, and remove some limitations in the API. In 1997, my Getopt::Mixed, AppleII::Disk, MSDOS::Attrib, MSDOS::Descript, and Tie::CPHash modules were chosen to be part of O'Reilly's Perl Resource Kit. A complete list of my Perl modules is available at http://search.cpan.org/~cjm/ GNU EMACS I rewrote the internals of the Emacs perform-replace function to allow the replacement to be a Lisp expression. (Someone else has provided a better UI to this feature by using \, in the replacement string to indicate a Lisp expression.) Decipher.el, a tool I wrote in Emacs Lisp for solving cryptogram puzzles, became part of the GNU Emacs distribution from the Free Software Foundation in 1996. C++ VBinDiff (Visual Binary Diff) is a tool for interactively comparing files at the byte level. I originally wrote it in 1996 for OS/2. I ported it to Windows and later added support for Linux (and other POSIX systems.) GUEmap was a program I wrote to learn Win32 GUI programming. It's a program for mapping interactive fiction games. I sold it as shareware for several years, then released it as open source in 2007. Fast File Validator is a tool for verifying files against a checksum file and for creating checksum files. It supports both CRC32 and MD5. (I'm using checksum in the generic sense. Technically, neither CRC32 nor MD5 is really a checksum.) I wrote the Windows version in 2000, and added Linux support in 2005.