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**: BSP Emb. SW Engineer - Monterrey
**Primary Location**: Mexico (MX) - Nuevo León JD Shared Svcs-Monterrey
**Function**: Engineering (CA)
**Main Responsibilites**:
- This position will be working at the Enterprise Technology Engineering Center, assigned to a software design team.
- This position will imply the design, development, and support of proprietary embedded Linux distribution that enables High end computing equipment to effectively perform in robust on/off road vehicles and harsh environments.
- This position will follow Agile methodology with a Scrum framework for software development.
- With proper guidance, this person should be able to setup an embedded Linux environment from scratch, using build systems (E.g.: Yocto) to create custom Linux distros; and debug the system which may interface with hardware using protocols including I2C, SPI, GPIO, etc.
- This person will do occasional business traveling during the year to additional USA/Mexico facilities.
- This person will be collaborating in projects with cross functional teams.
- This person is expected to have proper and proactive written and verbal (English) communication skills with peers of diverse cultural and experience backgrounds.
**What Skills You Need**:
- Versed in C/C++ programming language.
- Understanding of firmware (Embedded Software) development.
- Understanding of microcontrollers or other processors such as ARMs or DSPs or PSoCs.
- Knowledge of embedded systems.
- Knowledge of microcontroller peripherals such as I2C, UART, SPI, PWM outputs, boot loaders, A/D converters, etc.
- Knowledge of SW compilation process.
- Basic knowledge of control versioning (E.g.: Git).
- Basic knowledge with debugging tools (E.g.: Source level debuggers, oscilloscopes, logic analyzers, multi-meters, etc.).
- Basic Knowledge with communication protocols (E.g.: SPI, I2C).
**What Makes You Stand Out**:
- Knowledge of CI/CD.
- Skill and knowledge of firmware (Embedded Software) development.
- Knowledge of Linux Kernel Internals.
- Knowledge of embedded Linux build systems such as Yocto and writing BitBake Recipes.
- Knowledge of Python scripting language.
- Knowledge of low-level hardware configuration on microcontrollers.
- Knowledge/Experience with Agile Framework.
- Knowledge of additional communication protocols (e.g. CAN J1939, ISO11783, TCP/IP, etc.).
- Understanding of operation and use of compilers, linkers and locators.
- Understanding of electronics schematics and data sheets.
- Understanding of algorithms and data structures.
**Education**:
- B.S. Mechatronics Engineering, Electrical/Electronic Engineering, Digital Systems, and Robotics Engineering or similar.