The Software Designer is responsible for designing, developing, implementing, and maintaining new and existing software for the company's products. This position will provide customer support solutions beyond the scope of support software personnel for problems relating to company's software products and services. In addition, the Software Designer will train support personnel in resolving new or unique problems as it arise.
Core Duties/Responsibilities:
- Analyze, design, implement, and write software programs for company products using current technology.
- Test and validate software to ensure it meets specifications.
- Perform code reviews.
- Write test plans for software.
- Document flow charts and instructions for software.
- Attend development meetings as required.
- Plan and manage development tasks.
- Estimate time and create schedules for projects.
- Test programs with new hardware and software configurations, evaluating product validity.
- Troubleshoot and evaluate claims of malfunction in the field.
- Design, code, and implement new software features for feature enhancement projects.
- Provide software maintenance, including investigation, repair, and debugging.
- Lead and guide other programmers in maintenance and new feature development.
- Perform source code backups using source control.
- Ensure the safe use and maintenance of confidential information, software application programs, product source code, and all client information.
- Adhere to quality management requirements.
- Provide technical expertise and functional advice to the management team on all aspects of engineering related to existing or new projects.
- Contribute information and ideas to management.
- Support internal departments within the engineering function as requested.
- Develop software with cybersecurity best practices in mind to protect against vulnerabilities and ensure data integrity.
- Perform other duties as assigned.
Skill/Knowledge & Other Requirements:
- Requires a Bachelor's Degree in Engineering or Computer Science.
- Must have 3-5 years progressive experience in a similar role.
- Must have a clear understanding of the Software Development Life Cycle (SDLC) process.
- Must be eager to continuously upgrade with new programming languages, software methodologies and techniques.
- Experience in:
- C/C++, C#, Python, Node JS.
- Windows and Linux scripting.
- Web applications and servers.
- Operating system environments: MS Windows (including Visual Windows development tools), Linux, QNX.
- MS Azure DevOps.
- Knowledge of the Agile methodology.
- Must be proficient in creating effective technical and business solutions using software tools.
- Strong in computational, diagnostic, and analytical abilities are required to design, code and test programs.
- Must be able to document test procedures, understand programming and system set-up manuals, programming style guides, and software reference manuals.
- Excellent analytical skills are required to estimate development time, analyze data, research, diagnose and solve problems.
- Must have working knowledge of applicable standards to the job.
- Self-confidence and ability to manage own activities together with initiative and drive to solicit and complete tasks successfully.
- Ability to understand customer's needs and adapting them to new products or new features to existing products.
- Sound organizational, problem solving, planning, prioritization, and execution skills.
- Excellent interpersonal skills to communicate effectively and clearly with team, management and customers.
Other Skills/Knowledge:
- Working knowledge of nuclear instrumentation and applications.
- SAP.
- Knowledge of French and German.
Mirion Technologies (Canberra CA) Ltd. is in compliant with the Accessibility for Ontarians with Disabilities Act (AODA) and the Ontario Human Rights Code. We are an equal opportunity employer that is committed in providing accommodations for applicants with disabilities upon request at any stage of the recruitment process. Please advise the Human Resources Department of any accommodations you may need during the recruitment process.