IMPORTANT WORK AUTHORIZATION NOTICE: We cannot sponsor candidates outside of Canada.
You must be currently residing in Canada (e.g., Ontario, BC, Alberta, etc.) and be legally authorized to work for a Canadian company without requiring visa sponsorship now or in the future.
About the Role
We are seeking an elite, highly specialized C#/.NET Desktop Developer to take ownership of a massive, enterprise-grade desktop application suite. This is not a web development role. We are looking for a true desktop craftsman who understands the intricacies of the Windows operating system, deep Microsoft Office integration, and complex UI modularity.
In this role, you will be modernizing legacy systems, building out robust modular architectures using the Prism Library, and creating seamless, high-performance plugins for Microsoft Word, Excel, and Outlook. You will write code that bridges legacy WinForms components with highly reactive, beautifully designed WPF/XAML interfaces.
If you dream in XAML, know how to properly dispose of a COM object, and understand the difference between a DataTrigger and a VisualState, this is the role for you.
Core Responsibilities
- Architecture & Modularity: Design, build, and maintain highly decoupled, modular desktop applications using the Prism Framework. You will manage complex Region injections, module discovery, and inter-module communication using the IEventAggregator.
- Deep Office Integration: Architect and develop robust VSTO (Visual Studio Tools for Office) and COM Add-ins. You will build Custom Task Panes, manipulate the Office Ribbon (XML), and interact directly with the Office Object Model via Primary Interop Assemblies (PIAs).
- UI/UX Engineering: Craft responsive, pixel-perfect user interfaces using WPF and XAML. You will implement complex ControlTemplates, fluid animations, and highly customized user experiences.
- Legacy Bridging: Maintain, upgrade, and safely refactor existing WinForms legacy code, implementing ElementHost wrappers where necessary to gradually migrate components to WPF.
- State Management & Reactivity: Implement advanced UI logic using XAML Triggers (Property, Data, and Event Triggers) alongside the Visual State Manager (VSM) to handle complex transition animations and visual feedback without polluting the code-behind.
- Memory & Performance Tuning: Aggressively monitor and manage desktop memory usage. You will handle background threading (Task, async/await, Dispatcher), UI thread marshaling, and strict COM object lifecycle management (using the Two-Dot Rule and Marshal.ReleaseComObject) to prevent Office application ghosting and memory leaks.
- Version Control & CI/CD: Lead code reviews and manage complex repositories using Git. You will utilize GitFlow or feature-branching strategies, resolve complex merge conflicts, and integrate with CI/CD pipelines for automated MSI/ClickOnce deployment.
The Extensive Technical Stack & Requirements
The Non-Negotiables:
- Excellent command of the English language.
- 5+ years of hardcore, dedicated experience with C# and the .NET Framework (4.6.2 - 4.8.1) / .NET Core desktop workloads.
- Mastery of MVVM: Deep, practical knowledge of the Model-View-ViewModel design pattern. You know how to keep your code-behind completely clean.
- XAML & WPF: Expert-level knowledge of XAML binding (OneWay, TwoWay, OneWayToSource), INotifyPropertyChanged, Dependency Properties, Attached Properties, and IValueConverter.
- Triggers: You must know exactly when to use a DataTrigger versus a MultiDataTrigger, and how to hook up EventTriggers to invoke ICommand executions via interactivity behaviors.
- Visual State Manager: Experience defining VisualStateGroups, VisualStates, and VisualTransitions with custom Storyboards and animations to handle complex UI states (Hover, Pressed, Disabled, Custom Application States).
- WinForms: Strong foundational knowledge of Windows Forms to maintain legacy modules, handle GDI+ painting, and manage the Windows Message Pump (WndProc).
- Prism Library: Proven experience using Prism for WPF. Must be comfortable with DelegateCommand, CompositeCommand, RegionManager, ViewModelLocator, and Dependency Injection containers (Unity, DryIoc, or Ninject).
- Office APIs (VSTO): Demonstrable experience writing Application-level and Document-level add-ins for MS Office. You understand the pain points of deploying Office plugins to locked-down enterprise environments.
- Git & Source Control: Advanced Git knowledge. You should be comfortable with interactive rebasing, cherry-picking, stash management, and writing clean, atomic commit messages.
Bonus "Nice-to-Haves":
- Experience with UI control suites like Telerik, DevExpress, or Infragistics.
- Knowledge of SQLite, Entity Framework, or local caching mechanisms.
- Familiarity with WiX Toolset, InstallShield.
Who You Are
- A Problem Solver: You don't just copy-paste from StackOverflow. You dig into the memory profiler when the app consumes too much RAM.
- An Architect: You think about how a module you write today will be consumed by a different team two years from now.
- A Communicator: You are comfortable working entirely remotely, capable of hopping on a Teams/Zoom call to pair-program, and articulate enough to document your architectural decisions clearly.
What We Offer
- A highly competitive Canadian-market compensation package.
- 100% remote work flexibility within Canada for the right candidate.
Pay: $75,000.00-$100,000.00 per year
Benefits:
- Casual dress
- Company events
- Dental care
- Extended health care
- Flexible schedule
- On-site gym
- Paid time off
- Relocation assistance
- RRSP match
- Vision care
- Work from home
Work Location: In person