Senior Software Engineer, C++
The company:
3DM Devices designs and manufactures 3D laser scanning systems used in a variety of industries for demanding applications in factory automation and process control. Our systems range from simple width measuring gages with a single number display, to multi scanner profiling systems operating at up to KHz rates in critical measurement applications. These systems operate 24 hours per day in production environments with a proven track record for minimum downtime, ease of use, reliable operation and cost effectiveness. 3DM has been in business for 30 years, for more information visit our web site at http://www.3dm.com.
The opportunity:
We design, develop, and manufacture the hardware, embedded software and Windows host applications for calibration, support and operation of these sensors. As part of a small dedicated multidisciplinary team, you will take ownership of some of the major software components that interface these hardware systems to end users via GUI applications or to other computer systems via real time data pipes for analysis, archiving and system control functions. As a senior member of the team you will participate in the architecting and design of new systems. You will also have the opportunity to mentor more junior software developers. We are a small and flexible team able to tailor the position to fit the skillset of the right candidate.
– B.Sc. in Computing Science, Software Engineering, or equivalent education.
– Strong knowledge of object-oriented design and development.
– Strong knowledge of C++, including templates and the STL.
– Excellent communications skills in English (spoken and written), including documentation.
Experience:
At least 7 years experience working in a product development environment working with:
– Windows application development using Microsoft Visual Studio (2019 or later preferred).
– Graphing, charting and handling of data sets
– Windows GUI application development using MFC.
– Git
Assets:
– Windows sockets, both TCP and UDP, for time-sensitive / “real-time” control and data streaming.
– Background in mathematics, geometry, or statistics.
– Memory management, latency management, synchronization and contention in multithreaded native applications.
– Experience with real time processing and hardware interfaces.
– 3d modeling, 3d graphics, projective geometry, camera calibration techniques.
– Machine vision and image processing application development.
Working for us:
We are located in Aldergrove in the Fraser Valley, where life is calmer, housing is more affordable, and true work-life balance is achievable. There is also a company subsidized vehicle operating daily between downtown Vancouver and 3DM via the Port Mann Bridge, as an option to driving.
This position will require in office time for at least three days a week. We provide a safe and healthy environment and employee safety is a priority.
We offer:
– Competitive salary plus medical and dental benefits plan.
– 37.5 hour work week.
– True flex time: bank up to +/- 37.5 hours to take or make up at a later date.
– Flexible schedule, subject to meeting the professional responsibilities of the job.
– 15 days starting vacation with an additional day per year worked.
– An office – not a cubicle.