LEAD SOFTWARE ENGINEER at Topcon Agriculture
For our TOPCON Positioning Solutions BU – Germany we are looking for a
Lead Software Engineer (C++/Real Time Systems)
Functional duties:
Functional duties:
policy and agreement with the technical team leader)
policy and agreement with the technical team leader)
Requirements:
refactoring, and static and runtime code checking.
Lead Software Engineer (C++/Real Time Systems)
Functional duties:
Functional duties:
- Hybrid work in an international (Germany, Italy, Russia, USA) team of developers on the firmware based on RTEMS RTOS intended to geodetical-grade GNSS receivers with a rich functionality.
- Working during normal CET working hours
- Attending physical office will
policy and agreement with the technical team leader)
- Requirement analysis,designing solutions, effort estimation, actual implementation
- Program architecture development, support of existing implementation and adding new functionality
- Work is possible either on Linux or Windows development machine
- System and application development for Sparc LEON architecture using RTEMS 5 and targeting proprietary ASIC with multiple cores
- Extending programmable API intended for customers and external software developers
- Collaboration with teams of our Linux system developers, DSP FreeRTOS developers, microcontrollers firmware developers on delivering functionality
- Supporting settings storage subsystem
- Supporting networking functionality
- Adding functionality to u-boot bootloader including device initialization
- Working on firmware update feature in u-boot
- Support of multicore execution
- Implementing reliable recovery bootloader to put into ASIC fuses
- Support of drivers for NAND, SD, CAN, Ethernet, USB controllers
- Work with HW teams on testing procedures for various HW subsystems
- Development of data and message exchange library between LEON, ARM and CEVA cores (OpenAMP-based).
- Development application-specific message exchange protocols (IMU, digital radio and others)
- Development of internal messaging APIs to communicate with peripheral devices via SPI, i2c buses (like IMU).
- Diagnosis of HW issues in cooperation with our ASIC developers and other HW developers
- Working on various runtime defects (work with stack traces, hardware breakpoints and hardware debuggers)
- Performance optimization
- Providing help for engineers working on implementing the mathematical algorithms in code
- Experience working in a team in a shared code ownership environment, responsibility and wide knowledge of the programming
- Long term commitment to the work
- University degree Software, Electrical, Computer Engineering ore related
- Good English or good Russian. Based on the location: basic German or basic Italian.
- Experience in C++ development from 5 years.
- Experience with basic development tools and version control (git + pull requests), issue-tracking, continuous integration, continuous delivery, refactoring, and static and runtime code checking.
- Ability to understand existing program architecture and existing source code
- Ability to extend the extend the existing code
- Experience with bare-metal and/or RTOS (RTEMS, FreeRTOS) development
- Ability to read digital schematics
- Experience working with oscilloscope and hardware debuggers (JTAG)
- Understanding GNSS
- Experience with microcontrollers and/or FPGA programming
- Interrupt-driven programming, understanding multitasking in microcontrollers and in RTOS, understanding how cashes work
- Understanding basic program architecture principles (coupling vs cohesion, composition, inheritance), OOP principles (SOLID), design patterns
- Experience with code optimization (performance, memory consumption)
- Experience troubleshooting run-time issues in embedded systems
- Experience developing programming APIs and documenting them.
- Development for Sparc architecture
- Experience with RTEMS
- Experience with RTC programming, working with SPI, i2c, UART, CAN
- Experience with OpenAMP, mailbox
- Knowledge of networking protocols like UDP, TCP/IP, FTP
- Experience with data transmission protocols
- Знакомство с HDL, опыт программирования FPGA
- Знакомство с программированием DSP (Blackfin, CEVA)
- Automated unit testing
- Static code analysis cmake
- Advanced С++, including С++ templates
- Some experience with Linux development
- Hybrid work in an international (Germany, Italy, Russia, USA) team of developers on the firmware based on RTEMS RTOS intended to geodetical-grade GNSS receivers with a rich functionality.
- Working during normal CET working hours
- Attending physical office will
policy and agreement with the technical team leader)
- Requirement analysis,designing solutions, effort estimation, actual implementation
- Program architecture development, support of existing implementation and adding new functionality
- Work is possible either on Linux or Windows development machine
Requirements:
- Experience working in a team in a shared code ownership environment, responsibility
- Long term commitment to the work
- University degree Software, Electrical, Computer Engineering ore related
- Good English or good Russian. Based on the location: basic German or basic Italian.
- Experience in C++ development from 5 years.
- Experience with basic development tools and version control (git + pull
refactoring, and static and runtime code checking.
- Ability to understand existing program architecture and existing source
- Ability to extend the extend the existing code
- Experience with bare-metal and/or RTOS (RTEMS, FreeRTOS) development
- Ability to read digital schematics
- Experience working with oscilloscope and hardware debuggers (JTAG)
To apply for this job please visit join.com.