Job Title: C Developer
Experience Level: Mid-level (8+)
Job Summary
In this role, you will be responsible for designing, building, and maintaining efficient, reusable, and reliable C code. You will work closely with other software developers to create high-performance applications. The ideal candidate has a deep understanding of memory management, low-level system architecture, and real-time computing.
Key Responsibilities
1. Software Development: Design, implement, and maintain high-quality, high-performance C code
2. System Optimization: Identify bottlenecks and bugs, and devise solutions to mitigate and address these issues to ensure maximum performance and low latency.
3. Memory Management: Strictly manage memory allocation and deallocation to prevent leaks and ensure system stability.
4. Debugging & Testing: Write unit tests and utilize debugging tools to troubleshoot complex system-level issues.
5. Code Review: Participate in peer code reviews to maintain code quality, readability, and security standards.
6. Collaboration: Work alongside cross-functional teams, including QA and product management, to define and implement new features.
1. Core Language: Strong proficiency in C, with a deep understanding of language fundamentals, pointers, data structures, and algorithms.
2. System Architecture: Solid grasp of low-level systems, hardware architecture, and operating system internals (Linux/Unix preferred).
3. Memory Management: Expert-level understanding of dynamic memory management, threading, and concurrency.
4. Tools: Experience with build tools (Make, CMake) and version control systems (Git).
5. Debugging: Proficiency with debugging and profiling tools (e.g., GDB, Valgrind, perf).
6. Problem Solving: Strong analytical and problem-solving skills with a keen attention to detail.
7. Familiarity with C++ and object-oriented programming.
8. Familiarity with ISAM DB (Modisam scripts) and ISA Dialogue Manager.