Embedded Linux System & Applications Developer
Hardware Team – Berlin, Germany
Embedded Linux System & Applications Developer (ELAD)
Envio is a technology service provider for building automation and agriculture. Our customers are some of the largest utilities, property portfolio managers, and public/government entities on Earth. As an ELAD we are looking for you to strengthen our system to avoid customization and manual work during installations.
We expect you to be able to design and develop tools to be included in our Gateway solution and to be utilized by our Project Implementation and Technical Operations Team. Additionally we look forward to your ability to assess and to add value to our BMS distributed applications and solutions.
We look forward to your ability to support the design and implementation of our product, including providing additional networking solutions, new system images and development of kernel modules.
We expect you to have previous experience with continuous integration and continuous delivery process. We look forward to you leveraging the freedom and agency we provide to make calculated high level decisions, all while ensuring the quality and efficiency of the product.
At envio we are:
Collaborative - We believe teams solve big problems together
Resourceful - Workable solutions exist for every problem
Resilient - Try a dozen things a hundred different ways if that is what it takes
Disruptors - We invent things people didn’t know they needed but can’t live without
Pioneers - We take on complex challenges using new tools
Each one of our values is a part of our everyday interactions.
Minimum Requirements Include:
- Bachelor of Science degree in Computer Science or Electrical Engineering required.
- Minimum 3 – 5 years of engineering and/or software programming experience required.
- In-depth Linux System development experience and understanding of Linux Operating System architecture and kernel module programming (3+ years)
- UNIX and IP sockets programming
- Experience in modifying and building Linux system images (Yocto, Buildroot, LFS, Debian, Ubuntu…)
- C/C++ proficient, Python upper intermediate know how
- Strong discipline with version control systems (git etc.)
- Design and implement Linux system customized distro to meet business requirements
- Participate in research, analysis and development of building management system (BMS) protocols as well as in support for product integration with implementation teams
- Develop applications code in Python , C, C++ for Building Management/Automation solutions on top of the most common BMS/BAS/Industrial protocols such as BACnet, Modbus, OPC, Niagara framework, KNX etc.
- Integrative part of infrastructure hardening and security and vulnerabilities audit solution automation development
- Develop Board Support Packages (BSPs), custom device drivers and applications.
- Perform initial board configuration on new hardware.
- Responsible for the research and application of new technologies in the operating system/kernel
- Integrative part of system development with Linux kernel customization, modules implementation and plug’n’play network
- Engage with the developer community
- Participate in new hardware design and close collaboration with PCB designers
- Interact with the engineering and product management teams to correct product defects and contribute to product improvement
- Research, assess and adapt to new technologies necessary for future enhancements of products
- Familiar with cross compilation, compilation frameworks (Make, CMake, QMake), remote debugging (gdb)
- Kernel source, patches and debugging
- Experience with continuous integration/continuous delivery tools (CircleCI, etc.)
- Experience of distributed high availability environments
- Knowledge of Docker
- In-depth Linux System Administration experience (4+ years experience);
- In-depth understanding of Linux Operating System architecture
- Scripting: Shell, Python and/or Perl, YAML, JSON
- Solid understanding and experience with networking fundamentals.
- Experience in documenting and articulating network topologies to broad audiences
- Knowledge of application transport and network infrastructure protocols (DNS, DHCP, IPAM, SSL/TLS, WINS, NTP, FTP, HTTP, HTTPS)
- Understanding of network traffic analysis for troubleshooting end to end performance and connectivity issues with tools such as Wireshark, tcpdump, and iperf
- Experience in assisting Senior leadership team to design technology, process landscape and develop an overall solution strategy
- Working knowledge of source control (preferably Git and GitHub)
- Experienced with Software Development processes including source control, bug tracking, and design documentation.
- Experience with IoT, Ethernet, LTE connectivity
- Experienced in multi-platform (x86 / arm) kernel and system development is preferred
- Experience working with hardware interfaces such as USB, UART, SPI, I2C
- Strong written and communication skills.