Senior Software Engineer

Oakville, Ontario
Job Type Permanent
Job ID 16844
Salary $80,000.00
Job Description

We are currently hiring a Senior Software Engineer for Oakville, Ontario.

Purpose of Role

The Senior Software Engineer is an integral part of the Professional Services team and acts as the technical lead for various projects creating solutions that meet customer needs relating to architecture, design, implementation, testing and maintenance.  The incumbent is responsible for designing and implementing fully functioning, debugged code with required documentation that meets specification requirements. 

This position reports to the Engineering Manager

Main responsibilities

  • Participate in preparation of architectural changes, solution design and technical specifications
  • Develop code, install, test, debug and document applications using appropriate processes, tools and standards
  • Create and review technical design documents related to project and understand how the design will be used in the code development process
  • Provide application development, support and maintain the standards from both a coding and visual perspective to ensure consistency
  • Perform troubleshooting activities, program modifications and enhancements to fix bugs/defects and add features as required
  • Maintain and modify existing applications; utilize current technology/tools to enhance the effectiveness of deliverables and service
  • Provide estimates on the effort/duration for activities/tasks required to perform design and coding improving accuracy over time
  • Design and build product deliverables according to specifications, escalates technical design or specification issues to Director, Professional Services and work within a given timeframe to complete coding
  • Troubleshoot functional and performance issues in development and test environments
  • Perform maintenance programming for existing versions
  • Develop well documented and robust code to ensure efficient maintenance and code reuse
  • Provide production/acceptance support by offering resolutions to problems
  • Ensure the functionality, performance, scalability, reliability, realistic implementation schedules and system architecture for each project Review code changes that other developers made on parts of a product source code
  • Communicate risks and issues to the Director in a timely manner
  • Assist with escalated customer support investigations
  • Anticipate obstacles and execute proactive approaches to issues
  • Ensure work progress to schedule and keep Director informed of project progress
  • Submit bi-weekly written status reports, which outline: the overall progress summary for deliverables, deliverables achieved, deliverables remaining, progress and expected delivery date for each and issues and concerns affecting specific deliverables and the engagement schedule
  • Provide expertise in developing architecture and standards for applications as well as support and development for existing applications
  • Ensure that all software versions and associated documentation are stored/archived for future reference
  • Develop a detailed knowledge of application systems and create/update documentation as required for future system development – this will include but not be limited to: functional specifications, system architecture design, database design, and complex modules
  • Provide a report on gaps and recommendations for improvement of applications
  • Provide recommendations for improvements in the overall development process, productivity, effectiveness and operational efficiency of the team
  • Participate in walkthrough reviews of specifications, code and test plans
  • Develop, troubleshoot, enhance and document components developed by self and others as per the requirements and detailed design
  • Drive technical platform evolution and improvements
  • Ensure all project artifacts (e.g. specifications, designs, test descriptions, implementations, tests, records, reports) are stored appropriately and are complete and up to date
  • Stay current with trends, techniques, technology relevant to MCI’s business

Experience/ Background

  • Bachelor’s degree in computer science, computer programming or related curriculum.
  • Good problem solver through design and creation of code
  • Team player, good verbal communication
  • Proven ability to work both independently and part of a team
  • Ability to quickly adapt to new technologies and environments and to work with change and ambiguity

Software Development:

- Java (at least 5 years)

- Java JNI experience is a plus

- Angular 9 preferably (must have 3 years of Angular 2+, angular.js does not count)

- Redux, NGRX, RXJS

- Experience in unit / regression testing (Jasmine, Karma, protractor)

- NoSQL experience is a plus

- Electron experience is a plus

- NodeJS experience is a plus

Operating Systems:

- Windows 10

- Windows Server

- Linux Server (RHEL, CentOS, or Oracle Linux)


- Oracle or SQLServer


- any Oracle or VMware virtualization

Web & Application Servers:

- JBoss/Wildfly

- Apache Tomcat

Software Engineering methodology:

- Agile/Scrum

Additional working requirements

  • Must be successful in qualifying for and maintaining any security clearance requirements

If you have the skills and experience that we are looking for to be successful in this role please submit your resume to or fax to 905-231-3860

We are an equal opportunity employer



Apply Online