Tony Morris

Software Engineer, specialising in applying Functional Programming to achieve high-assurance, rapid software development • +61 408711099 • Brisbane, Australia

github projectsgitlab projectspresentations

Professional Experience

Pricipal Software Consultant
Simple Machines

Providing expert software and data engineering outcomes to clients working in a variety of domains. Technologies implemented include:

Chatroullete is a live video-streaming platform for one-on-one social interactions. The platform is written using the Scala programming language with many underlying technologies focussed primarily on managing load. Apache Pulsar distributes the high load of video-streaming across multiple machines while also maintaining responsive times to end users.

Insurance Australia Group (IAG) is a large insurance company with many disparate data systems, such as Oracle 9i and PostgreSQL, each containing similar insurance data. The goal of this project is to integrate the data in these database systems to present a single live view and reporting system to company employees so that they may respond to insurance claims and policy renewals. Kafka streaming is the primary technology used to integrate the data and Typescript/HTML provides a front-end for viewing the live data and other analytics.

Simple Machines ANAML is a web-based application for (data science) feature engineering and data analytics. Users implement data features and feature workflows that are customised to a business’ application domain. The workflows are executed on a high-performance Apache Spark back end.

Senior Flight Instructor
Flightscope Aviation

Providing ground and in-flight instruction to ab initio students in single-engine, 3-axis aeroplanes. Based at Archerfield Airport, Brisbane.

Course Coordinator, Lecturer
School of ITEE, University of Queensland

Course Coordinator, Lecturer and Tutor for COMP3400 Functional & Logic Programming. Semester 1, 2020.

Functional Programming Team Leader
Queensland FP Lab, Data61, CSIRO

Managing a team of 10 software developers, with various software projects that utilise functional programming to achieve the objectives. This role as team leader of the Queensland Functional Programming Lab involves the delivery of impact-based software solutions to industry and government. Examples include:

Most software development at the Queensland FP Lab is done using the Haskell programming language, but others are also used, such as Purescript, Scala, Elm and Python.

Functional Programming workshop presenter

Overcoming the challenges with the transfer of knowledge in Functional Programming to other software engineers. Author and presenter of the Data61 FP course, founder of Brisbane Functional Programming Group and regular conference presenter (see presentations).

I am passionate about accurate and successful transfer of knowledge in the area of Functional Programming. Over the previous 15 years of implementing Functional Programming solutions, I have also developed and delivered material to help others take advantage of the benefits and practical applications that are available to them.

Senior Software Engineer
National ICT Australia

Working on various software projects under the Australian federal government technology research centre NICTA. Some of these software projects become their own companies, with independent revenue. Some others continue on as open source software libraries that are used throughout various industry and Australian government departments.

NICTA was discontinued by the Australian government and merged with CSIRO in 2015 under the name Data61.

Senior Software Engineer
Ephox Pty Ltd

Working with Haskell (primarily), Scala, Java and Javascript to solve business problems for a product company specialising in rich editors. These projects include the TinyMCE text editor, which appears in most web forms for rich text editing, and WebRadar for content analytics and specifically, to integrate with related IBM software solutions.

Ephox has since changed names and is now called Tiny.

Senior Software Engineer
Eyecon Pty Ltd

Implementing gaming solutions using the Java/J2EE platform. The gaming solutions include online gaming platforms and physical gaming machines. Much of the work here involved not just implementation, but testing and assuring compliance with regulatory requirements.

Created the open-source argonaut library for Scala, which implements a JSON parsing and processing library with algebraic error-reporting and created the codec pattern for user-defined data types. This library was required and utilised for an IBM WebSphere/DB2 production application.

Senior Software Engineer
Paycorp Payment Solutions Pty Ltd

Implementing payment business solutions using the Scala Programming Language and related programming techniques. Paycorp implements payment solutions for Australian retail merchants for seamless payment acceptance. This role required proficiency in ensuring a timely and correct software delivery and with fast adaptation to changing requirements.

Paycorp has since been acquired by MYOB.

Senior Software Engineer
Workingmouse Pty Ltd

A software development consultancy, primarily using the Java programming language to implement solutions. In this role, I did not directly liase with clients, but provided technical software development support to the different teams deployed to different client sites.

Created the open-source scalaz library for Scala, which utilised functional programming concepts for high-assurance, rapid software development.

Software Engineer
IBM Corporation

Working under the Tivoli security brand implementing the IBM Tivoli Risk Manager adapter for IBM Tivoli Access Manager targeting seven operating system platforms.

Implementing the IBM WebSphere Application Server (version 6) development team to implement the JSR-115 for IBM Tivoli Access Manager. In 2005 to early 2006 working on the API and the IBM Java Cryptography Extension (JCE) implementation of the IBM Java Development Kit (JDK) version 1.5.


Grade 3 Flight Instructor Rating, Flightscope Aviation
Commercial Pilot Licence (Aeroplane), Flightscope Aviation
RA Senior Flight Instructor Rating (3-axis), Flightscope Aviation
Tailwheel design feature endorsement, Flightscope Aviation
Aviation English Language Proficiency Assessor (AELP6 & GELP), Civil Aviation Safety Authority
Retractable undercarriage design feature endorsement, Flightscope Aviation
Night VFR Rating, Flightscope Aviation
RA Flight Instructor Rating (3-axis), Flightscope Aviation
Manual Propellor Pitch Control (MPPC) endorsement, Flightscope Aviation
Remote Pilot Licence (RePL), Civil Aviation Safety Authority
Recreational Pilot Certificate (3-axis), Flightscope Aviation
Private Pilot Licence (aeroplane category), Pathfinder Aviation
Recreational Pilot Licence (aeroplane category), Flight One
World Squash Federation accredited referee
Sun Certified Programmer for the Java 2 Platform 5.0
Sun Certified Developer for the Java Platform 1.4
Sun Certified Programmer for the Java 2 Platform 1.4
Griffith Award for Academic Excellence for studies in the Bachelor of Information Technology, Griffith University
Bachelor of Information Technology, Griffith University
Certificate 3 in Information Technology
Certificate 4 in Psychology


available upon request • +61 408711099 • Brisbane, Australia

github projectsgitlab projectspresentations