About the Role
Dear Aspirant!
We empower our people to stay resilient and relevant in a constantly changing world. We’re looking for people who are always searching for creative ways to grow and learn. People who want to make a real impact, now and in the future. Does that sound like you? Then it seems like you’d make a great addition to our vibrant international team.
What You'll Do
- Design, develop, and maintain high-performance software components on Linux platforms.
- Architect scalable and maintainable software solutions with a focus on reliability, performance, and modularity.
- Implement and optimize RUST 1.x and C++ modules using modern C++ (C++11/14/17/20), STL, and advanced language features.
- Apply object-oriented design principles to create robust, reusable, and testable software components.
- Develop and debug multi-threaded and concurrent applications using POSIX threads, synchronization primitives, and inter-process communication (IPC) mechanisms.
- Work with Linux system APIs for process management, memory management, file I/O, and networking.
- Analyze and troubleshoot complex system-level issues, including performance bottlenecks, memory leaks, and race conditions.
- Participate in code reviews, ensuring adherence to best practices and high code quality.
- Collaborate with cross-functional teams (hardware, QA, DevOps) to deliver integrated solutions.
- Mentor and guide junior engineers, fostering technical growth and knowledge sharing.
- Contribute to continuous improvement of development processes, tools, and methodologies.
Who You Are
- Bachelor’s degree in computer science, Electrical Engineering, or related field.
- 5 to 8 years of professional experience in software development, with a strong focus on C++, RUST and Linux system programming.
- Expertise in RUST and C++ (including OOP, STL, smart pointers, RAII, and modern language features).
- Strong Linux system programming skills: experience with system calls, process/thread management, memory management, and IPC.
- Solid understanding of OS concepts: scheduling, virtual memory, synchronization, and resource management.
- Experience with software design patterns and architectural best practices.
- Proficient in debugging and profiling tools (e.g., GDB, Valgrind, perf, strace).
- Excellent analytical and problem-solving skills.
- Strong communication skills and ability to work both independently and collaboratively.
Bonus Points
- Experience with Linux kernel internals or device driver development.
- Familiarity with additional RTOS environments (e.g., VxWorks, QNX, FreeRTOS).
- Knowledge of networking protocols (TCP/IP, UDP, sockets) and embedded communication standards.
- Exposure to Agile/Scrum methodologies and CI/CD pipelines.
- Experience with cross-compilation, build systems (CMake), and package management (Conan, Yocto, etc.).
Compensation
This role is based in Bangalore, where you’ll get the chance to work with teams impacting entire cities, countries - and the shape of things to come.
Benefits
We value your unique identity and perspective and are fully committed to providing equitable opportunities and building a workplace that reflects the diversity of society. Come bring your authentic self and create a better tomorrow with us.
Requirements
C++ expertise
You should have strong expertise in C++ including modern language features.
Rust programming
Proficiency in Rust is essential for this role.
Linux system programming
Experience with Linux system programming is required.
Object-oriented design
You must apply object-oriented design principles effectively.
Debugging skills
Proficiency in debugging and profiling tools is necessary.
Nice to Have
Experience with Linux kernel internals or device driver development is a plus.
Familiarity with additional RTOS environments is beneficial.
Knowledge of networking protocols and embedded communication standards is advantageous.
Exposure to Agile/Scrum methodologies is preferred.
Benefits
Equitable opportunities
We are committed to providing equitable opportunities.
Diversity commitment
We encourage applications that reflect the diversity of the communities we work in.