James Cullen

6/8 Carr Street · St Lucia, QLD 4067 · [email protected]

I am a recent graduate of the University of Queensland's Bachelor of Engineering (Honours), with an extended major in Software Engineering. I have a great deal of experience in a wide variety of software fields, particularly web development, desktop application software, and secure development practices and security protocols.

Experience

Intern with PHP team

OgilvyOne Vietnam

OgilvyOne is the world's leading Customer Engagement agency partenering with brands around the globe to help improve customer relationships.

Duties and Accomplishments
  • Overseeing the transition from use of Drupal 7 to Drupal 8, a major overhaul in the APIs and structure of the framework, including the development of a guide and sample and training modules in the new system.
  • Worked on the back end on a number of advertising microsites for high profile Ogilvy customers including OMO, Coke, and Milo.
  • Handling user inputs to forms and enabling them to be recorded in the database.
  • Displaying user inputs to a private administration page, allowing admins to select some of these to be displayed on the public site.
November 2015 – February 2016

Intern with DevOps team

Prism Vietnam

Prism Information Technology Services is an Australian-owned IT Services company that specialises in helping organisations protect their business data through offering a range of client-focused IT solutions.

Duties and accomplishments
  • Development of a step-by-step guide for employees with little technical knowledge to follow in order to set up a CentOS virtual machine on a remote service with a secure connection over both SSH and VNC to the local machine.
  • Took part in on-site IT consulting, running some of Prism's clients through check lists to determine how their IT systems currently function and making suggestions for improvement.
  • Assessing clients' employees' competencies with various applications required for their work and assessing whether they would require further training to improve their efficiency.
  • Numerous suggestions were made to improve clients' efficiency, network security, and data security/backups.
November 2013 – February 2014

Education

University of Queensland

Bachelor of Engineering (Honours)
Extended major in Software Engineering

Selected courses:

COMP3506: Algorithms and Data Structures
Data structures and algorithms designed to work over them. Lists, stacks, queues, trees, sorting, graphs, etc.
4
COMP4500: Advanced Algorithms and Data Structures
Analysis of algorithms including recurrence equations and amortised analysis. Complexity classes and NP-completeness. Greedy algorithms, dynamic programming, and approximation algorithms.
4
COMS3000: Information Security
Introduction to security protocols and practices. Access control, authentication, public and private-key cryptography, and network security.
6
COMS3200: Computer Networks I
OSI and Internet reference models. Communication protocols.
4
COMS4200: Computer Networks II
Advanced networking concepts including software-defined networking, peer-to-peer networks, and queueing theory.
4
COMS4507: Advanced Security
More advanced cryptographic algorithms, application of security concepts in specific contexts, attack and defence mechanisms, and current security research topics including browser attack vectors and cryptocurrencies.
6
CSSE1001: Software Engineering I
Introduction to Software Engineering. Programming in Python.
6
CSSE2002: Programming in the Large
Techniques for writing large-scale software systems including advanced object-oriented techniques such as data abstraction, procedural abstraction, unit testing, and class hierarchies. Taught in Java.
5
CSSE2310: Computer Systems Principles and Programming
Systems programming in C. Operating systems principles such as memory management, file systems, processes and threads, and interprocess communication. Basic computer network topologies, protocols, and network programming.
5
CSSE3002: The Software Process
Software lifecycle, requirements engineering, working with large teams via version control and source code management tools.
6
DECO1400: Introduction to Web Design
Modern practices for web development in HTML, CSS, and JavaScript, including design and user testing guidelines for accessible web pages.
6
DECO2500: Human-Computer Interaction
Methods of interaction analysis practical implementations of user and use-centred design principles.
6
INFS1200: Introduction to Information Systems
Introduction to relational databases and SQL.
7
INFS2200: Relational Database Systems
Concepts needed to build large information systems, including query processing, views, and index structures.
6
INFS3200: Advanced Database Systems
Underlying structure of execution of database queries and data warehousing techniques.
5
INFS3202: Web Information Systems
Building complex and secure web systems using PHP, Java, JavaScript, AJAX, etc.
4
2013 – 2017

British International School, Ho Chi Minh City

International Baccalaureate

37/45 IB points

2007 – 2012

Skills

Programming & Markup Languages
Tools & Software
Other skills
  • Communication skills: with both technical and non-technical users
  • Requirements elicitation
  • Troubleshooting skills in both software and hardware
  • Understanding of networking protocols and software-defined networking
    • TCP/IP
    • SSL/TLS
    • HTTP
  • Agile Development & Scrum
  • Thorough knowledge of system security, security protocols, and best practice secure programming
    • SSL/TLS
    • RSA
    • Diffie-Hellman key exchange
    • PGP
    • SSH
    • Let's Encrypt

Interests

Outside of programming, I enjoy a wide variety of activities. I play the clarinet and the piano, compose music, and I enjoy exercising, particularly running and cycling. I am also an avid photographer and videographer, particularly enjoying cinematography and film editing.

I enjoy gaming with my friends, including online computer games, tabletop role-playing games, and the occasional board game. I am also an aspiring psephologist. I spend a lot of my free time playing with toy programming projects or taking online courses or MOOCs in various programming-related topics.

Projects

While many of my projects are done purely for my own interest and are not shared online, a few of my achievements have been shared online.

  • PockyBot — an open source Webex Teams bot created for use at GlobalX to enable acknowledging help and good work done by coworkers.
  • Reddit ParliamentPageBot — a script used by model governments across Reddit for notifying their participants of important announcements or events.
  • PetrolCycleTracker — an Android app for notifying users of what stage the petrol price cycle is at in Australian capital cities.
  • Orbis Worldbuilding Wiki — a MediaWiki wiki I host for maintaining worldbuilding notes.