Cameron Zemek

Software Engineer

Hire Me

About Me

Confident and self-motivated professional.

profile

I am a self-motivated professional, I take responsibility for achieving outcomes, meeting targets, collaborating with others, leading by example and devising ways to improve systems and procedures. I demonstrated this in my roles at Capiscum Corporation, Bundaberg Regional Council, PreviousNext and Instaclustr as I was personally responsible for meeting objectives and targets. I would have a number of active projects and had to self manage my time amongst the projects.

Throughout my career I have been involved in all phases of the systems development life cycle, from inception to deployment and maintenance. I have experience doing business analysis and gathering requirements. Then developing and applying new workflows and business logic to business systems to automate and improve business process and functions.

In design and development of systems I use object-oriented principles and design such as:

  • GRASP (General Responsibility Assignment Software Principles)
  • SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion)
  • Design patterns such as Dependency Injection, Adapter, Decorator, Factory method, etc.

I have given talks and training on these topics, for example I spoke at DrupalGov Canberra 2014 on the topic of object-oriented design and development and how to migrate from procedural to object-oriented modules.

I am a proponent for automated testing and continuous integration and utilize unit and functional testing. I have contributed patches to Mink and I spoke about the future of functional testing in Drupal 8 at DrupalCon Amsterdam 2014.

I have extensive experience working with government clients and stakeholders. In my 9 years working in local government at Bundaberg Regional Council I collaborated with numerous departments and gained experience and knowledge on domains such as:

  • Asset Management
  • Customer Request Management
  • Electronic Document & Records Management
  • SCADA (supervisory control and data acquisition)
  • Payroll
  • Procurement
  • Costings
  • Financial budgeting
  • Rates
  • GIS (Geographic Information System)
  • Rostering
  • Human Resources
  • Workplace Health & Safety
  • Tenders and Contracts

In my role at PreviousNext I worked on projects including:

Skills

Business analyst and Software Engineer.

Skills
  • Objected Oriented Design and Development
  • Java
    • Java EE / Spring - JSF, JSP, EJB, JPA
    • Maven, Ant
    • JBoss, Tomcat, Glassfish, Websphere
    • Java SE - Swing, XML, NIO, Concurrent, Threading, JDBC, etc
  • Agile development
    • Certified ScrumMaster
    • Unified Process
    • Feature Driven Development
  • Version control (CVS, SVN and Git)
  • Continuous Integration (Jenkins)
  • Distributed Computing
    • Cassandra
    • Spark
    • Kafka
    • Elasticsearch
    • DynamoDb
  • Accessibility (ARIA, WCAG 2.0)
  • XML, XSLT, XPath, XSD, XSL-FO
  • Web services (JSON, REST, SOAP, WS-*, etc)
  • PHP (Zend, PEAR, Drupal, etc)
  • Acquia Certified Developer
  • HTML 5, CSS, SASS
  • Javascript (jQuery, AJAX, etc)
  • Testing
    • JUnit, PHPUnit
    • Selenium
    • Mink
    • Behat
  • GIS (ArcGIS, OpenLayers, Leaflet, Google Maps)
  • Lucene, Elastic and Solr search
  • UML and ER modelling
  • Shell scripting (Bash, Powershell, etc)
  • LDAP and Active Directory
  • Advanced SQL
    • Stored procedures (PL/pgSQL)
    • Triggers
    • Window functions
    • Table inheritance
    • Data partitioning
  • PostgreSQL, MySQL, Informix, Microsoft SQL Server administration
  • Apache administration
  • Linux and Windows administration

Experience

Over fifteen years of knowledge and experience in Information Technology. Over ten years working in the Government sector.

Instaclustr

Lead Technical Operations Engineer / Apr 2016 - Present

  • Cassandra expert
  • Development of Cassandra tools
  • Support of Spark, Kafka, and Elasticsearch

Duties included:

  • Responding to customer queries and incidents, diagnosing and solving complex technical issues including code-level debugging, and demonstrating the highest standards of customer communication.
  • Maintain expert-level knowledge of Apache Cassandra and other relevant technology concepts and operations.
  • Actively participate in the Cassandra community through mailing lists and contributing code to the Apache Cassandra project.
  • Investigate cluster usage patterns, data models and system logs and apply expert Cassandra knowledge and standard maintenance procedures to optimise the performance and stability of production systems.
  • Be a proactive, reliable and supportive member of the TechOps team, working in 24/7 rotating shift roster.
  • Provide training to team members and customers in Cassandra and Instaclustr operational procedures and concepts, and ensure these processes are adhered to.
  • Identifying and implementing opportunities to continuously improve TechOps activities through the development and maintenance of tools and procedures or feedback to the product engineering team.
  • Undertake cluster reviews and other consulting engagements.

PreviousNext

Senior Developer / Feb 2014 - Feb 2016

  • Backend web development
  • Frontend development (HTML, SASS, Javascript)
  • OpenLayers, Leaflet, Google Maps API
  • DynamoDb
  • Elastic and Solr search
  • Google Analytics
  • Mailchimp and Mandrill
  • Integration with web services

Worked with clients such as:

Duties included:

  • Technical Lead
  • Software architecture
  • Site building and configuration
  • Installing and configuring modules
  • Development and testing custom modules
  • Creating unit and functional tests using Mink, Behat, PHPUnit and Selenium
  • Scrum Master
  • Sprint planning and estimation
  • Backlog and requirement refinement
  • Code reviews
  • Mentoring junior developers
  • Site backup and restore
  • Creating releases and doing deployments
  • Creating documentation
  • Applying security patches
  • Troubleshooting and debugging issues

Bundaberg Regional Council

Business Analyst / 2005 - 2014

  • Web design and development
  • Used XML, XSLT, and XSL-FO to generate PDF documents
  • LDAP and Active Directory
  • Java programming
  • Database administration and report generation:
    • MySQL
    • Postgres
    • Microsoft SQL Server
    • Informix
  • Shell scripting (BASH, Powershell, etc)
  • Windows and Linux administration
  • Development and maintenance of intranet applications such as:
    • Leave Rostering
    • Document Management System
    • Risk Management System
    • Work Order Requests
    • Financial Budgeting
    • Hazardous Substance Register
  • Supporting and integrating with COTS applications including:
    • Customer Request Management
    • Electronic Document & Records Management
    • Human Resources & Payroll systems
    • Financial Management systems
    • Asset Management system
    • SCADA system
    • Enterprise resource planning

Duties included:

  • Analysis business requirements
  • Project management
  • Software architecture
  • Develop and apply new workflows and business logic to business systems to automate and improve business process and functions
  • Responsible for the entire system development life cycle of websites and custom intranet applications
  • Documentation of Council's business systems and configuration items
  • Business application performance monitoring, maintenance, diagnosing of software issues and resolution of application support requests
  • Assist with training Council staff on the use of business systems
  • Assist with the introduction of business systems enhancements and rollouts to Council staff
  • Work with internal IT staff or vendors/developers on introducing application updates for issues found with business systems
  • Troubleshoot and resolve business application issues located at the desktop, server or within the application layer

Capsicum Corporation

Director and Owner / 2002 - 2005

  • Java programming
    • Desktop applications
    • Websites using Java EE and/or Spring
    • Custom UI components such as grid and spreadsheet
    • SyncML server
  • Project management
  • Business Analyst
  • Technical director
  • IT Consulting
  • Provided training
  • Created software development processes and policies

Bay Connect

System Administrator / 2000 - 2001

  • Windows NT servers
  • Cobalt server appliances
  • 30 workstations and number of remote sites

Additional Information

Passion for engineering and science.

  • Open source contributor
  • Contributor to HTML 5 specification
  • Speaker at DrupalCon Amsterdam 2014 on The Future of Functional testing in Drupal 8
  • Speaker at DrupalGov Canberra 2014 on Procedural to Object-Oriented Modules

Java

PHP

Javascript

C

C++

Go

Bash

Powershell

Python

Ruby

Schema

Haskell

Education

Thirst for knowledge and constantly learning.

University of Southern Queensland

Bachelor of Informatics with a major in Software Engineering - Graduated: 2002

  • Graduated with grade point average of 6.04
  • Received Dean’s Commendation for Outstanding Achievement
Subject Grade
Discrete Maths Computing Distinction
Algebra and Calculus I Credit
Introduction to Professional Computing Credit
Computer Engineering I Credit
Introduction to Electronic Commerce Credit
Introduction to Business Programming High Distinction
Data Analysis Distinction
Advanced Prodecural Programming Distinction
Algorithms & Data Structures High Distinction
Object-Oriented Programming Distinction
Software Development Tools Ungraded Pass
Data Analysis & Modeling High Distinction
Introduction to Software Engineering Distinction
Web Publishing Distinction
GUI Programming High Distinction
Communication & Scholarship Credit
Intelligent Agent Technology Distinction
Computer Graphics Distinction
Computer Communication & Internet High Distinction
Software Engineering Project A Distinction
Advanced Java Programming Distinction
Operating Systems High Distinction
System Administration Distinction
Software Engineering Project B Distinction

Personal Projects

Pharborist

A PHP library to query and transform source code via tree operations.

Fiber

A cooperative lightweight thread library for Java.

Zemscript

A toy programming language implemented in Java.

Pokerlib

A Texas Holdem poker Java library. Includes a fast hand evaluator.

Resistance

Java server using Netty for AI bots to play The Resistance game.

PHP LDAP

Object Oriented LDAP wrapper for PHP.

Magic Gatherer

Tool for extracting card information from gatherer.wizards.com using node.js.