Experience
SuiteSpot Technology, Toronto, ON
Senior Lead Software Developer - Platform Team
Nov 2017 - PRESENT
Early Team Member & SAAS Platform Architect Aided in the inception of the company and spearheaded the development of a SAAS platform assisting Property Managers in daily operations.
- Designed a robust SAAS solution utilizing Node.js, RabbitMQ, MongoDB, TypeScript, and Angular.
-
Engineered an authentication service, facilitating user and API
tokens across multiple tenants.
- TOTP support to allow MFA using Authenticator Apps.
- SAML support to provide SSO.
- SCIM support for user syncing to the platform.
- Crafted native iOS and Android applications using Ionic and Capacitor for AppStore deployment.
-
Developed multiple Capacitor native plugins, including:
- A camera plugin for enhanced photo-taking efficiency.
- A background task plugin ensuring data uploads prior to app closure.
-
Set up CI/CD on CircleCI, ensuring end-to-end testing of APIs
and web apps:
- Executed automated headless e2e tests with Protractor/Playwright, providing detailed reports and failure screenshots.
- Containerized services using Docker to deploy to AWS and local clusters for testing.
- Initiated a component library with Lit and web components, aligning with the SuiteSpot design system.
- Seamlessly integrated legacy third-party Property Management systems through SOAP APIs, ETL files, and SFTP, supported by an S3 Bucket and Lambda functions.
-
Provided CLI tools, and small web apps to accelerate the
development team with their tasks:
- Rust CLI to inject cloud secrets into their environment if their AWS credentials allow it.
- Backend web tools to inspect and onboard customer data.
- Configure attributes/metrics and our logging infrastructure to more easily track down issues in the system.
Graphite Software, Ottawa, ON
Android Software Developer
Feb 2015 - Nov 2017
Contribute to Graphite Software's fork of the Android Open Source Project (AOSP) for the Secure Spaces Android multi-persona security solution.
- Android application development on numerous components in the Secure Spaces product using Java and Kotlin.
- Developed various features within Android's Application Framework layer.
- Lead development on larger full stack projects (REST application server, API, Android client).
- Created custom Gradle Plugins for use by other developers working on Android applications.
- Android user interface design and implementation for apps.
- Developed functional and unit tests for Android apps and framework.
- Some lower layer C/C++ development in Android's System Services layer (netd, installd).
- Building Linux kernel with added modules within the AOSP source tree.
- Developed a Cloud based nightly build system using golang and Google Cloud Platform.
- Create various Docker containers for continuous integration tasks.
Graphite Software, Ottawa, ON
Web Software Developer
Apr 2014 - Feb 2015
Worked on the full stack (database, server, web client, and Android client) as a software developer for Graphite Software security solution for Android based mobile devices.
- Focused on delivering solutions based on the Typesafe Reactive Platform (Scala, Play Framework and Akka).
- Build dynamic single page web applications using AngularJS by hooking the resources into the server side REST APIs.
- Scala Play applications that manage a scalable MongoDB database using ReactiveMongo asynchronous database driver.
- One of my biggest achievements was to spearhead a project to build an Over-the-air updating API to provide new Android build images to devices running out in the field.
Self-Employed Web Portal Project, Ottawa, ON
Web Developer
2014 - 2021
Project: Web Portal for Book Publishers
Objective Develop a modern web portal enabling book publishers to access sales and inventory data, replacing an outdated system.
- Designed the portal from scratch using Node.js, NestJS, TypeScript, and MongoDB. Deployment in a Docker container on Google Cloud Platform using Cloud Run.
- Partnered with a consultant to comprehensively address user pain points and enhance functionality.
- Engineered an intuitive Ordering module, streamlining the order creation process and facilitating exports to their legacy system for efficient processing and fulfillment.
- Amplified data retrieval by integrating a full-text search system, indexing customer data in ElasticSearch.
Outcome The portal was well-received by users, significantly improving their day-to-day operations and offering a substantial upgrade from their legacy system.
BLINQ Networks, Ottawa, Canada Area
Software Developer
Apr 2012 - Dec 2014
Team member for the wireless network management product used to manage a system of nodes, collect performance data, increase link performance, and assist with network planning.
WebUI:
Web front-end node configuration management for editing RF/IP settings of the wireless backhaul nodes.
- Designed user interface mockups for web applications.
- Developed a GWT front-end application with a wrapper around the ConfD javascript api to access the nodes configuration settings.
- XML processing for wireless nodes performance data.
Node Management and Pre-Deployment Assistant:
Create Java Web Applications to manage live BLiNQ wireless nodes and optimize them to specific performance requirements. Plan wireless backhaul networks before deploying them with the Pre-Deployment assistant and simulator.
- Developed Web Applications in JBoss application server using Enterprise JavaBeans.
- Interoperability communication between MATLAB and Java applications using SOAP Web Services with J2EE standards.
- Designed database schema using MySQL Workbench.
- Used JMS for inter-application communication.
Digital Attenuator Controller:
Used the Raspberry Pi GPIO ports to control an in-house Digital Attenuator Circuit Board.
- Developed a C++ application to communicate over the SPI pins of the GPIO to control the Digital Attenuator Circuit Board.
Superna.Net, Ottawa, Canada Area
Software Developer
Sep 2010 - Mar 2012
On-site role focusing on engineering applications tailored for optical and radio frequency network planning tools.
- Engineered applications using Java and Python tailored for optical network planning tools.
- Collaborated with a team of developers on a unified project, utilizing tools for issue tracking and version control.
- Integrated both REST and SOAP-based Web Services and ensured seamless deployment using Tomcat.
- Crafted applications in C# leveraging ASP.NET for radio frequency network planning, with a UI developed using HTML, CSS, Javascript, and jQuery.
- Designed and implemented applications in Java and Python to deploy virtual simulators on VMware ESX systems via the VMware Infrastructure API.
- Established and executed automation testing for a Java-based Network Management System using Python.
- Regularly participated in weekly development meetings with software architect.
- Proficient in agile and scrum development methodologies.