Curriculum Vitæ

Tony Morris <cv@tmorris.net> 0408711099


Professional Experience

  • Senior Developer

    NICTA, 2012 — present §

    Advance the knowledge of Functional Programming in the Australian software developer community and within the NICTA organisation.

    Actively contribute to NICTA projects, including open-source projects such as scoobi for distributed computing with map/reduce.

  • Senior Developer

    Ephox Pty Ltd, 2010 — 2012 §

    Working with Haskell (primarily), Scala, Java and Javascript to solve business problems for a product company specialising in rich editors.

  • Senior Java Developer

    Eyecon Pty Ltd, 2009 — 2010 §

    Implementing gaming solutions using the Java/J2EE platform.

  • Senior Software Engineer

    Paycorp Payment Solutions Pty Ltd, Sydney, 2008 — 2009 §

    Implementing payment business solutions using the Scala Programming Language and related advanced programming techniques. Specific proficiency required to ensure a timely delivery with a high assurance of correctness and fast adaptation to changing requirements.

    Working from a home office in Brisbane with the development office located in Sydney.

  • Software Developer

    Workingmouse Pty Ltd, Brisbane, 2006 — 2008 §

    Research, investigate and educate on programming language paradigms with emphasis on Functional Programming, Type Theory and applicability to commercial software application development. Lead and/or contribute to commercial applications using the Scala and Ruby programming languages as well as open source contribution to the Scala programming language and the creation of the Scalaz extension to the core Scala libraries.

    Deliver courses to interested corporate clients as well as colleagues in-house. Course material covers a variety of topics including functional programming (FP), type systems and specification testing and more general programming language theory. Creating course material to meet specific needs and requests of the course participants.

  • Software Engineer

    IBM Corporation, Gold Coast, 2002 — 2006 §

    Working under the Tivoli security brand implementing the IBM Tivoli Risk Manager adapter for IBM Tivoli Access Manager targeting seven operating system platforms. This work was followed by several projects that integrated with IBM Tivoli Risk Manager including the DB2 (JDBC) integration for IBM Tivoli Risk Manager which was completed in Austin, Texas, USA.

    Implementing the IBM Tivoli Privacy Manager integration software for DB2 Content Manager and subsequently assigned to 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 java.security API and the IBM Java Cryptography Extension (JCE) implementation of the IBM Java Development Kit (JDK) version 1.5.

  • University Lecturer/Tutor

    Griffith University, Gold Coast, 2001 — 2006 §

    Lecturing and tutoring subjects on COBOL, Java, C/UNIX, C++ and Object-Oriented Analysis & Design for the School of Information Technology.

  • Software Engineer

    Softlink International, Brisbane, 2001 — 2002 §

    Working on a small team of developers contributing to the ALICE library software using C# and ASP.NET.

  • IT Consultant

    Self Employed, Gold Coast, 1999 — 2001

  • Computer Programmer

    The Competitive Option, Gold Coast, 1996 — 1999 §

Proficiency in Technologies

  • Programming Languages Java/J2EE, C# 4.0, Haskell, Scala, Clojure, Agda, Coq, Epigram, C, C++, F#, Objective Caml, Python, Ruby, Javascript, Scheme

  • Application Servers IBM WebSphere, BEA WebLogic, JBoss, Apache Tomcat, Caucho Resin

  • RDBMS IBM DB2 UDB, Microsoft SQL Server, Oracle, MySQL, PostgreSQL

  • Operating Systems GNU Linux, Microsoft Windows, Sun Solaris, IBM AIX, HP-UX

Education and Certification

  • First Aid (Workplace Level 3), May 2014

    • Course in Automated External Defibrillation 22101VIC

    • Provide cardiopulmonary resuscitation HLTAID001

    • Provide first aid HLTAID003

    • Manage first aid in the workplace HLTFA403C

    • Apply advanced resuscitation techniques HLTFA404C

    • Apply advanced first aid HLTFA412A

    • Provide Pain Management PUAEME005A

  • World Squash Federation accredited referee, 2011

  • Certificate II in Emergency Medical Service First Response HLT21107, 2011

  • Certificate II in Emergency Medical Service First Response HLT21107, 2008

  • Sun Certified Programmer for the Java 2 Platform 5.0, May 2005

  • Sun Certified Developer for the Java 2 Platform, December 2003

  • Sun Certified Programmer for the Java 2 Platform 1.4, October 2002

  • Griffith Award for Academic Excellence for studies in the Bachelor of Information Technology, Griffith University, December 2001

  • Bachelor of Information Technology, Griffith University, December 2001

  • Certificate 3 in Information Technology, 1996

  • Certificate 4 in Psychology, 1995

Presentations

I have a special interest in sharing an understanding of programming concepts with peers and to advance the professional standards of the software development industry. I deliver presentations to interest groups, conferences and universities regularly.

  • Asymmetric Lenses in Scala, Scala Days 2012 April 2012 Publication

  • Philadelphia Emerging Technologies for the Enterprise April 2012 Slides

  • Configuration Without the Bugs and Gymnastics 28 February 2011 Slides Video

  • Using Pure, Lazy Programming to Navigate Remote Environments 28 June 2010 Slides Video

  • How to Learn Functional Programming 28 June 2010 Slides Video

  • What Does Monad Mean? 17 November 2009 Slides Video

  • Monadic Parsers using Haskell 21 June 2009 Slides

  • Advanced Programming Concepts using Haskell 26 May 2009 Slides

  • Patterns: Reduction to the Inconsequential November 2008 Slides

  • Introduction to High-level Programming with Scala 28 July 2008 Slides Video

Contributions

I participate in and contribute to the free open source software (FOSS) community. Following are some examples.

  • Javasf Haskell §

  • Javav Haskell §

  • Validation Haskell §

  • JSON Combinator Haskell §

  • Geodetic Haskell § § §

  • Pylude Python §

  • Kinet C# §

  • Lastik Haskell §

  • Functional Java Java §

  • Scala core libraries Scala §

  • ScalaCheck Scala §

  • Scalaz Scala §

  • OpenStreetMap §

Interests

  • Assistant coordinator of the Brisbane Functional Programming Group

  • Haskell programming language

  • Scala programming language

  • Pure Functional Programming

  • Intuitionistic Type Theory

  • Software Correctness Verification & Proof-writing

    • Agda Programming Language

    • Coq Programming Language

  • Teaching, Behavioural Psychology & Neuropsychology

  • Professional Cartography

Miscellaneous