Steven R. Loomis • i18n Code Sculptor

Objective

To work on software projects which make a difference for real people, with an emphasis on internationalization.

Qualifications

Disciplines

  • Agile practice (dev + scrum lead)
  • DevOps, CI/CD, and SOD
  • Object Oriented Development
  • Test Driven Design
  • Multicultural enablement: Globalization and Localization

Languages

  • Native/Bilingual: C/C++, Java, JavaScript (Node.js, browser, embedded), HTML/CSS, gnumake
  • Full Professional Proficiency: gnumake, bash, XML/XLIFF
  • Professional Working: sql, Vue, jQuery
  • Limited Working/Conversational: sed, TeX/LaTeX/XeTeX
  • Elementary: python, PostScript, 6502
  • I can order lunch in: perl, php, 8080

Platforms

Mainframe/Handheld: MacOS/MacOSX, GNU/Linux (Slackware, RedHat, Debian, Mandrake, Ubuntu, NixOS), Microsoft Windows 10 through 3.1, AIX, IBM i (OS400), IBM z (z/OS), Solaris/Illumos, NeXT, PalmOS, Coherent, IRIX, A/UX, CTIX, HP/UX, BeOS/Haiku, FreeBSD, Taligent CommonPoint, Newton, Apple ][ DOS, MS-DOS, OS/2

Embedded: Microchip PIC16F84, Arduino (Atmel AVR), Raspberry Pi, BeagleBone (TI OMAP3530), Tessel, ESP8266 (PlatformIO), Espruino

Tools

  • Cloud: Docker, Kubernetes, Cloud Foundry, OpenWhisk/IBM Cloud Functions, Cloudant, Kafka, S3
  • CI/CD: Jenkins, Travis, GitHub Actions, Artifactory, IBM Cloud CLI, Hashicorp Vault
  • Team: Jira, Trac, ZenHub, 1Password
  • Insights: New Relic, Prometheus, Grafana
  • Edit: VS Code, Emacs, Eclipse
  • Web: Servlets/J2EE, Express, basic Vue.js

Experience

Independent Contractor (2020-)

  • Currently contracting with The Unicode Consortium to improve the CLDR project’s infrastructure. Focus areas include continuous integration and deployment, modernization and paying down tech debt, and developer documentation. Environments and tools include Java/Eclipse, Node.js, Maven, and Github Actions.

IBM Corporate Globalization (1998—2020)

  • Providing internal-facing globalization-related consulting services across the IBM Corporation as well as external-facing to clients in multiple sectors, including US Federal, large multinational corporations especially in the finance sector. Part of the team executing on the complete relationship from RfP phase through completion.

2020-2020: OpenWhisk adoption lead

  • Responsible for driving adoption of OpenWhisk-based serverless architecture and best practices throughout the G11n Team
  • Developed sample applications and detailed developer guidance.
  • Drove interlock with serverless platform owners and engaged with OpenWhisk open source community to find answers, solve problems, and even contribute back to the open source solutions.

2019-2020: Project Manager, G11n Tech Team

  • Took over a project team in mid-cycle on short notice.
  • Organized sprint plans
  • Responsible for communicating with stakeholders as to progress and bringing closure on requirements
  • Scope of project management role included development teams in Asia, North America, Europe and Africa.
  • Saw the completion of a flagship web app and underlying cloud translation services through v1.0 to UAT

2016-2020: G11n Tech Team

Background: Globalization Pipeline is a Translation-as-a-Service software offering which is in the IBM Cloud (aka Bluemix) catalog.

GTech Microservices

Responsibilities:

  • Part of team designing and architecting microservice-based XLIFF translation pipeline services
  • Responsible for Human Post Editing microservice in Java (Spring Boot)
  • Responsible for build engineering of CI/CD processes for building and testing the microservices and API orchestrator.
Globalization Pipeline

Responsibilities:

  • Evaluated and implemented Cloudant (apache couchdb) based data store subsystem, including custom backup facility
  • Interfaced with IBM's Translation Service Centers, as developer of an integration agent managing XLIFF-based human post editing (Node.js).
  • Deployment of New Relic based monitoring and alerting, including custom synthetics and APM integration.
  • Driving adoption of Slack for team communication and automated application notification
  • Participated in onboarding of Globalization Pipeline users
  • Developed Node.js based SDK and client ( gp-js-client and gp-js-cli )
  • Developed custom integration solutions based on team translation data requirements
  • Developed Openwhisk-based translation connector
  • Gave internal and external presentations to showcase the Globalization Pipeline, including a co-keynote at Fluent
  • Architectural and development support to Elastic Kibana globalization and integration with Globalization Pipeline

2013-2020: Node.js

Role: Core Collaborator, CTC/TSC member, WG leader, WG member

  • Drove Intl (ICU-based) feature enablement “on by default” in Node.js v0.12
  • Engaged with IBM, RedHat stakeholders to continously support and refine internationalization availability, configuration options. Provided support via internal Slack channels, external GitHub issues and IRC.
  • Continued to support the full-icu npm module, which has over 100,000 weekly downloads.
  • Node TSC member (2015)
  • Started the Intl WG, and member of successor i18n WG
  • Built a tool to simplify npm authentication to our internal npm repository for ci/cd

1997-2020: International Components for Unicode

Role: IBM’s Technical Lead for ICU for C/C++, Technical Committee Member

Background: The International Components for Unicodeis an open source C/C++ and Java project providing functionality for manipulating cultural and langauge-sensitive text using the Unicode standard.

As Technical Lead, I am responsible for representing IBM’s interests and that of its customers, particularly with regards to functionality and features in the C/C++ API. I develop and test C, C++ and Java APIs as needed.

Highlights:

  • C test framework
  • Automated testing design and maintenance
  • Automated release system maintenance
  • Calendar and Locale related classes (C++)
  • Implemented the ULI-TC segmentation exception break iterator
  • jitterbug/cvs to trac/svn (2006)
  • trac/svn to GitHub/Jira (2018)
  • Initiated effort to transition ICU to the Unicode Consortium

Developed web and CLI applications using ICU: Locale Explorer, UnicodeBrowser, Transliterator.

Involved in many aspects of project. In charge of build and release issues. Emphasis on high quality work with quick turnaround for internal and external users. Involved in support and resolution of all aspects of product use (installation, build problems, code problems, debugging). Key role in support of single code base across many platforms (Windows NT,95,98,2000,XP,7,8,10/Linux/HPUX 9,10/Solaris/AIX/IBM system z (390), i (400), with support for BSD,Mac and many other platforms.) General "problem solver" when difficulties occur. (Especially: Hardware, UNIX, network issues). Proposal and implementation of changes to build and installation process, including a new tool for data packaging.

Source Repository, Defect Tracking, Development Process tools support: Engineered the ICU team's transition from CVS and Jitterbug to Subversion and trac. Designed and implemented custom python plugin modules to support ticket/changeset integration and to provide a review process. Provide extensive testing and maintenance.

2002-2020: Common Locale Data Repository

Role: founding member of TC, design, tooling, infrastructure

Responsibilities:

  • Developed the Survey Tool, which is used to collect linguistic data
  • Infrastructure: 2019 migration from trac/svn to JIRA/GitHub
  • Engaged with linguistic communities to collect and improve the status of language support, particularly with respect to minority languages.
  • Conference presentation and discussions

Unicode Consortium (2012-2020)

  • Unicode Localization Interoperability (ULI-TC/SC) chair
  • IBM's primary representative to Unicode and to INCITS JTC1/L2/SC2 USNB
  • Participate and contribute to UTC meetings and Unicode technical standards
  • Assist in infrastructure and development concerns

OASIS

  • Participated in XLIFF-TC, and XLIFF-OMOS-TC

ECMA

  • Participated in ECMA262 (JavaScript) and contributor to ECMA402 (I18n)

2006-2016: Sun (Oracle) Java Liason

Role: Liaison between IBM and the Java2D group at Oracle (previously Sun Microsystems), Santa Clara in regards to complex text layout and bidirectional text processing areas of the Java environment.

Responsibilities:

  • BiDi functionality
  • Integration and support of the ICU layout engine
  • Spearheaded project to integrate tha HarfBuzz layout engine (completed in JDK/Java 9)

2001 (Jan-Dec): University of Malta

Systems Engineer, Department of Computer Science and Artificial Intelligence, University of Malta (Europe).

Worked on Maltese Language localization, advocacy, and standardization activities. Technical advisor on font, keyboard, processing, and educational activities. Appearances in local media in support of Maltese language computing.

(Note: continued on a LOA basis with IBM during this time.)

1993-1997: Software Engineer, Taligent Inc., Cupertino, California.

On Jan 1, 1997, Taligent became a wholly-owned subsidiary of IBM. At the end of 1997, I transitioned to IBM.

Bidi Browser: Worked on a small team to provide Arabic and Hebrew enablement in a major web browser (1996)

WebRunner Server Works: Designed, developed, supported Taligent WebRunner Server Works, C++ and Java frameworks providing an early abstraction for server-side dynamic content independent of operating systems and server plug-in mechanisms such as CGI/NSAPI/ICAPI/ISAPI. US Patent #6,233,622. Re-imagined as Server Works for Java, an extension of the Java Servlet API.

My contributions included: Initial concept, URL handling and tests (RFC 1808), integration with existing Web Servers, Sample Code and technical support. Represented Taligent and IBM in a product review for a major magazine. Staffed a kiosk at trade shows demonstrating the WebRunner Server Works packages.

CommonPoint Messaging Frameworks: Developed interfaces and tests for low-level POP3 and SMTP code.

Media/Distributed Communications Group: Implemented CORBA IDL parser, designed and implemented service broker, port mapper, and service starter (the Primary Object Directory). Contributor to CommonPoint communications and service access frameworks including TCP/IP protocols on AIX.

Build and pre-build integration support. (MacOS/MPW and TalOS.) Maintained the 'lab', including extensive unofficial technical support, including MacOS applications and configuration/AIX/Solaris/Ethernet hardware/security. Departmental webmaster (1993). Tools support including C++ HTMLizer, URL Chat for internal link sharing, a GUI ‘tail’ for build logfile viewing (MacOS), and a facility for communications channel performance testing.

1992-1993: Instructor, The Kings Academy, Los Altos, California

Instructed Junior and Senior High School Students in fundamental programming using the BASIC and 6502 assembly languages.

Developed and supported “AuntieEm”/Mac6502/asm - 6502 emulator (Apple ][ environment), with assembler. For MacOS and UNIX.

Set up computer lab with Windows 3.1, and PromiseLAN network. Provided Technical support for the lab.

1990: Consultant to Color Blend Painting, San Carlos, California

Provided Macintosh application consulting, troubleshooting. Among other projects, worked on prototype of a Hypercard-based contact management application. Provided training in the HyperTalk programming language.

1989: Software Engineer, IntelliChoice, Cupertino, California

UI development and testing for a HyperCard-based (HyperTalk langauge) car information kiosk, guiding users through vehicle selections based on user preference. Extensive integration with XCMDs and XFCNs.

Patents

Awards

  • IBM Eminence and Excellence (2015, 2016)
  • IBM Open Source Engagement (2015, 2016, 2017, 2019)
  • IBM Manager’s Choice (2014, 2015, 2016, 2017, 2019)

Education

Degrees:

  • 2014: Bachelor of Arts, Computer Science, Thomas Edison State University (Trenton, New Jersey)
  • 1999: Associate in Arts, Interdisciplinary Studies, De Anza College (Cupertino, California)

Coursework:

  • 2001: Windows 2000 Certification, University of Malta (Tal-Qroqq, Malta, Europe)
  • 1993: C++, West Valley College (Saratoga, California)
  • 1989: C, Foothill College (Los Altos, California)

Awards:

  • 2009: Unicode Bulldog Award for contributions to ICU and CLDR

Linguistic Protocols

i.e. human language skills:

  • en-US (American English): Fully Proficient.
  • es-US (US Spanish / español estadounidense): Able to read and, mostly, hear. Can perform complex OS installations in Spanish. (Elementary Spanish course, 9 Semester Hours plus self study)
  • ja (Japanese): Some conversational training (4 Semester Hours) and experience, but I need to check the equivalent of stackoverflow for most tasks. Some recognition of Kanji/Han characters.
  • grc (Koine Greek): Some reading skill
  • mt (Maltese): Some conversational skill.

Familiar, with low levels of comprehension, with a wide variety of scripts and their distinctions: Arabic, Hebrew, Cyrillic (Russian), Devanagari (Hindi) and neighbors, Syriac (Assyrian), Japanese and Chinese ideographs.

Interested in Braille (limited skill) and sign languages. Some experience and much interest in linguistics/computational linguistics via IBM Translation projects, ICU/CLDR and the UTC/Unicode Script Ad Hoc.

Other Experience

Reformed Heritage Church (Hanover Presbytery) of San José, California

2014—present: Elder

Responsible for shepherding ministries/pastoral care, education including leadership training, and periodic sermon preparation.

2008—2014: Deacon

Responsible for charitable distributions in support of needs, financial counseling, as well as support of ministry needs.

2009—2015: Treasurer (CFO)

Responsible for tracking income and expenses, payroll, records management, and bank interaction. Drove improvements to forms and policies around best practices. Drove migration from shrinkwrap QuickBooks to QuickBooks Online. Managed education sessions for onboarding of additional treasury team members.

Personal Projects

Amateur Radio: US General Class License (including 5 wpm Morse Code).

Working on experimental AX.25 socket bindings for Node.js. Contributed code improvements to LinPac, an AX.25 terminal application. Managed the Packet Radio tent for WVARA Amateur Radio Field Day.

1990—present: UNIX at home.

  • UUCP, SMTP, POP, IMAP, HTTP/S, SSH/SSL configuration and management.
  • multi-tenant virtual hosting.
  • network performance analysis and troubleshooting.
  • firewall requirements, implementation, and maintenance.
  • docker-based FreePBX (Asterix SIP/s) installation for home telephony.
  • Bulletin Board (BBS) software design and implementation.
  • Network cabling, installation, support. Physical layers through high level applications: 10/100/1000baseT, 10base2, PoE, Mikrotik router management, 802.11b/g/n wireless, AppleTalk, Farallon PhoneNet. Network Analyzer operation.
  • Home monitoring with Prometheus (including custom exporters), Grafana.
  • FreeNAS deployed with RAID for robust storage. Custom scripts for off-site backup.

Other projects

  • custom MacOS WDEF development
  • HTML Color Picker (Mac)
  • Tetris and Asteroids game clones
  • rule-based MIDI “music” generation
  • Ports to MacOS: gnuchess, sokoban, xwator, t_tris
  • SQL-based chatroom 'bot'
  • AOL-IM plugin implementing Eliza
  • Gravitational simulations
  • Music engraving using Finale and LilyPond
  • LaTeX/XeTeX: Sermons, Unicode proposals, and two larger (100+ page) book projects (a Christian education book, and a historical family memoir)
  • Soldering (learning SMT).
  • Arduino/ESP8266/Raspberry Pi/BeagleBone hardware experiments with robotics and environmental sensors.

git.io/srl295