Curriculum Vitae
Robert Fromont

Date of Birth: 26 September 1972

Résumé:

I am an open source, full stack developer with years professional experience, working primarily with Java and web technologies, and specializing in natural language processing (NLP) and speech technology.

Education

Born in New Zealand, I attained a BA in Philosophy at the University of Auckland and an Advanced Certificate in Business Computing at Auckland Institute of Technology (both in 1996), a BSc in Linguistics at the University of Canterbury (in 2003), and a BA(Hons) in Linguistics at the University of Canterbury (in 2013).

My studies gave me, among other things, a good theoretic grounding in logic and computer science, the practicalities of software development in a variety of paradigms and languages, and a broad understanding of linguistics, including sociolinguistics, syntax, phonology, and speech processing.

Skills and Experience

I have more than two decades of professional experience working in various roles and using a variety of technologies. Starting as a C/C++ programmer in the telephony and internet connectivity industries, I've also had roles managing the development and architecture of 'traditional' RDBMS based client/server systems using VB6, C#, and SQL Server, as well as web development with server-side MySQL, JSP, and Node and client-side HTML, CSS, and JavaScript, culminating the sole-charge development of a Java-based open source linguistics research tool, called LaBB-CAT, for the University of Canterbury in New Zealand, which has also been adopted in a number of other academic and industry settings internationally.

Having many years of experience in software design, implementation, documentation, and testing, relational database design, data and infrastructure migration, front-end user-experience design, web-based APIs and apps, and cross-platform mobile app development and deployment, I have often been entrusted with end-to-end management of software projects.

Working in both academic and commercial environments has required me to develop a range of communication skills, allowing me to interact effectively, both face-to-face and in writing, with principal investigators and founders in order to act as a bridge between research needs and technological possibilities, and also develop and present training materials for research assistants and operators. My experience with clinical speech elicitation and hearing screening apps has also required a deep empathy for one-time study participants who have little prior knowledge of what's required of them, in order to develop a user experience that is self-explanatory and maximally usable by participants who may have only superficial experience with using mobile and web-based technology, and who may have impairments that might otherwise make participation difficult.

I have also published a number of academic articles, and presented at conferences, in the field of Corpus Linguistics and Speech/Language technology.

I've lived in Buenos Aires, Argentina since 2004, where I have been working remotely for years.

Summary of Skills:

Programming:

Java
years experience, including the following technologies:
  • Servlets
  • Java Server Pages (JSP), JSP Standard Tag Library (JSTL), Expression Language (EL), and custom tag libraries
  • Applets, WebStart and standalone applications
  • Java Database Connectivity (JDBC)
  • Java Media Framework (JMF)
  • Play Framework
  • ANTLR for domain-specific-language grammar implementation
Web Technologies
years experience with client- and server-side coding of websites and web applications, including the following technologies;
  • HTML5, CSS3, including responsive web design, flex, and keyframes
  • JavaScript, DOM API and package authoring
  • Browser extension development
  • JQuery, JQueryUI and JQueryMobile
  • AJAX
  • JSON
  • React
  • Angular and TypeScript
  • Mobile app development with Appcelerator Titanium and Apache Cordova
  • NodeJS with Express/Handlebars for server-side implementation
SQL
years experience including development of stored procedures, user defined functions, triggers, etc., using the following DBMS's:
  • MySQL
  • MS SQL Server 7/2000/2005/2008
  • MS Access
R
Some professional experience integrating with R programs and authoring an R package.
Python
Some professional experience using Python-based NLP tools, integrating Jython with Java-based systems, and authoring a Python package.
C#
15 years object-oriented programming, under Windows XP/NT/2000,Vista, 7, etc. (including development of web services, SQL Server data access)
C++
3 years experience under MS-DOS, Unixware(2.1), Solaris, Windows 95/98/ME/NT/2000
Objective C
Some experience developing iOS plugins for Apache Cordova applications, and a Chrome Native Messaging Host for integration with a browser extension.
Visual Basic
15 years experience, including Object Linking & Embedding (OLE), Dynamic Data Exchange (DDE), database access (using MS Access and MS SQL Server), calling the Windows API, and integration with .NET applications, using VB6
PHP
Some professional experience implementing various web-based applications, connecting to MySQL, PostGreSQL and ODBC data sources.
C
2 years experience, under MS-DOS, Unixware (1.1), AIX, Linux
ELISP
Some experience writing extensions for Emacs.

Operating Environments:

Academic History:

Advanced Certificate in Business Computing
Auckland Institute of Technology, 1996

C/C++/VB Programming, Operating Systems

Bachelor of Arts
University of Auckland, 1996

Philosophy, Computer Science, Psychology, Music

Bachelor of Science
University of Canterbury, 2003

Linguistics, Cognitive Science, Psychology, Mathematics

Bachelor of Arts with First Class Honours
University of Canterbury, 2014

Linguistics

Employment History:

New Zealand Institute of Language, Brain and Behaviour (NZILBB), University of Canterbury

Data Software Architect
Part-time since June 2003, full-time since 2020
  • Design, development and maintenance of LaBB-CAT, a multimodal language annotation store and corpus management system, for storage and manipulation of speech and language data to facilitate a wide variety of research projects. The system supports integration with commonly used 3rd-party tools used by researchers in this field, facilitating corpus-building using existing and new data, and extraction for processing, analysis, and visualization. It also facilitates automatic annotation of large amounts of data en-masse, reducing drudgery and increasing the rapidity with which research outcomes can be reached.

    The system enables language research at a speed, scale, and accessibility that was previously impossible in this domain, and has been adopted in a number of research institutions including:

    • the NZILBB at the University of Canterbury (Jennifer Hay, Margaret Maclagan, Jeanette King, Kevin Watson, Lynn Clark, Megan McAuliffe),
    • the Glasgow University Laboratory of Phonetics (Jane Stuart-Smith),
    • Arizona State University (Visar Berisha, Julie Liss),
    • ZAS Berlin (Stefanie Jannedy),
    • University of Hawaiʻi at Mānoa (Katie Drager),
    • Adam Mickiewicz University in Poznań (Kamil Kaźmierski),
    • Medical University of South Carolina (Boyd Davis, Charlene Pope),
    • University of Oxford (Sarah Ogilvie),
    • Griffith University (Gerry Docherty), and
    • Australian National University (Ksenia Gnevsheva, Catherine Travis).

    This work includes:

    • HTML5/CSS3/JavaScript browser-based user interface design, including Angular/TypeScript components
    • media handling using Java APIs and HTML5 elements,
    • automatic annotation modules, including integration of existing lexical databases (CELEX, Unisyn, CMU Dict) and NLP software (Stanford POS tagger, CLAN MOR) to provide enriched linguistic searching capabilities,
    • machine learning modules, such as integration with HMM Toolkit (HTK) to train voice recognition models for fine-grained time-alignment,
    • security integration,
    • server-side and client-side integration with 3rd party tools, using web-based APIs, Java applets and browser extensions
    • management of conversion of audio and annotation data between different formats,
    • design, develop, and document a web API and integration SDKs for Java, JavaScript, R, and Python,
    • devising and implementing a mechanism to allow the server to be deployed as a local-only instance, for easy installation on user's desktop computers (rather than a web server),
    • containerisation via Docker,
    • presentations, training courses/materials,
    • documenting the project with in-app online help, websites, journal articles conference presentations, and YouTube videos.
  • Write Python and JavaScript scripts for scraping web data in order to extract corpus text and meta-data from the internet, using JSON-based the web APIs and SDKs of social media sites, and using XPath to extract data from the HTML of other sites.
  • Design, development and maintenance of open-source mobile apps for eliciting speech samples for direct upload to LaBB-CAT, for Android, iOS, and browsers. It presents participants with a series of screens that ask questions, present texts to read, or textual/visual stimuli for eliciting spontaneous speech, records their answers and speech, and uploads the resulting data to LaBB-CAT.

    The app has been used in a number of research projects, including the development of a corpus of dysarthric speech, a migraine-diary study, and gathering speech and attitude data from the trans community.

  • Design, development and maintenance of an open-source web-based hearing screening test, using Java/MySQL for serving audio stimuli and gathering/analysing responses, and Angular/TypeScript for user interface. A password-protected administration interface was also implemented for test administrators to specify test parameters and access participant data.

    The test is localizable for different languages, and instances currently exist for New Zealand English and Te Reo Māori.

  • Production and maintenance of Excel spreadsheets, editor plugins, and other tools to aid academic staff and research assistants.
  • Support for academic staff, collaborators, post-docs, research assistants, and students.
  • Server administration and maintenance, including open-source software installation and upgrade, data and web-app migration, administration of GitLab repositories, and facilitation of the provisioning of computing and storage resources.

Aural Analytics

Senior Software Engineer
Part-time, December 2016 to September 2019
  • Development, maintenance, and deployment of speech corpus back end, including integration with proprietary annotation software.
  • Design, development, and maintenance of speech data collection and annotation mobile apps, including 2017 Scrip Award winning app 'SpeechAssess'.
  • Microservices infrastructure design and development using Amazon Web Services (AWS) technologies.

PatronBase (formerly Solution Architects)

Chief Software Architect
Part-time, from April 1999 to September 2014
  • Maintenance of legacy software modules (in VB6 and C#, on Windows systems, including the ticketing system PatronBase), from UX through to backend database design, including bug-fixing and feature enhancements, as well as migrating from MS Access to MS SQL Server data access and maintaining reporting tools using Crystal Reports
  • Production of install sets (using InstallShield Express and MS Developer Studio)
  • Integration of JavaScript and Java technology into Lotus Notes environment to facilitate web-enablement, and to allow enhanced visual presentation of data by the addition of graphing applets and development of a data-collection applet for extracting data from Lotus Notes databases
  • Specification, design, implementation, and testing of new tools, software modules, products, and web applications, using VB6, C#, Java, Cold Fusion, MS Access, MS SQL Server, MySQL

Qbik

Software Developer
Full-time, from September 2000 to June 2001
  • Development of a good understanding of common internet protocols, from the fundamentals of IP packet structure, to higher-level protocols such as FTP, PPTP, HTTP, etc.
  • Maintenance of the WinGate engine (Internet proxy server), in C++
  • Maintenance of WinGate's GUI configuration and monitoring tool, GateKeeper, in C++ using MFC
  • Maintenance of the WinGate Internet Client, a Layered Service Provider DLL for internet connectivity through WinGate using Qbik's Winsock Redirector Protocol (WRP), in C++
  • Maintenance of the WinGate WWW Proxy Authentication Client in Java
  • Mainenance of WinGate's Network Address Translator (NAT), in C, using NuMega's SoftIce for network driver debugging, and Microsoft's Network Monitor for analysis of IP packets

Boulevard Web Systems

Contract Web Application Developer
Part-time, from July 1999 to September 2000
  • Design, development and maintenance of an internet-based Application Service Provider platform (netStep) and various application modules (including an internet-café management system and a point-of-sale/inventory system), using Java Servlets, JSP, and PHP web application development, LDAP directory design, maintaining Delphi client applications, and prototyping clients using Java technology, and an XML middle-ware component and a SOAP server.
  • Development of web-based internet applications for external clients, using PHP/HTML/JavaScript.
  • Development internal web-apps including development of a Java applet/application for planning and project management (using Swing components and JDBC to connect to MySQL)

Publications:

Public Code Repositories

Referees:

Other Interests: