Unsupervised Design

Follow @thatguygriff on Micro.blog.

Resume

James Griffin-Allwood

Contact

james@unsupervised.ca

Education

  • Bachelor of Computer Science, Acadia University, 2003 - 2007
    • Graduated October 2007
  • Bachelor of Education, Acadia University, 2007 - 2009
    • Graduated May 2009
  • Masters of Computer Science, Acadia University, 2013 - 2015

Work Experience

Senior Architect, Seddi Canada March 2019 - Present

Designing and a Cloud based, high performance, distributed system powering collaborative workspace tools and high performance computing jobs.

Technologies

  • Backend
    • Node: Express
    • Go
    • Google PubSub
  • Frontend
    • Javascript: React, ES5, ES6, Node, Gulp
  • Systems Administration
    • Terraform
    • Google Cloud
    • Docker
    • Kubernetes
    • Istio
  • Databases
    • MongoDB
    • MySQL

Software Engineer, Terida November 2018 - February 2019

Contributing to the development of several proprietary regulatory software solutions. Leading the adoption of Terraform for deploying cloud infrastructure and helping improve the development processes through improved automated tests and integrating static analysis tooling into the developer workflow.

Technologies:

  • Backend
    • Java: Spring Boot
    • Nginx
  • Frontend
    • Javascript: Angular 1, Angular 7, Node, Gulp, Typescript
  • Systems Administration
    • Terraform
    • AWS, Docker
    • Continuous Integration/Deployment
    • Bamboo
  • Databases
    • RDBMS: Oracle, PostgresQL
    • Elasticsearch

Senior Development Engineer, Ping Identity May 2015 - October 2018

Built Cloud Identity provisioners and integrations for a variety of SaaS APIs including Workday, Google, Facebook, Slack, Github, and a generic SCIM integration.

Developed a distributed identity management solution for large enterprises. The solution allows different Identity Stores to be the authoritative source for different attributes, pushing the correct values to all other connected Identity Providers when an authoritative values is changed, reverting unauthorized updates in systems, and reporting on unmanaged or unauthorized account creation.

Developed continuous integration and deployment tooling for rapidly developing and deploying Java Spring Boot based micro services packaged in Docker containers to Kubernetes clusters. The project pipelines would perform static analysis on the source code, build and tag versioned Docker images, qualify them with integration and contract tests, perform canary deployments to staging and production environments, and finally evaluate the health of those canaries before promoting the new versions of services.

Led the development of internal self service platform for development teams to view current the status of currently deployed services. Teams could view API documentation for the live services, access manual rollback controls to any previously deployed version, and generate secrets (i.e. database or api credentials, certificates) for their applications to use in production without giving access to the values of the secrets to the team members.

Managed the lifecycle of common libraries for the micro service platform. These libraries were used across the company to enforce consistent REST API standards, consistent Kafka message contracts, centralized token validation and authorization checks, and provided dependency management for teams building micro service for the cloud platform.

Was an active member of the Ping architecture council developing and designing what would become the Rest API standards for the Ping IdaaS platform.

Technologies:

  • Systems Design
    • REST APIs
    • Asynchronous, event driven distributed systems
    • Distributed, Micro service based, eventually consistent systems.
  • Continuous Integration/Deployment
    • Jenkins, Gitlab Ci
  • Backend
    • Java: Spring, Spring Boot, JSP, Tomcat
    • Proxies: Nginx, HAProxy, Ping Access
  • Frontend
    • Javascript: React, ES5, ES6, Node, Gulp
  • Systems Administration
    • Terraform
    • AWS, Docker, Kubernetes
  • Databases
    • RDBMS: MySQL
    • NoSQL: Cassandra, Couchbase, Redis
    • Messaging Queues: Kafka, ActiveMQ
    • Directories: Active Directory, Ping Directory (formerly Unbound Directory)

Web Development, Private Consulting July 2014 - April 2015

While working on my Masters of Computer Science at Acadia a professor from the French Department was looking for a complete website solution for uploading and displaying their research of 19th century manuscripts. The resulting site can be found online at http://censored.acadiau.ca

Technologies:

  • Backend
    • PHP: Apache
  • Frontend
    • Javascript: JQuery, Coffeescript
  • Databases
    • RDBMS: MySQL

Part Time Faculty Member, Acadia University Sept 2012 - May 2014

  • COMP 2863 – How Websites Work An Introduction to Websites for Non-Computer Science Majors, primarily Business students.
  • COMP 2513 – Web-centric programming A course for Computer Science Majors covering all areas of Web Development.
  • COMP 4583 – Mobile and Ubiquitous Computing A course covering the challenges and opportunities found in today’s mobile computing environment.

Instructional Systems Specialist, Open Acadia April 2009 - August 2013

In this position I worked with faculty members in an instructional design capacity to help them develop content and assessments for delivering their courses remotely and developing web platforms and tools to enable the creation and delivery of the courses. It was my job to build WYSIWYG editing tools for course materials integrated with the LMS for faculty members and building or integrating existing real time collaboration tools for students and faculty to improve course delivery and student evaluation.

Technologies:

  • Backend
    • PHP: Apache
  • Frontend
    • Javascript: JQuery, Coffeescript
  • Databases
    • RDBMS: MySQL
  • Systems Administration
    • Server Administration: Linux, Mac OS Server, and Windows Server
    • CMS Administration: Wordpress, Joomla, Drupal, Moodle

Practicum Placements, Acadia School of Education September 2007 - April 2009

During my Education degree I was expected to complete 20 weeks of teaching practicums. I was expected to teach all lessons, perform all assessments, prepare report cards and conduct Parent Teacher Interviews at both schools for the following courses

  • Advanced Math 11:
    • Horton High School
    • 5 classes
  • Technology Education
    • Northeast Kings Education Center
    • Grade 6 – 4 classes
    • Grade 7 – 4 classes
    • Grade 8 – 4 classes

Volunteer Experience

  • Can Skate Program Assistant, Bedford Skating Club, 2015-Present
  • Assistant Sledge Hockey Coach, Hockey NS Provincial Team, 2014-2018
  • Assistant Sledge Hockey Coach, Halifax Sledge Grinders Association 2016-2018
  • Assistant Sledge Hockey Coach, Acadia Minor Hockey Association 2010-2015
  • Head Coach, Acadia Minor Hockey Association, Atom A 2014-2015
  • Board Member, Acadia Minor Hockey Association 2013-2014
  • Youth Leader, New Minas Baptist Church Youth Group 2005-2015

Further Training:

  • Photography and video production, both filming and post production, for promotional and educational purposes
  • Flat water canoe certification
  • Experience educating at the secondary education level as a licensed teacher in Nova Scotia