Senior Linux Developer
Synopsis:
Proficiency | First Used | Level | Certification |
Ivy educated | | magna cum laude | Brown University Sc.B. |
Machine Learning | 2015 | Intermediate | Coursera |
Linux, Unix | 1996 | Expert |
C/C++ | 1996 | Expert |
Java | 1996 | Expert | Sun certified 2004 |
Web, TCP/IP | 1996 | Expert |
SQL | 1996 | Expert |
Oracle, PL/SQL | 1997 | Advanced | Oracle certified (OCA 11g) |
MySQL admin/developer | 2009 | Advanced |
Javascript | 1997 | Expert |
Python | 2011 | Expert |
shell, Perl | 1996 | Expert |
Amazon AWS | 2012 | Intermediate |
Google Cloud Platform (GCP) | 2017 | Intermediate |
Finance | 2001 | Intermediate |
FOSS | 1996 | Expert | GitHub user
jtobey |
Location: +90% remote WFH (Massachusetts)
Legal status: US Citizen
Keywords: Linux, SQL, Machine Learning, W3C DOM, HTML, CSS,
Javascript, jQuery, Web 2.0, Java, Go (Golang), concurrency,
Bitcoin, blockchain analytics, Python, Perl, web technologies,
finance, Linux, Solaris, Microsoft Windows, systems analyst,
database design, Oracle, Oracle OCA (11g), PL/SQL, Sybase, T-SQL,
MySQL, Hibernate, PostgreSQL, IBM DB2, JDBC, ODBC, LDAP, JSON, SOAP,
Sun Certified Programmer (Java 1.4), C++, C, Lisp/Scheme,
PostScript, software design, SDLC, code review, unit testing, best
practices, Eclipse, Selenium, GNU toolchain, logging, Apache,
FastCGI, WSGI, CGI, XML, XPath, source control, Git, GitHub,
Mercurial, Subversion, CVS, HTTP, TCP/IP, network security, SSL,
SSH, tcpdump, DNS, Debian, Ubuntu, Red Hat, Google Cloud Platform
(GCP), Amazon Web Services (AWS).
Résumé
2017-present - Google -
Software Engineer
2015-2016 - ISO New
England - Senior Computer Scientist
- Oracle PL/SQL.
- JBoss.
- Java.
- Wholesale electricity markets.
- CA Service Desk Manager.
- Automated workflow for a camera equipment rental service.
MySQL, Apache, Tomcat, Hibernate,
Struts, JSP, JavaScript,
jQuery, Eclipse.
- Led successful scalability effort to move old records into
archive tables with minimal additional application
complexity.
- Designed and wrote product scheduling algorithms. Generated
schedules in Excel format using Java and Apache POI HSSF.
- Developed in-browser QA test suite
using Selenium and
Java
page-object
model.
- Implemented MySQL database replication.
2008-2009 - Advantage Data Inc. - Senior Back End Developer
- Small financial data company. Linux, Oracle, PL/SQL, Perl,
C/C++, Subversion.
- Achieved 750x speedup over Oracle SQL correlation functions
using optimized C.
- Responsibilities ranged from systems administration to
software development and data analysis.
- Instituted source control use.
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.)
- Microsoft Windows: Occasionally updated .NET client module in
C# and maintained a proprietary Windows service.
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-present - Open-source contributions
- 2011 Abe
- Block chain browser
for Bitcoin and derivative currencies.
- Implemented in Python and portable SQL; tested on MySQL,
PostgreSQL, SQLite, Oracle, DB2, and ODBC.
- Free, open-source competitor
of Bitcoin Block
Explorer.
- Demo site
and backup.
- Trustworthy: you can audit the code.
- Reliable: you can run it on your own server free of
charge.
- Extensible: you can add features through a flexible
configuration format and code modification.
- Portable: tests for SQL features during
installation.
- Feature rich: first-of-its-kind features include multiple
currencies in one
interface, coin-days destroyed, and cumulative difficulty.
- 2011 javascript-bignum library
- Complete implementation of Scheme's base arithmetic
library in ECMAScript (JavaScript).
- Arithmetic with arbitrary precision.
- Exact operations: if inputs are exact numbers, output is
numerically correct, not rounded.
- Complex arithmetic and transcendental functions.
- All numbers support the standard ECMAScript number
methods with unlimited precision where applicable.
-
Demo number-line app: infinitely zoomable, scrollable,
customizable line of fractions and decimals.
- 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.
- 1997-2000 Perl 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 perldb (Perl debugger IDE
module) 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 <pickle.hh>
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).
- 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.
- 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
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