Software Architect
- Canada
Full-time
Applications open in a new tab.
Job details
- Job type
- Full-time
- Posting language
- English
- Posted
Original job description
Job Description
Senior Software Developer
Simulation and Desktop Applications
Location: Kelowna, BC (preferred) or remote within North America Type: Full-time, permanent Reports to and works with: Software architecture lead
About the role
Boyd Thermal by Eaton builds commercial thermal and fluid simulation software (CFD) used by engineers at major electronics, power, and industrial companies to design cooling systems. The product is mature Windows desktop software with a long history, an active solver development program, and a small team of very experienced developers, which means the work is unusually broad: GUI, solver physics, geometry and meshing, native extension modules, build and release engineering, and internal tooling, often in the same month.
We are looking for one experienced generalist developer to work alongside our software architect. Not a specialist in one framework, and not someone who needs a defined ticket queue: someone who can be handed a hard, loosely specified problem, work out what the right solution actually is, and build it.
What you will work on first
Your first project is a standalone desktop application for our network flow solver, built on prototype work that already exists. It is a node and edge network editor for fluid flow and thermal networks, driving a native C++ solver core, with results visualization and reporting. The current direction is C# on Windows, so you would own the application layer, the interop boundary to the native solver, the UX, and the packaging and installer.
It is a good first project deliberately: real scope, real users, clear boundaries, and it teaches you the physics and the domain vocabulary before you are dropped into the larger legacy codebase.
What you will work on after that
· Solver and numerics work in Python and C++ (finite volume CFD, conjugate heat transfer, two-phase boiling, porous media, iterative linear solvers)
· The main desktop application: Python 3.x, wxPython, VTK 3D visualization
· Native extension modules: C and C++ bound to Python (Cython today, nanobind for new work)
· Geometry and meshing, including CAD kernel integration
· Occasional web work: internal dashboards, customer facing portals, and tooling
· Build, packaging, licensing, and release engineering on Windows
· Porting the product to Linux. Windows is and remains the primary target, but a Linux port is on the roadmap and is a significant piece of work: native extension builds, toolkit and driver differences, packaging, and licensing all have to be solved a second time
Required experience
· 7+ years professional software development, with a track record of owning non trivial systems end to end (design, build, ship, support)
· Strong in at least two of Python, C#, C, C++, and able to become productive in the others quickly. Multi-language fluency is a hard requirement, not a bonus
· Desktop application development on Windows: real UI work, application architecture, state management, threading, installers and deployment. Comfort on Linux as well, since a Linux port of the product is on the roadmap
· Comfort working in large, old, imperfect codebases: reading code you did not write, making surgical changes, and understanding blast radius before you touch anything
· Solid engineering fundamentals: data structures, performance analysis and profiling, memory, and debugging hard failures (crashes, races, corruption, numerical drift)
· Practical, current use of AI and agentic development tooling. We use coding agents heavily and expect you to as well: writing good prompts and specs, building agent workflows and custom tooling, reviewing generated code critically, and knowing where these tools mislead you. Being interested in AI is not enough, we want someone already working this way
· Fluent written and verbal English, and the judgment to raise a concern early rather than deliver the wrong thing on time
Strongly desirable
· Numerical or scientific computing background: linear algebra, ODE and PDE discretization, convergence behaviour, floating point pitfalls
· Any engineering simulation exposure: CFD, FEA, thermal, electrical or fluid network solvers
· Native and managed interop: P/Invoke, pybind11 or nanobind, Cython, ctypes
· Cross-platform porting experience, particularly Windows to Linux: native toolchains and build systems, path and filesystem assumptions, GUI toolkit and graphics driver differences, packaging and distribution
· 3D graphics or visualization (VTK, OpenGL, or similar)
· Web development. We favour Vue 3 with a Python FastAPI backend
· CAD geometry kernels (Parasolid, OpenCASCADE) and mesh generation
· GPU or parallel compute (CUDA, OpenCL, OpenMP)
· A physics, mechanical, or aerospace engineering background alongside the software experience
Who we are looking for
· Self-motivated. You set your own direction from a goal, and you close things out without being chased
· Curious, with a research mindset. You will hit problems where the answer is in a journal paper, a vendor's undocumented behaviour, or a numerical experiment you have to design yourself. You should find that appealing rather than annoying
· Rigorous. Our users make hardware decisions worth millions based on our results. “It runs” is not the bar. “It is correct, and I can show you why” is
· Pragmatic. This is production software with paying customers and decades of history. We favour conservative, well understood changes over rewrites
· A good colleague. Small team, direct communication, strong opinions held loosely
Location and work arrangement
Our preference is a candidate who is in, or willing to relocate to, Kelowna, BC, since there is real value in overlapping in person with the architecture lead during the first year.
To apply
Send a CV plus a short note covering:
· Two or three systems you have built or substantially owned, and what was hard about them
· The languages you would consider yourself strong in, and the last thing you shipped in each
· How you currently use AI or agentic tooling in your day to day development work
Interview Requirements and Candidate Privacy Notice
All positions may require participation in video and in-person interviews as part of the hiring process. All candidates will be evaluated based on job-related competencies, and all candidates’ privacy rights and data security will be protected in accordance with applicable laws.
All Job Posting Locations
Canada
Remote Type
HybridEEO Statement
We are committed to ensuring equal employment opportunities for all job applicants and employees.
Employment decisions are based upon job-related reasons regardless of an applicant's race, color, religion, sex, sexual orientation, gender identity, age, national origin, disability, marital status, genetic information, protected veteran status, or any other status protected by law.
Eaton believes in second chance employment. Qualified applicants with arrest or conviction history will be considered regardless of their arrest or conviction history, consistent with the Los Angeles County Fair Chance Ordinance, the California Fair Chance Act and other local laws.
You do not need to disclose your conviction history or participate in a background check until a conditional job offer is made to you. After making a conditional offer and running a background check, if Eaton is concerned about conviction that is directly related to the job, you will be given the chance to explain the circumstances surrounding the conviction, provide mitigating evidence, or challenge the accuracy of the background report.
Accommodations
To request a disability-related reasonable accommodation to assist you in your job search, application, or interview process, please call us at 1-800-836-6345 to discuss your specific need. Only accommodation requests will be accepted by this phone number.
More about this job
Responsibilities
You will develop and maintain commercial thermal and fluid simulation software, owning the application layer, solver interop, and UX. The role involves working across a broad stack including GUI, solver physics, geometry, and build engineering to support mature desktop applications.
Requirements
Candidates must have 7+ years of professional software development experience with strong proficiency in at least two of Python, C#, C, or C++. You must be comfortable working in large, legacy codebases and possess solid engineering fundamentals in data structures, performance analysis, and debugging.
Skills
- Python
- C++
- C#
- Software Architecture
- Numerical Computing
- CFD
- VTK
- wxPython
- Linux
- Windows
- Build Engineering
- Agentic Development Tooling
- 3D Visualization
- Performance Analysis
- Debugging
Visa sponsorship
Not detected in the job text
Categories
- Software
- Engineering
- Technology
- Science & Research
Keywords
- Software Architect
- CFD
- Thermal Simulation
- Fluid Simulation
- Windows Desktop
- C++
- Python
- C#
- wxPython
- VTK
- Cython
- Nanobind
- CAD
- Mesh Generation
- Linux
- Build Engineering
- Agentic Tooling
- Numerical Analysis
- Finite Volume
- Conjugate Heat Transfer
- Linear Solvers
- P/Invoke
- OpenGL
- Vue 3
- FastAPI
- Parasolid
- OpenCASCADE
- CUDA
- OpenCL
- OpenMP