Unix Network Programmer
John Edwin Tobey
This file is .
Last changed $Date: 2005/06/18 19:54:50 $
Objective: To use my extensive database and network programming experience, possibly transitioning to a career in network administration or telecom.
Salary/Location requirements: CAD $50,000 telecommute; $70,000 Halifax; $90,000 other Canada; US negotiable.
Certification: Sun Certified Java Programmer, JDK 1.4.
Legal status: Canadian Permanent Resident. US Citizen. Authorized to work in Canada or US for any employer.
Keywords: Unix, SQL, Java, JSP, Perl, web developer, finance, Linux, Solaris, Microsoft Windows, database design, Oracle, Sybase, PL/SQL, T-SQL, PostgreSQL, MySQL, JDBC, ODBC, XML-RPC, Sun Certified Programmer (Java 1.4), C++, C, Lisp, software design, code review, unit testing, best practices, Ant, JUnit, Make, Log4j, Apache, Struts, FastCGI, CGI, XHTML, HTML, CSS, DOM, source control, CVS, Subversion, HTTP, TCP/IP, network security, SSL, SSH, tcpdump, DNS, abstract algebra, natural language.
Resume
2001
-2005 - FT Interactive Data - Technical Services Specialist / Database programmer
Part of a team of six developers reimplementing the company's flagship Fair Value Information Service.
Tasked with designing and implementing a multithreaded data server in Java with various SQL (Oracle, Sybase) and non-SQL back-end data sources.
Chose XML-RPC technology and designed a query interface.
Ant build system.
Unit tests with JUnit.
Log4j logging framework.
Helped a group of IBM mainframe programmers learn Unix and redeploy a currency exchange rate database using Oracle.
Participated in architectural and design meetings.
Liaisoned with system and database administrators.
Established database, filesystem, and process schedule structure.
Wrote exemplary Perl code for both didactic and functional purposes.
Designed and implemented an HTML interface to a transmission scheduling and monitoring system.
Replaced a system that depended on an outdated, expensive web application framework with Apache and FastCGI.
Reproduced user interface to minimize retraining costs.
Compatible with existing database structure.
Sophisticated, editable schedule display alerts maintainers to irregularities and lets them easily correct them. The old system had a denormalized database and required repetitive, error-prone user actions to set up schedules.
Implemented in one Perl FastCGI script (5,000 lines, 130 routines, all commented). The old system had about 100 source files maintained by a proprietary GUI.
Wrote detailed overview and documentation. Transfered maintenance due to a job transfer before the system was launched. The new maintainer, though lacking web server experience, successfully deployed the system without having to ask a single question.
Designed and implemented an in-house application for custom queries to a historical database of 1 billion security prices.
HTML interface for scheduling and monitoring jobs
Standard compliance made for an easy transition when the company moved from Netscape to IE
Cron (Unix scheduler) program for batch processing
Carefully optimized Perl DBI data access, 2 to 5 times faster than previous methods that used a stored procedure
Robust error recovery and logging
E-mail interface for job completion and error notification
Integrated with existing delivery tracking system
Automatic archival and retrieval system
Configurable by a properties file
Technical and end-user documentation
Tracked down bugs in poorly documented legacy programs spanning dozens of source files in C and Sybase stored procedure language under the control of Perl and shell scripts.
Helped evaluate candidates' C and Java skills.
Created training materials and gave coworkers a class in Perl database technology.
1999
-2001 - iSay, Inc. - Chief Architect
Designed and led implementation of a commercial-quality web site including:
HTML user interface using Mason templates (technology comparable to ASP using Perl) and Apache/mod_perl
Database abstraction layer using Perl DBI (Perl equivalent to JDBC) and Object-Oriented Perl
PostgreSQL relational database installation
C++ engine and Perl-to-C++ interface layer using Perl embedding API and dynamically loaded modules
Integrated build process using Perl and Make
Ported from Oracle to PostgreSQL RDBMS
Ported from Linux to Solaris OS
Ported from EmbPerl to Mason template system
Backend interface to third-party systems using TCP sockets
1996
-1999 - Banta Integrated Media - Web Site Engineer
Designed and implemented the core search technology for MachineFinder.com, a John Deere site. Users search for equipment by postal code. An Oracle index-organized table provides a cache of distances between users and dealerships. Distances are calculated in C for speed (10x faster than SQL). OCI array operations retrieve coordinates and store results.
Designed and implemented an I/O abstraction layer for easily allowing C Standard I/O and FastCGI applications to use other I/O backends. The abstraction layer retains binary compatibility with Standard I/O, allowing a smooth transition for deployed applications. It contains an object-oriented driver interface for dynamically loading new backends and drivers for FastCGI, Apache module API, and embedded Perl. The practical benefit to Banta IM has been to facilitate the combination of FastCGI, Perl, and the company's proprietary tools in Web applications, thus improving interactive performance and developer efficiency.
Wrote database drivers for Oracle 7 and 8 OCI and ODBC for a proprietary Web language.
As one of a team of two developers, used Netscape's Server Side JavaScript language to write the Web frontend of an application that won first place in CAP Ventures' Print On Demand Leadership Innovation awards, One-to-One Communications: Published Document category.
Ported the Banta IM tool set from Solaris to Windows NT and AIX.
Telephone customer support for websites involving bulletin boards, rendering magazine articles in HTML, and user-defined content. WineSpectator.com, CigarAficionado.com.
Wrote Perl bindings for a proprietary database system written in C.
Introduced dynamic libraries to the Banta IM development tool set.
Devised CGI debugging methods using Emacs and GDB.
Used Perl to import and transform a wide variety of data.
1993
-1996 - Commonwealth of Massachusetts - Accountant
Conceived, designed, coded, and supported a financial application and database frontend for the Registry of Motor Vehicles accounting office. It was adopted by other agencies, including the Division of Employment and Training and the Merit Rating Board. Besides speeding up paperwork and data retrieval, the application can output scripts for an IBM 3270 terminal emulator to upload payment records to the state's mainframe system, resulting in improved productivity and accuracy. Originally coded in MS Access Basic with added functionality provided by Visual Basic and C using the Windows 3.1 API, it has since been ported to Win32 by its new maintainers.
1992
Bachelor's of Science, m.c.l., in Mathematics from Brown University, Providence, Rhode Island. Excelled at abstract algebra and formal linguistics.
Personal
Contributed to Perl by optimizing inlinable constant subs for space.
I run my own Apache web server, TinyDNS domain server, and Exim mail server on Debian GNU/Linux.
Languages
English (native)
Spanish (a little rusty, mild accent, good reading and writing)
French (good reading, some conversation)
Portuguese (good reading, some conversation)
German (some)
Italian (some)
Russian (basic