Your Title: Software Engineer - C++/Rust Embedded Linux
Job Location: Westminster, Colorado
Our Business Segment: Trimble Field Systems
Are you a Software Engineer/Developer who wants to be at the heart of
analyzing, designing, and programming cutting-edge software enhancements
and new products in a collaborative environment?
About Trimble
Trimble is an exciting, entrepreneurial company with a history of
exceptional growth coupled with a disciplined and strategic focus on being the
best. While GPS is at our core, we have grown beyond this technology to
embrace other sophisticated positioning technologies and, in doing so; we
are changing the way the world works
Position Overview
Trimble Civil Field Solutions is looking to hire for a Software Engineering
position. This position will build applications used by machine operators in
civil construction projects. These applications build on top of the Trimble
Earthworks platform.
What You Will Do
Evaluate product descriptions and/or requirement documents to propose highly
reusable software designs at the module level subject to the design principles
of the software's target host platform.
Work with product managers, designers, and other engineering teams to
translate business requirements into robust and scalable software solutions.
Design, develop, and modify software applications, considering
functional and non-functional requirements and ensuring high quality and
maintainability.
Write efficient, maintainable, and reliable code using industry best
practices and current programming languages and technologies.
Debug and resolve technical issues across different layers of the application
stack.
Perform thorough testing of software components to identify and fix defects,
ensuring the software meets performance, reliability, and security standards.
Document software specifications, architecture, and design decisions.
Collaborate with cross-functional teams to define system requirements and
participate in discussions on necessary modifications to enhance software
functionality.
Stay up-to-date with industry trends, technologies, and best practices,
and share knowledge with the engineering team.
Mentor junior engineers, providing guidance, technical expertise, and
support to foster their professional growth.
What Skills and Experience You Should Bring
Education
Minimum of a bachelor's degree in a relevant field. A degree can generally
be substituted with relevant work experience and/or a certificate/training
program in addition to the guidelines listed below. Relevant fields of study
include but are not limited to:
Computer Science
Computer Engineering
Software Engineering
Information Technology
Work Experience
Five (5) years of relevant work experience
Relevant experience may include but is not limited to:
Progressive experience developing software utilizing one or more programming
languages (e.g., Java, Python, C++) and software development and
testing tools, frameworks, and methodologies (e.g., Visual Studio,
Eclipse, Sublime Text, Atom, Microsoft SQL Server, Oracle Database, Bootstrap,
Embedded Linux
Rust or C++
Network protocols - E.G TCP, HTTP, Websockets, etc.
Web Application incl. HTML, CSS, Javascript, etc.
Knowledge, Skills, and Abilities
Proficiency in programming languages and technologies (e.g., Java,
Python, C++,).
Strong understanding of software development principles, design patterns,
and best practices.
Solid problem-solving skills and the ability to troubleshoot complex software
issues.
Excellent communication skills, with the ability to convey technical
concepts to various stakeholders.
Demonstrated ability to work effectively in cross-functional teams and adapt
to a fast-paced, collaborative environment.
Ability to work independently, providing guidance to others when needed.
Ability to stay current with industry trends, technologies, and best
practices
Follow well-defined Design Patterns and practice SOLID principles.
Foster an innovative culture.