This section presents my employment history since starting university in September 2004.
My role at Carnegie was as Director of Software, supervising the software development for three of Carnegie’s product lines. I was responsible for defining the engineering culture, designing the development systems and tools, the technical hiring process, software architecture, developer coaching and mentoring, and spent a lot of time working with Carnegie’s hardware, embedded, QA, and DevOps teams to deliver highly scalable end-to-end products.
At Carnegie, my team and I built:
- Network Convergence Platform, a set of apps and services that optimized network connectivity by selecting the best network available to your smartphone or aggregated LTE and Wi-Fi together for a faster, more reliable connection
- SatBridge, a cloud-connected satellite terminal that provided local calling and messaging, follow-me-roaming over satellite, traffic shaping and filtering, and SOS
- Longview IoT, an end-to-end system consisting of sensors, gateways, cloud services, and apps that together provided an “Internet of Things network in a box”
The key technologies we used to deliver those products were Android/iOS, Kubernetes/Helm, Docker, AWS, Kafka, RabbitMQ/Mosquitto, node.js, Cassandra, PostgresSQL, Angular/React, Cordova, Linphone, Golang, and TypeScript - many of which I worked with personally.
The engineering team at Carnegie was disbanded in February 2020 after the product lines we supported were shut down.
I first started with Pravala though an NSERC IPS grant from the Canadian federal government. This program enabled me to work at Pravala on what would become Pravala’s bandwidth aggregation technology, while taking courses toward my Masters. As a result, my thesis was industry focused - slow page loads on mobile devices were something we experienced daily, and our architecture made the deployment of an in-network proxy for prefetching content simple.
During the latter portion of my IPS, my role at Pravala grew to focus primarily on program management over programming, a role which continued when I started full-time with Pravala. Today, in my roles as VP Engineering for Pravala I work in a wide range of areas, from managing customer accounts to designing and delivering the systems that provide unique levels of network flexibility and control.
Pravala’s products revolve around the central theme of managing network connectivity, and can be sorted into two primary categories. The first category, policy-based network management, consists of tools for managing multiple network connections on mobile devices. This includes tools for policy control, authentication, reporting, quality monitoring, Wi-Fi roaming, and network management. Network operators and computer OEMs use our platform to monitor and manage network connectivity dynamically for Android, iOS, and Windows devices, as well as to offer unique connectivity services that take advantage of multiple wireless networks.
The second category extends our network management/selection technology to simultaneous multi-network connectivity. By using multiple networks at once, network sessions can be transparently moved between cellular, Wi-Fi, and other connections without interrupting running applications. Or, we can increase the speed of downloads and uploads by aggregating together multiple connections - LTE + Wi-Fi, for instance. Pravala’s platform is used by VoIP providers and automotive manufacturers to ensure seamless uninterrupted connectivity to devices on the move.
At Pravala I managed and developed Android, Windows, and Web UIs, web services, and the architecture for the first category of products (network management and selection).
My time at Microsoft - two terms, one as a Software Design Engineer and one as a Program Manager - was spent on the Windows Presentation Foundation team, along with people like Lester, Rob, and a good number of the Microsoft people on this list. Within WPF, I spent most of my time working with the group responsible for layout, text, and other related items; when I was there, they were putting most of their effort into the Syndicated Client Experiences (SCE) starter kit.
My first term with Microsoft was spent developing photoSuru. Though the SCE starter kit was seeing some adoption in the newspaper community, developers at large were largely passing it by as too different from their scenarios. In addition, within WPF there was a need for applications that could be used to test and promote the new features of .NET 3.5 SP1. My task was to develop photoSuru - originally the ‘SCE Photo Viewer’ - to fill both these needs; a sample that could demonstrate the features of WPF and serve as a sample to the broader rich media developer community. As the primary developer for this task, it was my through my efforts that the SCE starter kit, designed for making newspapers easy to read on computers, was transformed into photoSuru, an application that made browsing a subscription of photos, online or offline, an easy task. The WPF testing team soon adapted photoSuru for their use, and it was used to show off bitmap effects in WPF at MIX 2008. While the PM team began their efforts to ship the photoSuru source code - a good portion of it mine! - to the development community near the end of my term, I built ‘photoSuru 360’, a Microsoft Surface optimized version of photoSuru as a way of exploring code sharing scenarios between regular and Surface versions of WPF applications.
Returning to Microsoft for a second term - this time as a Program Manager - saw my job responsibilities change, but still revolve around photoSuru. As a PM I was given the responsibility of getting photoSuru out the door and into developer hands. That meant preparing developer documentation, recording an introduction video for Channel 9, developing a feed creation wizard to assist developers in adapting photoSuru for their situations, assisting in the creation of an internal Microsoft application based off of photoSuru for browsing auction listings in the Microsoft Give auction, localizing changes to a companion product released simultaneously with photoSuru, and organizing a whole bunch of other minor tasks to numerous to mention. And that was just the second half of my term!
I spent the first half of my second term managing the development of a sample demonstrating the new features available with WPF and .NET 4.0 on Windows 7 for Scott Guthrie’s keynote at PDC 2008. Luckily, we did not have to start from scratch - photoSuru provided a great base - but that still meant managing a small team of developers (and an external vendor) in order to add a ribbon, multi-touch features, and integration with the new Windows 7 taskbar, writing specifications for all of the above, building the demo script, and reviewing the newly constructed sample frequently with Scott. I also flew down to Los Angeles to make sure the demo - shown to some 6,000+ attendees and thousands more on the web - went off without a hitch.
A small consulting firm serving the Greater Toronto Area, Systemgroup produces solutions in the custom development, information worker, data management, and business process and integration areas. I spent two co-op terms there as a software consultant in their custom development practice, working out of the Systemgroup office as well as various client sites.
My first term with Systemgroup was spent on a wide range of projects, from supporting our sales team to working with the project delivery team. While supporting the sales team, I developed a number of solution mock-ups for potential clients using ASP.NET and other web technologies (AJAX, CSS, etc.). As a member of the project delivery team, I assisted in the design, development, and deployment of several projects, using technologies like ASP.NET, SQL Server (including Reporting Services), SharePoint, and Visual Studio Tools for Office (VSTO). I also mentored a junior team member in these technologies in order to improve his design and development skills.
My second term was spent working primarily with a single client, a large Ontario credit union looking to manage and automate their wealth management processes. Working on a team of 8, I was personally responsible for translating our business analyst’s system specifications into screen prototypes using Windows Presentation Foundation (WPF). The other developers and I then bound the XAML files and styles I developed to the application’s data model to produce a functioning application. At the time, WPF was in its infancy as a commercial product - having been released less than 6 months prior - so a set of WPF ‘best-practices’ for business applications simply did not exist. As such, I developed a set of patterns and practices that allowed Systemgroup to produce an application that was visually appealing, intuitive, and functional. It was also during this term that I was exposed to DotNetNuke, a content management system for .NET, when transforming a set of site prototype images into an easy-to-manage website for a not-for-profit organization.
The Greater Toronto Airports Authority (GTAA) operates a number of airports in the Toronto area, including Lester B. Pearson International Airport, the location where I worked for a term. My position within the GTAA was as a software developer with Facilities Operation and Maintenance, in the Safety and Equipment Training department.
My department was responsible for ensuring that all Facilities staff was adequately trained to operate the hundreds of unique pieces of equipment used by the division, from small lifts to painting trucks to the huge Vammas pusher-sweeper-blower snowplows used to clean the runways. My task was to design and build an updated version of the software used to keep track of which employees were trained on which pieces of equipment. My solution, built using ASP.NET with an Oracle database for storage, allowed the over 400 division employees to look up this information much quicker and easier than the existing Microsoft Access solution would allow, while also providing reminders to the trainers in my department of any operators who had courses that were expiring (like CPR). While at the GTAA, I also received a Transport Canada Transport Canada Transportation Security Clearance (expired), and my Radio Operator’s Certificate (Aeronautical).
Hydro One is the leading electricity transmission and distribution company in Ontario, owning and operating almost all of Ontario’s electricity transmission system. I spent a term at Hydro One’s Ontario Grid Control Centre (OGCC) in Barrie, which is responsible for controlling Ontario’s entire electricity transmission grid.
Specifically, I worked for the Operating Planning department; any maintenance or repairs on the transmission system were designed and approved by my department before being passed to the control room for execution. My tasks were generally related to the development and maintenance of internal tools for the department using Microsoft Access and Excel, as well as Visual Basic for Applications (VBA) and regular Visual Basic.