With over 15 years of experience at a range of existing systems and new ones of different sizes and levels of complexity, I can work on any Java or Go web-based system or design a new one of moderate complexity as needed. The best parts are owning a new feature (implementing every aspect of it), learning something new, and a good challenge. My focus is a back end specialist with broad and deep understanding of back end concerns.
Managers have provided feedback that my strengths include taking on any task given, taking sensible risks, and getting things done.
- Java/Go web programming, C++ Windows app
- Docker (Dockerfile, docker-compose.yml, CLI, networking)
- Good understanding of how MVC is supposed to work, as opposed to common practices
- Thorough understanding of J2EE filters, servlets, listeners, and deployment descriptors
- Complex reporting on server side (BIRT)
- Apache POI for reading/writing Excel spreadsheets
- Design an application from scratch
- SQL (queries, tuning, Oracle, MySQL, PostgreSQL), non-SQL data stores, LDAP
- GIS functions and GeoJSON objects (generate geometries with PostGIS, measure distances)
- Data transformation using an ETL
- Java desktop application programming (SWT, Swing, AWT)
- IT configuration (put hardware together, install Windows/Linux/Mac/BSD OS, configure servers, ZFS)
- Security (TLS, SSH, encryption, SQLi, XSS, why encrypting passwords is pointless)
- Create a simple build (Ant, Maven, Make)
- Working with Project Managers, other programmers, vendors, and clients
- Reasonable time estimates
- Understanding business requirements and processes of all stakeholders
- Mentoring other programmers of different levels
- Process improvements
University of Victoria, Victoria, B.C. (1990 – 1992, 2001 – 2005)
- Completed combined BSc in Computer Science (with distinction) and Minor in Greek and Roman Studies
- Graduating GPA was 7.50 out of 9.00 (7.00 is equivalent to an A–, 8.00 to an A)
- National Sciences and Engineering Research Council of Canada (NSERC) Undergraduate Student Research Award (2004 and 2005)
- Canada Millenium Scholarship (2002 and 2003)
MDA, Dartmouth, NS (January 2019 - Present)
Updating a submarine trainer that has mostly Ada and C++ code.
Developing microservices in Go for Search and Rescue Mission Management System used by DND.
Developing microservices in Java for TRITON used by DND.
Upgrading a C++ windows app for DND to have modern tooling and convert parts using Oracle to use Postgres instead.
Skills used: Go, Java, C++, Ada, Kafka, PostgreSQL, PostGIS, GeoJSON, Swagger, Docker
NTT Data, Halifax, NS (November 2017 – January 2019)
Performing back end and front end changes to an important customer-facing application for a large financial institution. The system allows customers to get a high level summary of their investments, and works on mobile and desktop devices. My role mostly involved back end changes.
CGI, Halifax, NS (March 2013 – November 2017)
Configuring and maintaining a vendor supplied Java J2EE application used by a global financial
institution. The system helps the client to track regulatory compliance across a number of countries.
The purpose is to identify gaps between the requirements of new laws and regulations in each tracked country and the client's current processes. The client can use this information to determine how serious the gap is, and what has to be done to be in compliance by the time the new law comes into effect.
- Modifying a health care application for mobile users. The system allows users to view information on the details of their policy and claims.
- Modifying a health care accounts receivable system that can book revenue, process bills to produce invoices, and synchronise some common information across separate silos.
- Configuring and maintaining a vendor supplied Java J2EE application used by a global financial institution. The system helps the client to track regulatory compliance across a number of countries.
FoodLogiQ LLC, Calgary, AB (January 2008 – February 2013)
Developed a food traceability system used by Canadian and American clients. The system is capable of managing food products from the field to the retailer, “farm to fork”. It is a SaaS system that can handle the needs of different kinds of food production, such as produce growers, livestock farms, and dairy farms.
The clients can manage their products, print bar code labels for different purposes (pallets, cases, etc), record the movement of their products at different points in the distribution chain, provide searchable details of their business and products for consumers, and create their own branded site within the system. A client can have their users register in their site to enter data, such as product movement and surveys, and get custom functionality for their particular needs.
My role involved taking the client requirements, and creating the necessary pieces for it to function. For larger sets of funtionality, the work was split among multiple developers, but generally I did all the pieces of a given functional requirement on my own. I also provided advice on how to implement a given requirement: what pieces needed to be created, how long it would take, how to do it in multiple stages if necessary, and suggest other ideas if the requirement seemed to stray too far from the platform design.
Hobbies and Interests
- Reading literature, ranging from ancient to modern
- Watching movies, especially science fiction and fantasy
- Walking, cycling, sports
- Exploring various programming ideas