Angela Thomas, P.Eng.

Angela Thomas, P.Eng. Email and Phone Number

[ reality is messy. let's get real. ] Engineering leader embracing the mess to grow realistically resilient product, people, and teams. @ Curve Dental
provo, utah, united states
Angela Thomas, P.Eng.'s Location
Calgary, Alberta, Canada, Canada
About Angela Thomas, P.Eng.

Reality is messy, but that doesn't mean it is unmanageable. I lead teams through uncertainty, build organizational trust, and identify and reduce risks to schedule and quality through continuous improvement practices. I enjoy serving as a liaison between different technical groups within an organization, and I excel at communicating and translating technical issues to non-technical audiences.Why do I say reality is messy? Because it usually isn't easy to model a real-world problem in a simple set of rules and application interactions - but that is the true challenge in writing software, in my eyes. There are certainly hard problems in the areas of scalability, reliability, various performance metrics, scheduling, resource constraints, and even the algorithmic choices that a team makes. But I often see teams struggle with the real grey areas of their problem space, rather than the back-end technical decisions. A model is, by definition, always a simplification of reality, and by recognizing the tradeoffs that we are making in the present we can better manage and estimate where we are going in the future. In the past as a Software Engineer, and now as an Engineering Manager, I coach my teams to deliver high quality software releases through an emphasis on transparency, openness, and a focus on collaboration and candor.

Angela Thomas, P.Eng.'s Current Company Details
Curve Dental

Curve Dental

View
[ reality is messy. let's get real. ] Engineering leader embracing the mess to grow realistically resilient product, people, and teams.
provo, utah, united states
Website:
curvedental.com
Employees:
91
Angela Thomas, P.Eng. Work Experience Details
  • Curve Dental
    Senior Full-Stack Software Developer
    Curve Dental Jan 2024 - Present
    Calgary, Alberta, Canada
    • Completed work in 12 new-to-me languages and frameworks in my first 6 weeks with the team. (AngularJS, Angular14, Javascript, RxJS, PHP, .NET, dojo, dijit, symfony, PostgreSQL, Jasmine Test, JSTest)• Took initiative to automate a longstanding manual process used to manage and maintain provincial fee guides by writing a bash script in less than one day, saving 10-20 hours of tedious and error-prone toil multiple times a year for every fee guide maintenance incident.• Designed and implemented a full-stack feature to calculate and display the Estimated End Date of a Payment Plan, including the front-end display code, the back-end logic, and an asynchronous .NET API endpoint for CRUD-style communication between the two.• Developed subject matter expertise in payment processing integration code in 6 weeks. This was largely without assistance as existing SMEs were unavailable for consultation for several months.• Learned, mapped, and taught others about convoluted code handling new and legacy payment processing event workflows while other subject matter experts were unavailable.• Designed and implemented a Zero Dollar Authorization (ZDA) workflow to store a pre-authorized Card On File for the Payment Plan feature module using the Global Payments / OpenEdge Transaction API and physical Genius payment devices (esp. the Verifone P400) spanning PHP, HTML, Typescript, and .NET code.• Guided a growing but isolated team in their understanding of Software Engineering best practices, including de-risking work through research spikes, the importance of vertical slices, the benefits of breaking up large code reviews into targeted changes, and the value of a well-defined Minimum Viable Product.• Coached and empowered developers to advocate for their needs in Sprint Retrospectives by bringing attention to moments where they were using past negative experiences to self-censor and bury their struggles.• Nurtured an awareness of the maintenance costs of short-term solutions.
  • Raven.Ai
    Software Engineering Manager
    Raven.Ai Feb 2022 - Jan 2023
    Ottawa, Ontario, Canada
    Raven Telemetry (Raven) is an "Industry 4.0" industrial automation technology company working to help manufacturers understand and optimize their production floor workflows. Raven takes an operator-first design paradigm to help manufacturers continuously improve their production lines, using proprietary IoT/edge devices and AI analysis to illuminate areas for improvement and assist in understanding production downtime.Highlights:* Balanced a broad range of internal and external demands on two teams of 4 developers each; one focused on reactive customer support work, one focused on long term feature work* Reduced reactive support tickets by over 18% by building time into the team's schedule for automating repetitive tasks* Negotiated a cross-functional process change, saving 1 week of dev time per month; a 6% team productivity boost* Coordinated an Engineering-wide training initiative to decrease silos and tribal knowledge* Gifted unofficial title of "Facilitator in Chief" for spearheading communication-focused activities (weekly cross-functional coffee chats, Friday "Highlights" call, "Fledglings" onboarding program)* Guided a team of junior and intermediate devs through conversations about identifying and mitigating risks in legacy architecture* Established and lead a technical book club with topics relevant to current company challenges (Site Reliability Engineering and Workbook, Observability Engineering)* Hosted regular technical ideation sessions to address a variety of topics, including mapping existing technical debt, features for the current ecosystem as well as the next-gen platform, manual task automation, k8s cluster management, tenant decommissioning, and department-wide collaboration* Advocated for SW Eng. best practices, specifically around reliability, observability, and proactive capacity and project planning* Managed expectations, addressed growing pains, and built long-term strategic plans as the team moved from startup to scale-up
  • Raven.Ai
    Senior Software Developer
    Raven.Ai Aug 2021 - Feb 2022
    Ottawa, Ontario, Canada
    Raven Telemetry (Raven) is an "Industry 4.0" industrial automation technology company working to help manufacturers understand and optimize their production floor workflows. Raven takes an operator-first design paradigm to help manufacturers continuously improve their production lines, using proprietary IoT/edge devices and AI analysis to illuminate areas for improvement and assist in understanding production downtime.Development focus:• Modernizing bash deploy scripts to support multiple cloud hosts and be agnostic of cloud vs. on premise deployments (primary development)• Managing deployed software with Kubernetes on Google Cloud Platform (occasional development)• Tracking observability metrics and issues using Sentry, Honeycomb, and piping failed bash script outputs to Slack with slacktee (occasional development)Highlights:• Consolidated and modernized many nearly identical bash deploy scripts into a single well-documented script with appropriate and explicit command line parameters.• Simplified and debugged existing deployment practices to find places where hosting assumptions or IP addresses had been baked into the code and replaced them with command line switches to handle the existing supported hosts, while also making it more obvious how to add support for other hosts in the future.• Revised the quarterly engineering culture survey, and ran it and monthly team culture review sessions from Dec. 2021 onwards.• Hosted the weekly company-wide gratitude meeting ("Highlights") on Fridays from Sept. 2021 onwards• Engaged with teams around the company to create the Raven Speaker Series, a set of internal tech talks to keep people from across the organization informed about projects, ideas, and experiments as we grow our team.
  • Computer Modelling Group Ltd.
    Senior Software Developer
    Computer Modelling Group Ltd. Nov 2019 - Jul 2021
    Calgary, Canada Area
    The Computer Modelling Group (CMG) is a reservoir engineering data processing company specializing in software tools for modelling and simulation of oil and gas reservoirs for resource extraction optimization. I was hired into a special research project within the Visualization Group where we are applying concepts of Flow Based Programming (FBP) into a general purpose workflow automation tool. We are exploring a variety of ideas to enable non-programmers to be able to design and wire up their own data processing workflows with a visual programming approach.Development focus:• C++17 graph engine as a wrapper for DSPatch, and later Pothos, dataflow engines, and an FBP Server to handle incoming FBP Protocol messages from third party UI and testing frameworks (primary development)• Behave test framework in python for FBP Protocol functional tests over websocket connections to the FBP Server (primary development)• MS Unit Tests in Visual Studio for C++ (occasional development)• MFC/Codejock & ImGUI frontends (occasional development)Highlights:• Designed and implemented the UI and backend for a "Record and Replay" feature.• Implemented an FBP Server to handle incoming FBP-spec messages from the FlowHub front end.• Rewrote existing state-based Undo/Redo feature to use revertible commands and an in-memory command timeline.• Wrote functional tests in python using the Behave BDD test automation framework to send messages to the FBP Server for graph creation and manipulation.• Brainstormed future features, areas for improvement, and pitfalls of our design choices with teammates.• Reviewed code for teammates, emphasizing a more production-minded approach to the code versus the fast-and-loose research sandbox approach that had dominated the research project's original coding style.• Investigated Intel's Thread Building Blocks' "Flow Graph Analyzer" but determined that we could not easily use that as a front end for our product under the current project vision.
  • Bids Trading
    Senior Software Developer, Trading Engine And Admin Client
    Bids Trading Jan 2018 - Aug 2019
    Calgary, Canada Area
    BIDS Trading is well-known in the FinTech world, and operates the BIDS Alternative Trading System (ATS) which is a dark pool designed for block trading. I primarily worked on server side Java code, adding features for internal and external customers. Development focus:• Java-based trading engine, reporting services & specialized gateway server nodes with JUnit automated tests and Log4j logging (primary development)• Javascript- & Angular-based Admin Client built on top of a proprietary framework of common UI elements (occasional development)• Oracle DB backend (occasional development)• bash scripts that call server-side Java MBeans (infrequent development) Highlights:• Implemented a more targeted caching approach for the performance-sensitive trading engine based on an existing internal design.• Completed multiple time-sensitive monthly release management tasks, including code to allow backwards compatibility between mismatched server-to-server & client-to-server objects, custom serializers & message handlers.• Extended & altered existing database table definitions, creating the necessary database upgrade scripts to support new functionality.• Documented tribal knowledge, helping to increase awareness of several release tasks which had previously only been fully understood by one person.• Increased my responsibilities by taking on a DOC role (Developer on Call, aka Tier 3 support) after 6 months at the company, having started with no experience in the FinTech industry & little exposure to stock trading jargon.• Consulted with in-house subject matter experts as lead DOC 2 days a week to solve difficult customer concerns by analyzing logs & historical database records to determine an issue's root cause & follow-up actions.• Developed a bash script to identify unused feature switches ("tweaks"), and wrote user stories to simplify OPS-side tweak maintenance.• Developed a bash script to generate skeleton code, which had been done by hand for many years.
  • Pason
    Software Developer, Rigsite Hw Authentication/Billing Services And Edr
    Pason Jan 2015 - Oct 2017
    Calgary, Canada Area
    Pason Systems is a drilling services company focused on wellsite data acquisition and analysis. I have worked on two sub-teams within the Electronic Drilling Recorder Rigsite team. First, a team that wrote and maintained the PBS software that is used on the drilling rig to authorize Pason and Third Party equipment, and to bill the customer at the office for services used on the rig. When new development on that project was put on hold, I moved to the larger Electronic Drilling Recorder (EDR) team working on field issues and new features.Development focus: • Java server and MVC Java EDR and PBS clients hosted on the rig (primary development) • Python script automation of repetitive tasks (occasional development) • MySQL database (occasional development) • GFest (a fork of Google's abandoned FEST) functional GUI tests to automate tedious tests (occasional development)Highlights:• Developed subject matter expertise in the authorization subsystem after only 6 months on the team, resulting in faster team resolution of previously frequent and difficult authorization-related bugs.• Identified and redesigned a series of authorization message handlers that were causing a bottleneck in our system, reducing message republication by 50% for all recently approved charges.• Reduced an error-prone 10 minute multi-step manual process to a single Python script call, which also allowed our customer support team to quickly gather this information without waiting for a developer.
  • Smart Technologies
    Software Developer - Hid Extension & Diagnostics
    Smart Technologies Sep 2013 - Dec 2014
    Calgary, Canada Area
    After 5 years at SMART doing application-level development, I decided to get closer to my roots as a Computer Hardware Engineer by moving to the Drivers (HID Extension, not kernel drivers) & Diagnostics team. On "Team D&D" I worked alongside a team of skilled senior developers, and directly with the firmware team to get new hardware products ready for our many touch-enabled applications. It had been a while since I'd developed on 3 operating systems (Win, Mac, Linux), and it was great to get back on Linux development.This is the kind of work that gets me out of bed in the morning. I love reading byte-level communication protocol documents and working with new products before they're fully polished. Plus, who doesn't like talking about UARTs, EEPROMs, and reading strings of hex characters as if they were English?Development focus:• C++ cross-platform data & model layer code (primary development)• Qt 4 for the cross-platform UI (occasional development)• UnitTest++ improvements to our refactoring safety net (occasional development)Highlights:• Designed and implemented the software abstraction of hardware tool changes for the industry-leading "Passive Pen ID" feature of the SMARTBoard 6065, released in June 2014 after less than a year on the team.• Recognized with a departmental "Presidents' Club" award for breaking down technical and communication barriers between the Software, Firmware, and Hardware teams.• Took ownership of team and code base issues, and fostered a customer-centric approach to working with internal and external stakeholders.
  • Smart Technologies
    Software Developer - Wan Conferencing / Bridgit Team
    Smart Technologies Sep 2008 - Sep 2013
    Calgary, Canada Area
    In my role as a developer on the SMART Bridgit team, I worked on a VOIP / video conferencing / remote desktop and desktop-sharing suite for Windows, Mac, and iOS. Bridgit allowed people to remotely collaborate on regular computer hardware, but excelled when the computer is connected to SMART interactive multi-touch products.Development focus:• C++ cross-platform data & model layer code (primary development)• MFC for the Windows UI (frequent development)• Objective-C & Cocoa for the Mac and iOS UI (occasional development)Highlights:• Designed and implemented a variety of features for the Bridgit software suite (client and server-side code), including the popular "Knock-to-join" and "Raise Hand" features.• Redesigned the 4-person webcam window to a flexible 9-person touch-friendly UI, with bandwidth & CPU-saving video rescaling based on window size.• Designed and implemented the "SMART Scheduler Server for MS Exchange" and "SMART Scheduler MS Outlook Add-in" applications/plugins for Exchange 2007 and 2010.• Refactored and rewrote legacy code in order to use dependency injection and object mocking along with our UnitTest++ unit tests.• Integrated code coverage and unit test results to continuous integration builds so that the quality of our code was clear and obvious to all stakeholders.• Evaluated third party hardware and software packages for upgrading webcam feeds to the H.264 video encoding specification.• Researched, designed, and estimated the scope of a SaaS re-architecture of Bridgit services, emphasizing discoverable APIs.
  • Fekete And Associates
    Tools And Gis Developer (C++)
    Fekete And Associates Sep 2007 - Sep 2008
    Calgary, Canada Area
    In this role I wrote C++ and shared MFC dynamic linked libraries to allow an integrated GIS application to handle reading and drawing ESRI Shapefiles as digital maps. This project provided me with a chance to work with drawing algorithm optimizations in constrained spaces, and with binary file parsing. I also regularly took technical support calls for a database import utility whose interface and codebase I modernized, and have received several compliments from clients on my professional support. My projects at Fekete varied from self-directed to team-based work, and I have demonstrated my aptitude for both kinds of projects. My work at Fekete has convinced me that nothing is more compelling than designing, developing, and testing code that adds practical functionality to a novel product.
  • Jet Programme
    Assistant Language Teacher
    Jet Programme Jul 2005 - Aug 2007
    Iwate, Japan
    As a participant in the JET Programme, I lived in Japan teaching English to Japanese High School students. I studied Japanese, teaching a free evening English Conversation Class for adults in my town, and regularly volunteered to improve the awareness of foreign culture in this largely homogeneous nation. I have assisted a local translation group in their translations of English and Japanese idioms, and created a Canadian culture room as part of my city's annual culture festival.My experiences in Japan have changed me forever into a much more culturally sensitive person, and have taught me that mankind shares similar hopes and dreams regardless of the color of the flag under which they live.
  • University Of Alberta
    Embedded Systems Design Project Member
    University Of Alberta Jan 2005 - Apr 2005
    Edmonton, Alberta, Canada
    Embedded Systems Design ProjectCMPE 490 (Capstone Course, team of 4) Highlights:• Designed and built a scalable, user-programmable embedded fan control system, which included logic circuit design, a hand-wired perfboard circuit, and custom software written in C and MCORE assembly.• Wrote QA test routines, hardware drivers, and software to dynamically control the custom built hardware.• Compiled and laid out both a user manual and a technical report on the completed product.
  • Computer Science Dept, Athabasca University
    Nserc Agent-Based A.I. Research Assistant
    Computer Science Dept, Athabasca University May 2004 - Jan 2005
    Edmonton, Canada Area
    Worked with Professor Oscar Lin to create an ALICE- and AIML-based course assistant using an expert-system AI framework for an undergraduate database course. Also revised the course notes and slides used in the course, and occasionally provided assistance to Teaching Assistants that were assigned to the course. Researched more flexible AI systems for creating course assistants and proposed future projects with more robust AI architectures.
  • Uofa Engineering Students' Society
    President
    Uofa Engineering Students' Society May 2003 - Apr 2004
    Edmonton, Alberta, Canada
    As President of the University of Alberta Engineering Students' Society, I overhauled the existing set of positions within the society and brought about major legislative changes to modernize the society and reconnect the ESS Executive with the students that we represented.
  • Epcor
    Engineering Summer Student
    Epcor May 2003 - Sep 2003
    Edmonton, Alberta, Canada
    As an Engineering Summer Student, I completed a variety of tasks for the EPCOR Engineering Department. I was primarily tasked with a database migration project that had been set as a business priority for that year. The project had been poorly documented by the previous work group, and I essentially planned the database migration from scratch. The complications that arose throughout the project were challenging, but I was able to move the project forward significantly in the time that I was working on it. As part of this project, I was entrusted with the responsibility of drafting an Engineering Data Standard for EPCOR's Engineering Department, which was accepted on its first draft.

Angela Thomas, P.Eng. Education Details

Frequently Asked Questions about Angela Thomas, P.Eng.

What company does Angela Thomas, P.Eng. work for?

Angela Thomas, P.Eng. works for Curve Dental

What is Angela Thomas, P.Eng.'s role at the current company?

Angela Thomas, P.Eng.'s current role is [ reality is messy. let's get real. ] Engineering leader embracing the mess to grow realistically resilient product, people, and teams..

What schools did Angela Thomas, P.Eng. attend?

Angela Thomas, P.Eng. attended University Of Alberta.

Who are Angela Thomas, P.Eng.'s colleagues?

Angela Thomas, P.Eng.'s colleagues are Romit Panicker, Jackson Lettich, Mark Pennie, Bohdan Shymkiv, Conrad Marsala, Grace Von Allure, Dylan Waters.

Free Chrome Extension

Find emails, phones & company data instantly

Find verified emails from LinkedIn profiles
Get direct phone numbers & mobile contacts
Access company data & employee information
Works directly on LinkedIn - no copy/paste needed
Get Chrome Extension - Free

Aero Online

Your AI prospecting assistant

Download 750 million emails and 100 million phone numbers

Access emails and phone numbers of over 750 million business users. Instantly download verified profiles using 20+ filters, including location, job title, company, function, and industry.