Job Information

John Deere Software Engineer in Garza Garcia, Montenegro

There are 7 billion people on this planet. And by 2050, there will be 2 billion more... many moving into urban centers at an unprecedented rate. Making sure there is enough food, fiber and infrastructure for our rapidly growing world is what we’re all about at John Deere. And it’s why we’re investing in our people and our technology like never before in our 175-year history. Here the world’s brightest minds are tackling the world’s biggest challenges. If you believe one person can make the world a better place, we’ll put you to work. RIGHT NOW.

Title: Software Engineer

Primary Location: México (MX)

  • [[stateProvince]]

  • [[city]]

Function: Product Engineering

John Deere is a foremost leader in the ag equipment business, and we continue to put a solid stamp on other industries. For over 150 years, the company’s portfolio of groundbreaking products has grown to include industries related to and outside of agriculture, including Turf, Construction and Forestry and Wind Technologies. The image of John Deere is no longer that of a signature green tractor meandering across a field; it’s been replaced with an image of acceleration, swift progress, and innovative leaping toward the company’s 200th year. The product line alone serves as proof with advances in machine performance, equipment automation, fleet management, and John Deere’s ongoing investment in emerging markets.

Major purpose:

Plans, coordinates, performs product design, testing and/or analysis work for a complete project of moderate scope or for a significant portion or a sub-system of a major and diverse project. Operates in a team environment, providing input to design solutions and participating in design reviews. May assign, coordinate and review portions of the work to support personnel. Decisions are made within established guidelines and may be reviewed by supervisors.

Main Responsibilities:

  • Create and update Windows DLLs that support communication/reprogramming of Embedded Controllers.

  • Cross compile these DLLs for Linux under WINE/gnu OVA provided by another team.

  • Maintain CMake/Connan/Artifactory of developed Software.

  • Debug issues with DLLs on both Linux and Windows platform.

  • Mentor and teach others in the team to build technical capabilities and good software engineering practices.

  • Work on understanding requirements, apply system development methodology to identify, analyze, design, build, configure, test, and deploy highly integrated complex solutions.

  • Perform requirements capture, analysis, design, programming, debugging, hardware integration and verification.

  • This position requires complex architectural development, detailed design / analysis, coding, complex testing / troubleshooting, and advanced algorithm development for of desktop applications.

  • This position requires technical judgment, independent thinking, experience and development approaches to solutions.

  • This person must be customer focused and capable of multitasking between several different tasks and customers daily.

  • This person must be capable of holding technical conversations in English with stakeholders and team members daily.

What Skills You Need:

  • 2-3 years of experience designing and developing Embedded Software using C++.

  • 2-3 years of experience developing tests and performing desktop or other C++ Embedded Software testing.

  • 2-3 years of experience on Object Oriented Programming and design patterns.

  • Strong knowledge on Data Structures and Algorithms.

  • Good understanding of Windows and Linux Environments.

  • Operation and use of GNU compilers, linkers, and locators.

  • Experience with CMake, Artifactory and package management such as Conan and NPM.

  • CAN protocol knowledge.

  • Strong knowledge on version control systems such as GIT.

  • Strong knowledge of scripting languages such as Python.

  • Real-Time Operating System concepts, task schedulers, and application development.

  • Microcontroller systems (e.g. boot loaders, A/D converters, watchdog timers, interrupt and trap functions)

  • Microcontroller operation and memory organization.

  • Development and debugging tools (e.g. source level debuggers, oscilloscopes, logic analyzers, multi-meters)

  • Experience with Agile Methodology.

  • Good written and verbal communication skills (English)

  • Effective communication skills in English for highly technical conversations.

What Makes You Stand Out:

  • Knowledge on C# Software Development.

  • Knowledge of J1939 CAN Protocol.

  • Knowledge of UDS Protocol.

  • Knowledge on software architecture.

  • Experience on desktop or other software tools to support embedded controls development.

  • Experience on environments for automated software builds and testing such as Jenkins.

  • Strong knowledge on Agile methodologies or certified.

Education (or equivalent experience):

Minimum B.S. degree in any of the following disciplines: Electrical Engineering, Mechatronics, Digital Systems and Robotics, Computer Science or Advanced Engineering Degree.

Minimum B.S. degree in any of the following disciplines: Electrical Engineering, Mechatronics, Digital Systems and Robotics, Computer Science or Advanced Engineering Degree.

At John Deere, you are empowered to create a career that will take you to where you want to go. Here, you'll enjoy the freedom to explore new projects, the support to think outside the box and the advanced tools and technology that foster innovation and achievement.

John Deere--a proven business leader-- watch your potential grow.

This position will be posted for a minimum of 7 business days and unposted when a qualified pool of candidates is achieved.

Candidates must have the necessary work permits to work in the country.