Lead Software Engineer

Posted July 07, 2023
Apply: Topcon


Topcon Electronics is one of the global market leaders in the development and production of operator consoles for mobile machinery. From our company headquarters in Geisenheim, Rheingau (near Wiesbaden/Frankfurt), we and a team of 150 employees develop, produce and distribute our operator consoles. Topcon Electronics stands for the highest quality standards and customer-oriented product functionality. Our company is distinguished by multiple certifications with respect to quality and environmental awareness as well as high standards in occupational safety. Since the end of 2014, Topcon Electronics has been part of the Topcon Positioning Group, the world's leading manufacturer of GNSS systems for construction, agricultural machinery and surveying. Topcon Positioning Group is headquartered in Livermore, California USA.

For our TOPCON Positioning Solutions BU - Germany or Italy we are looking for a

Lead Software Engineer (C++/Real Time Systems)

The position is Hybrid

we require that the employee visits the office in Geisenheim ( Germany) or Concordia Sulla Secchia (IT) at least 2 days per week, on average

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 be required occasionally (the schedule is defined based on the local office 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
  • Depending on the skills and individual preference working on tasks ranging from business logic development to low level system programming, for example:
    • 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


Requirements:

  • 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)


Nice to have:
  • 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
  • Basic understanding of HDL and FPGA programming
  • DSP programming experience (Blackfin, CEVA)
  • Automated unit testing
  • Static code analysis
  • cmake
  • Advanced С++, including С++ templates
  • Some experience with Linux development


Topcon is an equal opportunity employer. All applicants will be considered for employment without attention to race, color, religion, sex, sexual orientation, gender identity, national origin, veteran, or disability status.