Stephen Doxsee, Software Developer in Toronto, ON, Canada
Stephen Doxsee

Software Developer in Toronto, ON, Canada

Member since August 26, 2019
Stephen has over 15 years of software engineering experience across organizational sizes and sectors. He's a SpringOne Platform speaker and open source contributor to the JHipster, Spring Security, and Spring Boot projects. Besides Java/Spring, Google Kubernetes Engine (GKE), and React/Angular expertise, he specializes in identity and access management (IAM) with OAuth2/OIDC and its place in best-practice architecture.
Stephen is now available for hire

Portfolio

  • Smart Serve
    Java, Spring, Angular, Node.js, JavaScript, PostgreSQL, Docker, Bitbucket, Jira
  • Benefits by Design
    Java, Spring Boot, PostgreSQL, React, Angular, Ruby on Rails, Node...
  • Aharya
    Google App Engine, Java, Spring Boot, Microservices Architecture, Angular...

Experience

Location

Toronto, ON, Canada

Availability

Part-time

Preferred Environment

Linux, IntelliJ, VS Code, Git, Github

The most amazing...

...project I've built is the integration of systems for two companies by adding respective OpenID Connect identity providers for identity and access management.

Employment

  • Lead Engineer

    2019 - PRESENT
    Smart Serve
    • Served as the lead engineer for an Angular/TypeScript and Java/Spring Boot application built with JHipster that manages user accounts and issues tokens for training and certification for alcohol licensing.
    • Managed deployment, bug fixes, maintenance, and support for an application that has over 1 million user accounts.
    • Held weekly meetings with clients to prioritize work and update on progress.
    • Migrated the application's SSO integration with Absorb LMS training platform to a newer version.
    • Performed a dependency analysis in order to determine an upgrade strategy of libraries to stay on top of CVEs that were scanned as part of the CI process.
    • Migrated Jenkins server's Jenkinsfile pipelines to Atlassian's Bitbucket pipelines for publishing images to private Dockerhub account.
    Technologies: Java, Spring, Angular, Node.js, JavaScript, PostgreSQL, Docker, Bitbucket, Jira
  • Solutions Architect

    2014 - 2019
    Benefits by Design
    • Reduced the setup time for development environments from over 8 hours to 15 minutes by Mavenizing manually-managed dependencies, removing JBoss application server customizations and using an embedded Tomcat via Spring Boot, putting any custom third party .jar files in Nexus, and providing default development configurations that "just work."
    • Automated a formerly manual release workflow with maven gitflow plugin.
    • Dockerized the entire company stack so that developers could run locally without having to run against a shared database instance with "somewhat sanitized" production data.
    • Introduced and rolled out Flyway as a SQL schema management and automation solution for an otherwise manual and error-prone process.
    • Reduced debug startup time from 15 minutes to under 30 seconds by building a demo-data service that inserted records through code and allowed developers to have a fast and minimal local database.
    • Introduced Spring Config Server so that configuration changes would be consistent across projects, git-revisioned, as well as backed up and encrypted on Github.
    • Planned, executed and rolled out a Java 8 to Java 11 upgrade for all Java applications and services including OpenJDK distribution selection and validation (Zulu).
    • Eliminated memory leaks affecting the application by using VisualVM to view memory usage and narrow in on the offending code.
    • Removed dependence on Java Webstart (now deprecated in Java 11) for distributing and updating Java Swing EJB client by distributing a jar-launcher that would automatically update the Java Swing client at startup using Maven Wrapper, Nexus, and some bash to tie it together making it stable and self-updating for over 3 years and counting without issue.
    • Created an Angular, Spring Boot, Elasticsearch, PostgreSQL application for the dynamic management of documents that would be made available to different users in different applications allowing filters and rules to be added for customizing document offerings using QueryDSL for typesafe SQL queries.
    • Used Express Http Proxy to send requests from hot-reloading Angular to Java API in development mode.
    • Wrote tests with JUnit/Mockito for Java and Karma/Jasmine for JavaScript and Webpack for module bundling.
    • Implemented Swagger UI for documenting and testing API endpoints.
    • Managed SQL schema revisions using Liquibase.
    • Build a new AngularJS, Spring Boot, PostgreSQL app for spin-off company "WorkplaceEvolution" offering PaymentEvolution's payroll employees the chance to easily enroll in Green Shield Canada's "Health Assist" benefits.
    • Designed and implemented SSO into WorkplaceEvolution app from payroll's employee application "PayChequer."
    • Built "in force" enrollment tool for plan members in AngularJS with wizards and validation and integrated it into an existing Heroku-hosted Ruby on Rails backend.
    • Architected a customer-facing"quote" enrollment tool with React/Redux with pagination, validation, and entity normalization on existing Rails/Java backend introducing an anti-corruption layer to sanitize legacy models to more relevant ones using MapStruct and adding fullstack e-signature integration with OneSpan to sign-off on enrollment documents.
    • Led tech for development.
    • Architected and coordinated a two-way integration between a benefits company and a payroll company that allowed mutual API access, data synchronization, and SSO with OAuth2 and OpenID Connect by extracting users and authentication to respective OpenID Connect Providers (Keycloak and IdentityServer).
    • Re-engineered CI and DevOps pipelines from manually configured Cruise Control server.
    • Integrated OpenID Connect and OAuth2 security across all applications and languages: Ruby On Rails, Angular, React, Spring Boot, Swing.
    • Presented alternative solutions regarding GDPR compliance issues with managing partners.
    • Used Jenkins X to drastically simplify deployment of the official Keycloak Helm chart to GKE with GitOps-managed custom realm configurations and themes for long-lived staging and production environments using managed PostgreSQL Cloud SQL instances and preview environments with ephemeral PostgreSQL Helm charts.
    Technologies: Java, Spring Boot, PostgreSQL, React, Angular, Ruby on Rails, Node, OpenID Connect, OAuth2
  • Software Developer

    2018 - 2018
    Aharya
    • Updated, fixed, and ported a Dockerized (but broken) Angular, Spring Boot and MySQL microservices stack to Google App Engine (GCP).
    Technologies: Google App Engine, Java, Spring Boot, Microservices Architecture, Angular, Bootstrap
  • Interim CTO

    2016 - 2016
    Finaeo
    • Served as the interim CTO for fintech startup.
    • Recruited the development team, contributed to early schema design, code reviews, DevOps on AWS and developer training.
    • Met with financial institutions to discuss technical aspects of collaborative business opportunities.
    Technologies: Java, Spring, AngularJS, Microservices Architecture
  • Software Developer and Board Member

    2011 - 2016
    Kutoa
    • Oversaw technical direction of Heroku-hosted Ruby on Rails development, hiring, and marketing for this unique NGO startup.
    • Built a leaderboard for most active members with Redis key-value store.
    • Built a responsive impact network tree with masonry.js and RoR to demonstrate how user involvement multiplies.
    Technologies: Ruby on Rails, JavaScript, Redis, Heroku
  • Solutions Architect

    2014 - 2015
    Payment Evolution
    • Introduced "IdentityServer" (an OpenID Connect Provider and OAuth2 Authorization Server) with C# .NET Web API as a proof of concept for future partner integration patterns using Identity and Access Management (IAM).
    • Consulted on technical direction for early partner integrations.
    Technologies: C#, .NET, OpenID Connect, OAuth2
  • Software Developer

    2014 - 2014
    Innovative Canadians for Change
    • Integrated OpenMRS Metadata Sharing Module into OpenMRS-based Kibera Medical Record Initiative (KMRI) platform for use with KMRI concept dictionary and medical forms.
    Technologies: Java, Spring, OpenMRS, MySQL, JavaScript
  • Lead Developer

    2014 - 2014
    Reformulary
    • Refreshed a healthcare project intending to help people make smart prescription drug choices using early JHipster with AngularJS, Bootstrap, Spring Boot, PostgreSQL.
    • Implemented SSO with SunLife to direct plan members to recommended generic drug choice.
    Technologies: Java, Spring Boot, PostgreSQL, AngularJS, Node
  • Web Developer

    2014 - 2014
    Domain7
    • Built ​creditunionsarehelpinghere.com with Rails and AngularJS.
    Technologies: Ruby on Rails, AngularJS
  • Team Lead

    2014 - 2014
    CIBC
    • Led one of four teams responsible for building eBanking for CIBC in Java/Spring.
    • Responsible for three sub-teams of 20 developers.
    • Investigated and implemented solutions for request throttling, load balancing (F5), and report generation with iText and Jasper Reports.
    Technologies: Java, Spring
  • Software Developer

    2008 - 2012
    Intelliware Development
    • Team Lead and developer for healthcare projects.
    • Java development for Canada's largest pharmacy including Swing Client and HL7 messaging in server.
    • Worked with Canada Health Infoway to provide open source HL7 v3 libraries for Java and .NET called "Message Builder" to increase standardized health messaging adoption. Libraries were generated directly from specifications.
    • Developed Java, Spring, JSP, JQuery web test harness "TL7" for testing HL7 messages as health software providers adopt HL7.
    • Built "Message Remixer" web application with Java, Spring, JSP, JQuery for managing and creating customizations of HL7 specifcations in provinces per request by Canada Health Infoway.
    Technologies: Java, Spring, jQuery
  • Software Developer

    2005 - 2007
    Embarcadero
    • Built cross-platform DB-management products in Java/C++ for optimizing SQL queries, generating DDL for specific SQL dialects from existing schemas (DBArtisan), and performance monitoring (Performance Center).
    Technologies: Java, C++, SQL
  • Software Developer

    2001 - 2002
    Research In Motion (BlackBerry)
    • Designed and prototyped early-attempts at mobile apps.
    • Implemented crypto RFCs in Java for crypto libraries.
    Technologies: Java
  • Web Developer

    2000 - 2000
    BMO Nesbitt Burns
    • Produced HTML, CSS standards for investments website.
    Technologies: HTML, JSP, CSS, Websphere

Experience

Skills

  • Languages

    Java, JavaScript, Ruby, SQL, CSS, Sass, C++, TypeScript, GraphQL
  • Frameworks

    Spring, Spring Security, OAuth 2, Spring Boot, Hibernate, Ruby on Rails (RoR), Angular, AngularJS, YARN, JUnit, Jest, JSON Web Tokens (JWT), Redux, Nest, WebFlux, Swagger
  • Tools

    Maven, Git, JHipster, Google Kubernetes Engine (GKE), Jenkins, Helm, NPM, Apache Tomcat, Redux Thunk, Travis CI, Jira, Bitbucket, GitHub
  • Other

    OpenID Connect (OIDC), Serverless, HL7, Axios
  • Libraries/APIs

    React, QueryDSL, React Router, Node.js, Reactstrap, React Redux, Normalizr, Passport.js
  • Paradigms

    Microservices Architecture, Continuous Integration (CI), Continuous Deployment, DevOps
  • Platforms

    Docker, Linux, Google Cloud Platform (GCP), JBoss, Heroku, AWS EC2, Google App Engine
  • Storage

    Spring Data JPA, PostgreSQL, MySQL, Google Cloud SQL, Elasticsearch, Spring Data Elasticsearch

Education

  • Master of Science degree in Computer Science
    2003 - 2005
    University of Guelph - Guelph, Ontario, Canada
  • Bachelor's degree in Computer Science
    1999 - 2003
    Trinity Western University - Langley, BC, Canada

To view more profiles

Join Toptal
I really like this profile
Share it with others