What you will do
This position within the Johnson Controls – BAS Software team focuses on developing new features and maintaining existing mid-market system software for products targeted at the US and European markets. The role involves collaborating with global teams (Asia and Europe Engineering) to design and implement robust, smart and flexible Building Automation Systems and IoT solutions for the smart buildings. Key responsibilities include application development, using Sedona Framework, BACnet stack, HTML technologies, and backend services on an Embedded Linux environment. The candidate should be well versed in the complete software delivery lifecycle, with an emphasis on system design, implementing those solutions, and delivering on-time.
How you will do it
- Provide technical leadership to the internal team of engineers
- Develop software based on the functional and technical design specifications
- Participate in design reviews and code inspections.
- Contribute to technical discussions, proposing solutions and alternatives.
- Test new application features to ensure logic, syntax, and program results are accurate.
- Contribute to testing and support activities to identifying and resolving system issues.
- Document and archive program releases as per the Software Development Process.
- Demonstrate a can-do and proactive attitude and take initiative to complete assigned tasks on time
- Apply analytical thinking, robust design methodologies, and engineering principles to develop solutions.
- Develop Linux-based applications, focusing on application-level programming using C or C++ to meet business requirements
- Work independently while collaborating with software developers, systems engineers, system test teams, Product Management, Factory teams, and Field support teams to create system-wide solutions.
- Demonstrate individual technical contributions and lead projects from requirements gathering to deployment.
- Possess knowledge of the HVAC and building automation domain, BACnet stack implementation, testing, certification, web development HTML, and backend services and with prior industrial experience in areas related to above disciplines and domain.
- Contribute to process management following JCI standards and guidelines.
- Assist with project scheduling and effort estimation
- Set high performance standards through quality design, coding practices, and dedication to delivering world-class software
- Share knowledge with team and demonstrate team spirit and collaboration
- Understand the Product Life Cycle and stages of product development.
- Good verbal and written communication skills in English Language.
What we look for
- Qualification – BE/BTech/ME/MTech in ECE, E&TC, or CSE.
- 9-12 years of experience in software application development, primarily on Linux
- Proficient in system programming, development of service/driver type of applications using C/C++
- Strong knowledge of BACnet protocol implementation and testing, including BACnet objects, profiles, APIs, services, persistence, and support for Pre-BTL/BTL compliance.
- Experienced in BACnet MSTP and BACnet IP communications, MODBUS, and RS-485
- Good knowledge of Building Automation Systems & Control Equipment
- Hands-on with debugging tools such as BACnet adaptors, Wireshark, JTAG and GDB
- Familiarity with BACnet pre-compliance testing and certification processes for proprietary products
- Strong knowledge of Linux process management, memory management, IPC, shared memory, init systems (SystemV/SystemD), and multithreading
- Understanding of Linux services such as httpd, sshd, ntpd, OpenVPN, FTP server, MQTT, and Samba
- Knowledge of full-stack web development, including HTML5, PHP, web servers, and SQLite
- Familiar with Object-Oriented Programming (OOP) using C++, Java, or C# for component-based development
- Skilled in implementing secure communication and authentication for application security and data handling
- Working knowledge of build tools like Makefile and CMake, and source control systems like Git.
- Experience with unit testing and functional testing
- Understanding of Agile (Scrum) methodology
- Ability to work effectively in cross-functional teams across different geographical locations.
Preferred/Good to have skills
- Basic understanding of Sedona framework, including Sedona programming and kit development.
- Knowledge of the Sedona VM runtime environment for executing applications and services.
- Experience in performing static code analysis and resolving security issues and vulnerabilities.
- Familiarity with Embedded Linux build tools such as Buildroot, OpenWRT, or Yocto.
- Knowledge of shell scripting and Python programming.
- Basic understanding of Docker containers and Jenkins build servers.
Johnson Controls is an equal employment opportunity and affirmative action employer and all qualified applicants will receive consideration for employment without regard to race, color, religion, sex, national origin, age, protected veteran status, status as a qualified individual with a disability, or any other characteristic protected by law. For more information, please view EEO is the Law. If you are an individual with a disability and you require an accommodation during the application process, please visit www.johnsoncontrols.com/tomorrowneedsyou