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