With over a decade of experience at a range of existing systems and new ones of different sizes and levels of complexity, I can work on any Java 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.
Managers have provided feedback that my strengths include taking on any task given, taking sensible risks, and getting things done.
- 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) and simple client side charts
- Apache POI for reading/writing Excel spreadsheets
- Design an application from scratch using MVC
- SQL (query and tuning), non-SQL data stores, LDAP
- Data transformation using an ETL
- Java desktop application programming (SWT, Swing, AWT)
- IT configuration (install a Windows/Linux/Mac/BSD OS, configure various server programs)
- Virtualization systems (Xen, KVM, VirtualBox, Parallels, VMWare, QEMU)
- Security (TLS, SSH, encryption, HTTP headers, SQL injection, protect passwords)
- Create a simple build (Ant, Maven)
- Learn any framework or library
- 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)
NTT Data, Halifax, NS (November 2017 – Present)
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.
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