Software Architect

Location: Port Moody, British Columbia, CA, V3H 0H6
Req ID: 25065
Onsite or Remote: Partial Remote Position

Komatsu is an indispensable partner to the construction, mining, forestry, forklift, and industrial machinery markets, maximizing value for customers through innovative solutions. With a diverse line of products supported by our advanced IoT technologies, regional distribution channels, and a global service network, we tap into the power of data and technology to enhance safety and productivity while optimizing performance. Komatsu supports a myriad of markets, including housing, infrastructure, water, pipeline, minerals, automobile, aerospace, electronics and medical, through its many brands and subsidiaries, including Joy, P&H, Montabert, Modular Mining Systems, Hensley Industries, NTC, and Gigaphoton.

The Company

 

Modular Mining is the global leader in mine management technology and a wholly-owned subsidiary of Komatsu Ltd. Our innovative technology powers mine operations in every corner of the globe.  The products we cultivate, the solutions we engineer, and the services we deliver set us apart in the Mining Technology industry.  We are more than a company; we are a community of passionate, creative professionals striving toward a shared vision: a connected society through sustainable mining.

 

With a presence stretching from Johannesburg to Vancouver, Sydney to Lima, you are part of a global brand that supports creativity, fosters innovation, and encourages you to think big, share ideas, and be yourself.

 

What are the benefits of being a part of Modular Mining?

 

We believe strongly in a healthy work/life balance, and we love to brag about all the great things are members enjoy; like comprehensive health and benefit packages, tuition reimbursement, RRSP contributions with company match, flexible scheduling options and, of course, an excellent vacation policy. We are a global organization with a reputation for having premier people building premier products. We offer competitive compensation packages and a culture that thrives off creativity, collaboration, and teamwork.

 

Mine Smarter.

 

Job Purpose

 

The Software Architect works with all aspects of the Software development lifecycle, in the scope of one or a few applications/solutions, focusing on good design practices, increased code quality, testability, deployability, CI/CD integration, adherence to business functional and nonfunctional requirements, team efficiency, and process improvements, providing mentoring and coaching to software engineers on these subject matters, as well as synchronizing efforts with other teams and projects.

Job Duties and Responsibilities

 

  • Proactively provide feedback and adherence to plans/goals of other projects or teams.
  • Collaborate with project managers and/or scrum masters for agile and scaled agile process adoption and improvement.
  • Build relationships with internal customers and partners to understand their needs, priorities, roadmap, and definition of success.
  • Pursue self-awareness and technical knowledge about other internal products/projects feature sets, limitations, pain points, design decisions, and roadmaps.
  • Work with the development team to translate the software architecture into design, when needed actively participate in the development process
  • Ensure that solution exhibits high levels of performance, security, scalability, maintainability, appropriate reusability and reliability upon deployment
  • Define all aspects of development from appropriate technology and workflow to coding standards.
  • Lead technical designs; provide oversight for design implementations and codebase; ensure industry standards and best practices are applied in technical designs and code development.
  • Drive the technical evaluation of technologies and vendor solutions including industry trends and best practices.
  • Develop proof-of-concepts, prototypes, and frameworks for new systems and architectures that enable detailed technical planning for implementation teams. 
  • Introduce new tools and processes to improve development efficiency.
  • Make major architectural decisions in a timely manner, balancing comprehensive research and pragmatism.
  • Actively collaborate with Quality Assurance team to improve testability and apply good practices for efficiency and "shift left" testing.
  • Actively collaborate with Configuration Management to establish and maintain consistency of the solution attributes.
  • Provide technical guidance and coaching to developers and engineers.
  • Oversee progress of development team to ensure consistency with initial design, from concept to launch.
  • Evaluate existing software solutions to identify areas for improvement.
  • Own architectural roadmaps for supported teams; actively contribute to the product roadmap in collaboration with program leadership.
  • Help Design and maintain testing strategies with Quality Assurance.

Required Skills

 

  • Bachelor's Degree Computer Science or equivalent years of proven experience in the area, most of them in a senior Software Development position.  
  • Proven experience coding in two (2) or more languages, preferably Java, Kotlin, C/C++, C#
  • Excellent design practices and coding standards.
  • Proven experience with source control and branching strategies.
  • Software Testing concepts, frameworks, and best practices.
  • Configuration Management concepts, challenges and best practices.  
  • Strong analytical, debugging, problem-solving, and root-cause analysis skills.
  • Excellent verbal and written communication as well as strong presentation and collaboration skills.
  • Good understanding about scalable and distributed architectures, its challenges and best practices.
  • Knowledge about the opensource Software industry and its usage in high-scale architectures.

Desired Skills

 

  • Knowledge in designing architectures/solutions for constrained resources environments.
  • Knowledge in IoT applications, data pipelines, and fit for purpose data storage solutions.

 

Copyright MTS