Curriculum Vitae

Information for prospective employers in both academia and industry.
See the Portfolio page for a showcase of projects demonstrating the skills listed here.

Contents

Personal Details

NameAdam Rehn
Location  Cairns, Queensland, Australia
Contactadam@adamrehn.com
Webhttps://adamrehn.com
ORCID  https://orcid.org/0000-0003-0205-0602

Education

  • Queensland Certificate of Education (OP 2) Cairns State High School | Graduated 2008
  • Bachelor of Information Technology with Honours (Class 1A) James Cook University | Graduated 2013
  • Doctor of Philosophy (Information Technology) James Cook University | Graduated 2017

Employment

  • Sessional Lecturer James Cook University | February 2013 - July 2017
  • Casual Research Assistant James Cook University | May 2017 - September 2019
  • Independent Consultant (Sole Trader) Various Clients | November 2016 - Present
  • Co-Founder and Director TensorWorks Pty Ltd | October 2017 - Present
  • Sessional Lecturer CQUniversity | February 2018 - October 2020

Volunteer Work

  • James Cook University Student Mentor Program 2009 - 2016
    Mentored groups of new students during their first semester to support their transition into university study.
  • Smithfield State High School 2016
    Assisted in teaching Grade 12 students the principles of web development with HTML, CSS and jQuery.
  • Freshwater State School Code Club 2016
    Assisted in teaching Grade 4, 5 and 6 students the basics of programming using the Scratch programming language.
  • Redlynch State College P-6 Code Club 2017
    Assisted in teaching Grade 6 students the basics of programming using the Scratch programming language.

Awards

  • Excellence in Information Technology Award Business Liaison Association | 2008
    Awarded to a high school student interested in pursuing a career in IT who had demonstrated significant achievement in their IT-related school studies.
  • Don Close Prize in Software Engineering University Award | 2010
    Awarded to the student with the highest grade for the subject CP2013: Software Engineering.
  • Prize for Excellence in Third Year Bachelor of Information Technology (Cairns) University Award | 2011
    Awarded to the student with the highest overall GPA for their third-year undergraduate IT coursework subjects.
  • University Medal University Award | 2013
    Awarded to students graduating with First Class Honours whose thesis grade fell within the top 10% across the entire university.

Teaching Experience

I have taught the following subjects in my capacity as a member of the sessional teaching staff at James Cook University:

  • CP3311/CP3408: Game Engine and Simulation Semester 1 2013, 2014 & 2015 (Lab Instructor) | Semester 1 2016 & 2017 (Lecturer + Lab Instructor)
    Taught students how to develop 2D and 3D games using the Unity3D game engine.
  • CP1300: Programming II Semester 2 2013 & 2014, Semester 1 2015 (Lab Instructor)
    Taught students object-oriented programming principles using the Java programming language.
  • CP1200/CP1404: Programming I Semester 1 2014, Semester 2 2015 (Lab Instructor)
    Taught students the basics of programming using the Python programming language.
  • CP1500: Database Management Semester 2 2014 (Lab Instructor)
    Taught students the principles of designing and querying relational databases using SQL.
  • CP3307: Mobile Programming Semester 1 2015 (Lab Instructor)
    Taught students mobile application development for both the Apple iOS and Google Android platforms.
  • CP2402: Hardware and Software Fundamentals Semester 2 2016 (Lecturer + Lab Instructor)
    Taught students about the structure and function of operating systems, with a focus on IPC, synchronisation and memory management.
  • CP3402: Content Management Systems Semester 1 2017 (Lab Instructor)
    Taught students how to create websites and custom themes using the Wordpress CMS.
  • CP5310: E-Business Technologies Semester 1 2017 (Lab Instructor)
    Taught students about various web technologies, including client-side and server-side web languages, interchange formats, and protocols.

I have taught the following subjects in my capacity as a member of the sessional teaching staff at CQUniversity:

  • COIT13229: Applied Distributed Systems Term 1 2018 (Lab Instructor) | Term 1 2019 & 2020 (Lecturer + Lab Instructor)
    Taught students about the architecture of distributed systems, with a focus on client/server RPC mechanisms in the Java programming language.
  • COIT11226: Systems Analysis Term 2 2018 (Lecturer + Lab Instructor)
    Taught students about the basics of the Systems Development Life Cycle (SDLC), including both waterfall and agile methodologies.
  • COIT11222: Programming Fundamentals Term 1 2019 (Lecturer + Lab Instructor)
    Taught students the basics of programming using the Java programming language.
  • COIT13234: Mobile Software Development Term 1 2019 (Lecturer + Lab Instructor)
    Taught students mobile application development for the Google Android platform.
  • COIT11134: Object Oriented Programming Term 2 2019, Term 1 2020 (Lecturer + Lab Instructor) | Term 2 2020 (Lab Instructor)
    Taught students object-oriented programming principles using the Java programming language.
  • COIT13235: Enterprise Software Development Term 2 2019 (Lecturer + Lab Instructor)
    Taught students how to develop multi-tiered enterprise applications using the Java EE platform.
  • COIT13148: Special Topic (Unity Game Development) Term 2 2019 (Lecturer + Lab Instructor)
    Taught students how to develop 3D games using the Unity3D game engine.
  • COIT12200: Software Design & Development Term 1 2020 (Lecturer + Lab Instructor)
    Taught students about advanced aspects of the Systems Development Life Cycle (SDLC) and basic multi-tiered application architecture.

Technical Experience

I have extensive experience working under and developing software for the Microsoft Windows, Apple macOS, and Linux operating systems, as well as experience developing for the Apple iOS and Google Android mobile platforms. I have developed cross-platform libraries and command-line tools, as well as servers and graphical applications, in a wide variety of programming languages. My recent work features a strong focus on automation and tooling to enhance developer workflows when building software with cloud-native technologies.

Listed below is a brief selection of the programming languages, libraries and frameworks that I have experience with.

Programming Languages

  • C / C++ (including C++11/14/17)
  • JavaScript / TypeScript
  • Python
  • Java
  • C#
  • R

Engines & Libraries

  • Unreal Engine 4
  • Unity3D
  • Electron
  • NVIDIA CUDA
  • LLVM / Clang
  • SciPy Ecosystem

Containers & Machine Learning

  • Docker
  • Kubernetes
  • TensorFlow
  • Keras
  • Caffe

Publications

For a complete list of my academic publications, see the Publications page.