Experience
SuiteSpot Technology, Toronto, ON
Senior Lead Software Developer - Platform Team
Nov 2017 - PRESENT
I lead a team of talented developers in designing and developing SaaS applications. I utilize my proficiency in Web Technologies such as TypeScript, Angular, Ionic, and Node.js to spearhead the creation of resilient solutions like authentication services, scalable full-text search, and analytics APIs/Dashboards. These advancements enable clients to swiftly make informed decisions regarding their property management processes.
- Designed a robust SAAS solution utilizing Node.js, RabbitMQ, MongoDB, and Angular using TypeScript.
-
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.
- 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.
- Python apps to process logs and data for debugging and analysis.
- Configure attributes/metrics and our logging infrastructure to more easily track down and fix bug and performance problems.
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.
Founding Partner and Software Developer, Ottawa, ON
Web Developer
2014 - 2021
Independently developed the Dispilio Publisher Portal, a SaaS solution for publishers and warehousing companies, using TypeScript, Node.js, ElasticSearch, MongoDB, Angular, and Go.Achievements
- Established partnerships with consulting firms to collaborate with publishers like MacMillan and Kodansha.
- Deployed the project to Google Cloud Platform using services such as Cloud Run, Functions, and Kubernetes
- Improved inventory management, and sales tracking for stakeholders.
- Implemented 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. After 7 years I sold my shares to the consulting firm for project continuity. This project showcases my ability to innovate, collaborate, and deliver value in software projects.
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.