Post Job Free
Sign in

Developer C

Location:
Springfield, MA
Posted:
December 13, 2012

Contact this candidate

Resume:

Senior Unix Developer

John Edwin Tobey

+1-413-***-****

This file is .

Last changed $Date: 2010-09-07 14:30:13 $

Synopsis:

Ivy educated Math Sc.B.,

Brown University

Unix, Linux, Solaris 13 years

C/C++ 13 years

Java 4 years + Sun certified

Web, HTML, TCP/IP 13 years

SQL 12 years

Oracle programming 10 years + OCA

Sybase programming 7 years

Perl, shell 13 years

Finance 5 years

Location: Turners Falls, Massachusetts.

Legal status: US

Citizen.Keywords: Unix, SQL, Oracle, Oracle OCA (11g), standards, Java, multi-threading, Perl, web developer, finance, Linux, Solaris, Microsoft Windows, Excel, systems analyst, database design, PL/SQL, Sybase, T-SQL, PostgreSQL, IBM DB2, JDBC, ODBC, LDAP, SOAP, XML-RPC, Sun Certified Programmer (Java 1.4), C++, C, Lisp, PostScript, software design, code review, unit testing, best practices, Ant, JUnit, Make, GNU toolchain, Log4j, Apache, FastCGI, CGI, XHTML, HTML, CSS, DOM, XML, XPath, source control, Subversion, CVS, HTTP, TCP/IP, network security, SSL, SSH, tcpdump, DNS.

Resume

2009

-present - SoftSlate, LLC - Consultant

Automated workflow for a camera equipment rental service.

Designed and wrote scheduling algorithms. Generated schedules in Excel format using Java and Apache POI HSSF.

2008

-2009 - Advantage Data Inc. - Senior Back End Developer

Small financial data company. Linux, Oracle, PL/SQL, Perl, C/C++, Subversion.

Optimized correlation code, moving from SQL to C, for a 100x speedup.

Responsibilities range from systems administration to software development and data analysis.

2005

-2008 - Keane Inc. - Senior Consultant

Large financial client. Took over legacy systems for employee account provisioning and password reset. Fixed bugs, security issues, and performance problems. Migrated to latest environment including Solaris to Linux. Awarded Keane Banner of Excellence.

Small development team working for large financial client. Maintained and developed systems that integrate client's firmwide employee directory with fax-email and paging systems.

Wrote TIFF-to-PostScript conversion routine after alternatives proved inadequate. The solution places tracking information in a footer on each fax page, eliminating the need for an extra cover page.

Noticed team's lack of use of client's own bug-tracking system. Evaluated alternatives and promoted issue tracking within team.

Rooted out bugs in complex, organically developed systems.

Promoted the collection and use of vendor interface documentation, as opposed to reverse engineering.

Resolved issues using C stack traces, strace (system call monitor), and knowledge of the C source of both Linux kernel and Perl interpreter.

Praised for answers given on firmwide Perl forum.

Wrote Perl timeout module to avoid problems with the CPAN alternatives and direct use of eval/alarm. (Common problems include race conditions and failure to cancel timers, restore signal handlers, or propagate exceptions.)

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.

Wrote a C++ wrapper for the XMLRPC-C client library after finding the existing C++ interface inadequate and clumsy. Used GNU Libtool and Automake. (Abandoned when the team switched to Java due to an unrelated issue.)

Ant build system.

Unit tests with JUnit.

Log4j logging framework.

Helped a group of IBM mainframe programmers learn Unix and reimplement 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 data 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

Wrote a simple Perl wrapper for a proprietary financial library using C++ and Pickle.

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.

Maintained, troubleshot, analyzed, documented, and improved large C programs that used Sybase.

1997

-2004 - Open-source contributions

1997

-2000Perl interpreter

Large C program with hundreds of developers collaborating through the perl5-porters mailing list.

Optimized interpreter support for inlinable subs (aka use constant ). Reduced their memory use by two-thirds. Added test cases and B::Deparse (core reflection module) support.

Fixed interpreter behavior relating to pseudo-hash assignment.

Fixed a problem with xsubpp, the C wrapper generator, where bad line number information for debugging was generated. The solution cleverly modifies the script's own output using a tied filehandle.

Small fixes to core modules and documentation.

1999

-2003 - GNU Hurd operating system kernel

Large C project using advanced concepts. Attempts to implement POSIX (Unix standard) on a flexible microkernel architecture.

Contributed a Perl wrapper for a C interface allowing simple filesystem behavior to be implemented in Perl.

Contributed a proof-of-concept Linux C program that runs the GNU Mach microkernel in user space. Threads are controlled using ptrace, and security is achieved by a small assembler routine that runs with a read-only stack. Used GNU Autoconf.

1998

-2001 - GNU Emacs IDE

Large C and Lisp program with many developers and users.

Modified C source to embed the Perl interpreter and allow Perl code to interoperate smoothly with Lisp. Used GNU Autoconf to detect Perl configuration. (The patch was not accepted; the project owners hoped to achieve the same effect using translation to Scheme. I distributed the patch independently. Later, I reimplemented the idea using a pipe and subprocess much more portably and maintainably.)

Contributed Lisp code to the perldb library to handle Perl arguments more sensibly.

Contributed small fixes to C code.

2000 - Pickle Perl-C++ library

C++ library to support easy interaction between Perl and C++ code.

Automatic garbage collection by destructor.

Scalar constructors for every fundamental C++ type.

Simple yet powerful cross-language (bidirectional) function calls.

Cross-language exception handling.

Very easy to use; #include and link with -lpickle -lperlint.

1999 - DBD::Oracle (Perl Oracle database driver) - contributed C code using Oracle OCI functions to reauthenticate (switch user without reconnecting).

2001

-2004 - Date::Simple Perl module

Simple date arithmetic with a small footprint.

Wrote 2.x series adding day-of-week function and extending range from year 2038 to 9999.

Implemented in C using the Perl XS API for performance.

Included a pure-Perl version and fallback mechanism for users who can not compile.

Extensive test suite.

Passed ownership to another developer who produced the 3.x series.

Contributed C::DynaLib, a Perl module supporting foreign (C/C++) function calls on IA32, SPARC, and Alpha hardware.

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 in C for Oracle 7 and 8 OCI and ODBC/DB2 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.

Maintained and developed large commercial websites written in C and Pro*C.

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.

Self-taught C, SQL, Microsoft Visual Basic, and Windows API. Applied this knowledge to the job.

1992

Bachelor's of Science, m.c.l., in Mathematics from Brown University, Providence, Rhode Island. Excelled at abstract algebra and formal linguistics.

Personal

I run my own Apache web server, TinyDNS domain server, ISC DHCP server, and NTP server on Debian GNU/Linux.

Languages

English (native)

Spanish (fluent, good reading and writing)

French (good reading, some conversation)

Portuguese (good reading, some conversation)

German (some)

Italian (some)

Russian (basic)

Latin



Contact this candidate