Description
The Company
Envio is an award- winning startup pioneering technologies that transform how we monitor, manage, operate, and interact with commercial real estate. We are more than 50 engineers, data scientists, product managers from over 27 different nationalities, working together to improve people’s lives and create a more sustainable future through innovation.
The Role
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 the development of kernel modules.
Responsibilities
- 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
Requirements
- 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.)
Desired skills
- 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.