Software Engineer - Golang

  • Full-time

Job Description

  • Develop high performance and highly scalable message-driven applications for Linux
  • Write testable and highly reliable code
  • As part of a highly efficient delivery team, participating in planning and design activities

Qualifications

Key Skills

  • Experience with development of message-driven applications
  • Experience with one or more messaging protocols and message brokers - MQTT, AMQP, NATS, NCQ, Kafka, etc,
  • Understanding of performance bottlenecks, i.e CPU caches, Linux caches and optimizations
  • Experience with writing C/C++ applications
  • Understanding of REST and gRPC APIs.

Bonus skillset - System Programming

  • Understanding of systemd, d-bus, socket activation
  • Understanding of Linux Networking stack, i.e. Netlink interface, systemd-networkd, etc.
  • Understanding of different encryption, digital signature, authentication and authorization technologies
  • Understanding of application packaging - deb, rpm, etc
  • Previous C/C++ programming experience
  • Understanding of Linux boot process and UEFI
  • Understanding of TPM and root of trust concept

Bonus skillset - Industrial Protocols

  • Understanding some of the industrial protocols (i.e. Modbus, Ethernet/IP, CANbus, BACnet, etc.)
  • Understanding of real-time applications

Bonus skillset - Virtualization

  • Understanding virtualization and container technologies - livirt, lxc/lxd, Docker, kvm, etc.
  • Experience with license management systems

Bonus skills - Other

  • Experience with python
  • Experience with ML