Company Profile
Lennox (NYSE: LII) is an industry leader in energy-efficient climate-control solutions founded over a century ago on the principles of integrity and innovation. Dedicated to sustainability and creating comfortable, healthier environments for our residential and commercial customers while reducing their carbon footprint, we lead the field in innovation with our cooling, heating, indoor air quality, and refrigeration systems.
Job Description
- Responsible for designing and development of the embedded software, and reusable components, covering the complete development of the software to run in embeddded/Linux environment
- Responsible for unit testing of the developed SW within the provided development schedule
- Assure proper hardware/software requirement definitions of the project with internal & external customers.
- Familiar with industry standards for software development, test, and quality processes and tools.
Qualifications
- C, C++ in embedded Linux and Windows environments.
- Experienced in the design and development of embedded controls software.
- Excellent working knowledge in developing microcontroller-based systems and debugging techniques.
- Experience in designing software using any of the design tools based on UML
- Experience in using design patterns in real-time scenarios and Usage of compiler optimization techniques for memory and speed.
- Experience in unit testing & software development in embedded and Windows SDK, multithreading.
- Experience with embedded and serial communication protocols (I2C, RS-485, RS-232, CAN) and networking protocols (TCP, UDP)
- Usage of in-circuit emulators (ICE) with debuggers
- Good exposure to real-time systems and RTOS
- Experience in Google test framework is a major plus
- Should have executed projects and worked in the different phases of a complete life-cycle process.
- Strong knowledge of Software Engineering concepts, Quality processes, and tools. Familiar with Configuration Management, defect tracking, Requirements management concepts, and tools.
- Analyze the requirements using the requirement tool and provide traceability
- Experience in code coverage tools
- Experience in static analyzers like lint.
- Experience in Visual Studio debugging techniques, memory analysis, thread analysis, and stack analysis.
- Usage of profilers for speed and memory