Steven R. Loomis
Objective
To work on software projects which make a difference for real people, with an emphasis on internationalization.
- Location: Texas, USA (Central Time)
- Email: srl295@codehivetx.us
- Twitter/X: @srl295 • GitHub: @srl295 • LinkedIn: linkedin.com/in/srloomis • Stack Exchange
Current Positions
- Owner, Code Hive TX, LLC
- Chair, Unicode CLDR Digitally Disadvantaged Languages (DDL-SC)
- Vice-chair, Unicode Infrastructure Committee
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: bash, XML/XLIFF, TypeScript
- Professional Working: sql, Vue3, 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 11 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 II 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, Google Compute Platform, Vagrant
- CI/CD: Jenkins, Travis, GitHub Actions, Artifactory, IBM Cloud CLI, Hashicorp Vault
- Team: Jira, Trac, ZenHub, 1Password
- Insights: New Relic, Prometheus, Grafana, Datadog, QuickBooks API
- Edit: VS Code, Emacs, Eclipse
- Web: Servlets/J2EE, Express, Vue, Webpack
- Store: zfs / RAID, routing and VLANs
Experience
Owner, Code Hive Tx, LLC (2021—Present)
Some of our contracts include:
- CLDR Infrastructure: The Unicode Consortium needed 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.
- We were the recipient of and completed a Unicode AAC Grant in 2023 to progress the Keyboard specification.
- Keyman LDML — design and implementation to add LDML support to Keyman.
- Fintech sector — implementation of a distributed computing system for testing and machine learning training. Improvements to automated build system, and alerting/observability through custom Prometheus collectors. General IT support.
- Globalization consulting
Independent Contractor (2020—2021)
- CLDR Infrastructure (see above)
- All contracts were renegotiated with Code Hive Tx, LLC
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
andgp-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
- 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)
University of Malta (2001)
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.
(This work was pursued while on a voluntary Leave of Absence from IBM, which resumed as full-time in 2002.)
Software Engineer, Taligent Inc., Cupertino, California. (1993—1997)
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.
Instructor, The Kings Academy, Los Altos, California (1992—1993)
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 II environment), with assembler. For MacOS and UNIX.
Set up computer lab with Windows 3.1, and PromiseLAN network. Provided Technical support for the lab.
Consultant to Color Blend Painting, San Carlos, California (1990)
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.
Software Engineer, IntelliChoice, Cupertino, California (1989)
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
US 6,233,622 B1 - Adapter and handler framework for web server extensions.
US 9,063,636 - Management of input methods
US 10,810,211 B2 - Dynamic expression sticker management
Awards
- IBM Eminence and Excellence (2015, 2016)
- IBM Open Source Engagement (2015, 2016, 2017, 2019)
- IBM Manager’s Choice (2014, 2015, 2016, 2017, 2019)
- Unicode Bulldog Award for contributions to ICU and CLDR (2009)
Education
Degrees:
- 2014: Bachelor of Arts, Computer Science, Thomas Edison State University (Trenton, New Jersey, USA)
- 1999: Associate in Arts, Interdisciplinary Studies, De Anza College (Cupertino, California, USA)
Coursework:
- 2001: Windows 2000 Certification, University of Malta (Tal-Qroqq, Malta, Europe)
- 1993: C++, West Valley College (Saratoga, California, USA)
- 1989: C, Foothill College (Los Altos, California, USA)
Linguistic Protocols
Human Language skills:
en-US
(American English): Fully Proficient. Texan is a challenge sometimes.es-US
(US Spanish / español estadounidense): Able to read and, mostly, hear. Can perform complex OS installations in Spanish. (College-level Elementary Spanish course, 9 Semester Hours plus continuing self study)ja
(Japanese): Some conversational training (4 Semester Hours college) and experience. Some recognition of Kanji/Han characters.grc
(Koine Greek): Some reading skill.mt
(Maltese): Some conversational skill. (Conversational course work, plus self-guided coursework, plus self-study and one year residency)
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 translation projects, ICU/CLDR and the UTC/Unicode Script Ad Hoc.
Other Experience
Reformed Heritage Church (Hanover Presbytery) of San José, California
2014—2020: 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, and 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 on-prem 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: Fiber, 10/100/1000baseT, 10base2, PoE, Mikrotik router management, 802.11b/g/n wireless, AppleTalk, Farallon PhoneNet. Network Analyzer operation. Power over Ethernet planning.
- Home monitoring with Prometheus (including custom exporters), Grafana.
- TrueNAS 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.