Narsil.org‎ > ‎My Career‎ > ‎

resume

Jerry L. Callen
411 Walnut Street, #16197
Green Cove Springs, Florida 32043-3443
+1 617-388-3990
info@narsil.com
www.narsil.com



Please note that I am now retired, and not interested in any permanent, full-time positions. Small consulting projects will be considered.

Skills

  • Unix systems programming in C/C++
    I have built and maintained very large, complex projects on both Unix/Linux and Windows. I'm very familiar with Unix system capabilities (general programming interfaces, network programming using TCP/IP, shared memory, multiple processes, signals, etc.). I am fluent in the customary Unix programming tools, such as make, Subversion and git, shell scripting and other "little languages", such as python, awk, etc. I prefer emacs or language-specific IDEs (such as IntelliJ and Visual Studio) for editing but can manage with vi when necessary.

    I have been programming in C++ for over 20 years and have an excellent grasp of object oriented programming. At Torrent I learned how to build flexible, extensible and efficient programming frameworks. Orchestrate, Torrent's core technology, is itself a framework, and it contains within its implementation many smaller, performance-critical frameworks.

    I have a programming style that stresses correctness, maintainability, early detection of errors, assertions and testability.

  • z/OS systems programming
    I have strong z/OS (IBM mainframe) skills, originally from 10 years of administrative systems programming experience and recently updated with my work at Rocket. I am fluent in z/OS assembly language and familiar with most aspects of z/OS system services, including functions available only to authorized code.

  • Unix system administration
    For several years I was the Unix system administrator for the servers at BCDSP; I also managed the email/web/DNS/Samba server in my basement for my own personal domain (though I've since moved it all to Google...). I am particularly comfortable with FreeBSD, Linux and Apple OSX, but have worked some with Solaris, AIX and HPUX. I'm very good at basic hardware maintenance and repairs, including network cabling (I have a very complete toolbox).

  • Windows programming and network administration
    While Unix is my primary and preferred programming environment, I have developed and maintained cross-platform products using both native Windows APIs and Unix emulation libraries (Cygwin, MKS Toolkit). I've also done Windows administration for small, mixed Windows/Unix networks.

  • Writing, training and mentoring
    I did an exceptional amount of writing (primarily for our group's wiki) and mentoring in my previous position at IBM. I've made four extended (3-week to 6-month) trips to IBM's development lab in Hyderabad, India for training and mentoring. These trips have been highly praised, by both the local engineering and management and by my management in the U.S., for the effects they've had on productivity and communications.

    I also enjoy working directly with customers. I've been the solo, on-site representative in many proof-of-concept, benchmarking and prototyping engagements. I've conducted multi-day training classes, adapting material to suit the customer on short notice, and handled many challenging customer support situations.

  • Databases, data warehousing and related skills
    My work at Torrent gave me broad exposure to relational database systems, especially as they are used in data warehousing and data mining applications. I have extensive experience in the issues of ETL, including data conversions (especially between mainframe formats, such as COBOL records, and more typical Unix formats), handling of missing values, flattening of hierarchical data, etc. I have a strong working knowledge of SAS, and I have a good conceptual understanding of modeling techniques and data preparation issues. I know enough SQL to be able to construct simple queries, define tables, etc.


Patents

Issued
  • 7,752,299 Segmentation and processing of continuous data streams using transactional semantics
  • 7,565,349 Method for computing frequency distribution for many fields in one pass in parallel
  • 7,392,320 Segmentation and processing of continuous data streams using transactional semantics
  • 6,801,938 Segmentation and processing of continuous data streams using transactional semantics
  • 6,311,265 Apparatuses and methods for programming parallel computers
  • 8,407,404 Record Sorting
  • 8,954,375 Method and system for developing data integration applications with reusable semantic types to represent and process application data


Employment History

Rocket Software
77 4th Avenue
Waltham, MA 02451
781-684-2330
http://www.rocketsoftware.com/

Rocket Software 

I was in Rocket's open source porting group, which brings open source tools from the Unix world to the IBM mainframe.  IBM's z/OS operating system supports most Posix interfaces, but there are many challenges, not the least of which is IBM's EBCDIC character encoding. I provided technical guidance to the team (since I have extensive experience in both the Unix and mainframe worlds), supported customer POCs, debugged complex problems, and did much of the product packaging using IBM's SMP/E system. 



March 2014 to April 2015

QlikTech, Inc.
275 Grove Street
Suite 3-410
Newton MA 02466
617-658-5300
http://www.qlik.com/

Qlik 

I returned to Qlik to continue working on data integration, improving the server-side data loader for Qlik's new Qlik Sense system. I wrote a mix of C++ and server-side Javascript (using node.js) to produce automated data analysis functions.




August 2013 to January 2014

Hadapt, Inc.
614 Massachusetts Avenue, 4th Floor
Cambridge, MA 02139
866-568-0814
http://www.hadapt.com/

Hadapt 

I worked on Hadapt's administrative tools (written in Python) and data catalog (written in Java). Zookeeper is used for cross-node synchronization, and Spring is used for dependency injection and transactionality. I also made modifications to the open-source Postgres database system (written in C), which is used by the Hadapt system for data and metadata storage.

Hadapt uses Jira and Confluence for issue tracking and internal documentation, and git for source control.  


August 2009 to August 2013

Qliktech, Inc.
275 Grove Street, Suite 2-320
Newton, MA 02466
617-658-5354
http://www.qlikview.com/

Qliktech 

I was a software architect and implementor, working primarily on the Qlikview Expressor processor parallel data processing engine. This is a natively cross-platform (Windows/Unix) product written mostly in C++. I also worked on the Qlikview Direct Discovery feature, which enables big data to be integrated into Qlikview.

I was originally hired into expressor software, which was acquired by Qliktech in June 2012. 


July 2004 to July 2009

International Business Machines Corporation
550 King Street
Littleton, MA 01460
(978) 899-2050
www.ibm.com

International Business Machines Corporation (IBM)

I joined IBM via Ascential Software in July 2004, as an advisory software engineer. In May 2005 Ascential was acquired by IBM and became part of the Data Management division of the IBM Software Group.

As at Torrent Systems (below), I did primarily Unix/C++ development, with a focus on flow based, parallel infrastructure. IBM holds U.S. patent #7,565,349 for a project I conceived of and implemented regarding data analysis. In addition to my direct technical responsibilities I did a lot of writing and training, and was the main technical liaison with IBM's development group in Hyderabad, India.


April 2000 to June 2004

Boston University School of Medicine
11 Muzzey Street
Lexington, MA 02421
(781) 862-6660
www.bcdsp.org

Boston Collaborative Drug Surveillance Program (BCDSP)

BCDSP is a small research group that specializes in post-marketing drug safety studies. Most of their studies use data from the General Practice Research Database (now the CPRD), which contains comprehensive medical histories on about four million patients.

I provided all manner of computer support to the 5 principal investigators and other support staff, primarily in these categories:

  • Network support. I had sole responsibility for maintaining the in-house network, consisting of about a dozen PCs (Windows 2000 and XP), a handful of servers (Linux and FreeBSD), several networked printers and a DSL internet connection. I did all hardware and operating system selection, installation and troubleshooting. Samba was used for Windows file sharing, and I installed and maintained all network services, such as DHCP, DNS, NTP, ssh, Apache, MySQL and more.
  • Database programming. The GPRD as used at BCDSP is stored as a collection of hierarchically structured files accessed via custom programs written in C++. A number of ancillary files (such as drug and diagnosis dictionaries) are stored relationally, using a combination of flat files and MySQL tables. The total database size is about 10GB.

    I was one of three programmers who handled data requests from the research staff. Most requests entail writing one or more C++ programs and some SAS. I devised a comprehensive system of application-specific classes that made most programs very compact and easy to write.

    I also wrote a number of tools to enable the research staff to perform limited queries against the data using web-based tools, implemented via Apache, Python scripts and C++ programs.

  • PC support. I was the in-house expert in all things Windows and fielded questions about email, Microsoft Office applications, SAS, printing problems and anything else that came up.

November 1998 to March 2000

Independent Consultant

My clients during this period included:
  • Torrent Systems, Inc.

    See Torrent Systems, below

    My contracts for Torrent were of two types: customer training and software development. I was responsible for a major revision of the customer training course for Torrent's Orchestrate product, and presented this course at a number of Torrent customers' sites. A copy of the training course materials is available for inspection.

    I had sole responsibility for porting Orchestrate to the HP-UX operating system, the first 64-bit port of an originally 32-bit product. Orchestrate is written in C++ and makes extensive use of templates and dynamic loading; these are notoriously non-portable aspects of C++ and Unix programming.

    I also performed a feasibility study prior to Torrent's decision to port Orchestrate to (then) DEC's Tru64 Unix for Alpha processors.

  • Data Miners, Inc.
    PO Box 609
    Amesbury, MA 01913
    (617) 742-4252
    www.data-miners.com

    Data Miners, Inc.

    I was hired by Data Miners to install a small network at their Boston office.

  • Boston Collaborative Drug Surveillance Program

    See BCDSP, above

    Before being hired by BCDSP as a permanent employee I was engaged for a three month consulting stint, with the goal of modernizing their in-house network. I selected hardware, planned the topology and did much of the physical wiring to replace their coax-based (and problem-prone) network with a Cat5E switch-based network.

    I also became involved with the GPRD at this time and developed prototypes of some of the web-based query tools described above. It was the success of these tools that led to BCDSP offering me a permanent position.


January 1995 to November 1998

Torrent is now part of
IBM Corporation
550 King Street
Littleton, MA 01460
(978) 899-2026
www.ibm.com

Torrent Systems, Inc.

I was one of the founding engineers (employee number 5) of Torrent Systems. Together we designed and built Orchestrate, a scalable flow-based programming system. We were issued U.S. Patents #6,311,265 and #6,801,938 for the design of Orchestrate; I am one of the 8 co-inventors on each patent.

I was completely responsible for the design and implementation the Orchestrate process manager, the portion of the system that creates, connects and monitors the collection of processes that execute an Orchestrate program. This process manager must work on any type of parallel computing system, including loosely-connected networks of workstations, large SMP systems like Sun's SunFire systems, tightly coupled MIMD systems like the IBM SP-2, and hybrids consisting of all of the above.

I also designed and implemented many Orchestrate operators, the small, specialized components that are linked together to form a complete Orchestrate program. I was particularly involved in construction of the statistics, data transformation and grouping operators. I was responsible for a key technical breakthrough that led to Orchestrate's high-performance and type-extensible sorting operator.

In addition to serving as a system architect and implementer, I was often the lead field support engineer for customer pilot projects and competitive evaluations. My combination of technical and communication skills made me particularly well suited for these situations.

Ascential Software acquired Torrent in late 2001; Orchestrate is now the primary data movement engine for Information Server (the ETL system formerly known as DataStage).

I left Torrent to primarily to spend more time with my family and to pursue other programming interests.


Thinking Machines was acquired in June, 1999 by
Oracle Corporation
500 Oracle Parkway
Redwood Shores CA, 94065
(650) 506-7000
www.oracle.com

January 1992 to December 1994

Thinking Machines Corporation (TMC)

At Thinking Machines I wrote software for the company's CM-5 massively parallel supercomputer. My particular specialty was the low-level library code that performed parallel data movement and transformation; this code effectively provided a data parallel machine abstraction that was used by the company's other software, such as the parallel Fortran and C* compilers and scientific subroutine library. The programming was done in a mixture of C, Sparc assembly language, and very low-level microcode for the CM-5's custom vector unit chips.

Thinking Machines declared bankruptcy in 1994. Sun Microsystems, which had been in negotiations to purchase Thinking Machines, offered many TMC employees, positions at their Chelmsford, MA facility. I declined Sun's offer because of the commute and remained at TMC for another six months, until it became clear that the software-only company that would emerge from bankruptcy was not a place I wanted to be. Thinking Machines was eventually absorbed by Oracle.


October 1989 to November 1991

Encore Real Time Computing Inc.

I was solely responsible for porting the Verdix Ada runtime system from Encore's Multimax computer systems to its newer Series 91 systems. The Series 91 systems were SMP machines based on Motorola's 88000 processor chip (now extinct). The programming was done in C, Ada and 88K assembly language.

I worked at Encore's Marlborough, MA facility, which was closed in late 1990. I declined the offer of a transfer to their Ft. Lauderdale office.


September 1985 to October 1989

Intermetrics, Inc.

Intermetrics provided me with a career change. I was hired for my knowledge of IBM mainframe computers (System 370) and operating systems (MVS, VM). Intermetrics was about to receive an IBM system as part of a contract to develop an Ada compiler, and I was to be the system administrator. Over time I moved into the compiler group and worked on the Ada runtime system. Thus began my introduction into system software development on Unix systems (since Intermetrics did all of its development on Unix) and parallel programming (since Ada has parallel processing built into the language, which requires extensive runtime system support). I programmed in Ada, C and 370 assembly language.

After I left the company, Intermetrics merged with Pacer InfoTec to form Averstar; Averstar was bought by the Titan Corporation, which was acquired by L-3 Communications in 2005.


April 1975 to August 1985

System Programmer / Administrator for IBM Mainframe Computers

I left college in 1975 and began a ten-year career working with IBM mainframe computers (System 370) in commercial data processing environments. During this time I acquired a profound understanding of IBM's MVS and VS1 operating systems at all levels, from application programming in PL/1, COBOL and assembly language through mission-critical system programming, including writing operating system modifications, installation and maintenance of system software using SMP, and all aspects of performance tuning. I also became very familiar with the world of commercial data processing, which was particularly useful in my later work at Torrent as a field engineer.

The obligatory alphabet soup of program products (IBM and otherwise) that I worked with follows. I have only listed products with which I did significant work.

VS1, MVS, VTAM (including 3270 datastream programming in large SNA networks), IMS/DC and DB, DL/I, CICS, JCL and utilities, TSO, ISPF/PDF, PL/I, COBOL, MARK IV, SPSS, SAS, VSAM, SMP/E, PUTs/PTFs/APARs, and a partridge in a pear tree.

The organizations I worked for during this period were:

  • September 1982 to August 1985
    The University of Chicago, Chicago, IL
  • December 1981 to June 1982
    Morgan Stanley & Company, New York, NY (consultant, not an employee)
  • September 1979 to November 1981
    The New York City Board of Education, Brooklyn, NY
  • September 1978 to July 1979
    Hunter College of the City University of New York, New York, NY
  • April 1975 to August 1978
    Orange County Public Schools, Orlando, FL

Education

September 1972 to April 1975

I attended Florida Technological University (now University of Central Florida) as a computer science major. I did not graduate.

Outside Interests

  • Folk dance (Morris, New England contra, longsword)
    I dance with the Pinewoods Morris Men (PMM) and attend local contra dances whenever my schedule permits. PMM performs annually in the Christmas Revels at Sanders Theater in Cambridge; I have had the privilege of performing with them since 2003. I also play concertina.
  • Backcountry and telemark skiing, hiking, sailing
  • Travel
Comments