Introduction: We are seeking a talented and highly motivated Software Engineer to join our dynamic engineering team. This role is ideal for someone with strong embedded systems expertise, a deep understanding of Linux, and experience in network protocols such as TCP/IP and IPv6. The ideal candidate will be proficient in C++ and have hands-on experience with Yocto for building embedded Linux systems. Experience with Android Framework is a plus.
Key Responsibilities:
Develop, design, and implement embedded software solutions for hardware platforms.
Work on Linux kernel and user-space applications, focusing on performance optimization, stability, and security.
Implement network protocols such as TCP/IP and IPv6, ensuring robust connectivity in embedded systems.
Utilize Yocto Project to build and customize embedded Linux distributions for target devices.
Collaborate with cross-functional teams (hardware, QA, and product) to ensure seamless integration and delivery of the software stack.
Debug, troubleshoot, and resolve issues related to embedded systems, networking, and Linux environments.
Write clean, efficient, and maintainable code following best practices.
Participate in code reviews and maintain high-quality software development standards.
Stay current with advancements in embedded systems, networking technologies, and Linux development.
Requirements:
Bachelor's or Master's degree in Computer Science, Computer Engineering, or a related field.
Proven experience (3+ years) in embedded software development.
Proficiency in C++ programming in embedded Linux environments.
Strong experience with Linux operating systems, kernel development, and device drivers.
Solid understanding of networking protocols (TCP/IP, UDP, IPv6) and hands-on experience in networking configuration and troubleshooting.
Experience with Yocto or other embedded Linux build systems.
Familiarity with Android framework and development for embedded Android systems (good to have).
Strong debugging and problem-solving skills in complex embedded systems environments.
Excellent communication and teamwork skills.
Ability to work independently with minimal supervision in a fast-paced development environment.
Preferred Skills:
Experience with wireless communication protocols (Wi-Fi, Bluetooth, etc.).
Knowledge of other programming languages (Python, Shell scripting, etc.).
Experience with version control systems like Git.
Familiarity with Continuous Integration/Continuous Deployment (CI/CD) pipelines.
Knowledge of security principles in embedded systems.
Key Skills:
Embedded Systems, Linux, C++, Networking Android, C++ developers