The Senior Backend Software Engineer (C) role involves designing, developing, and optimizing high-performance backend systems in C, ensuring scalability, reliability, and adherence to best engineering practices.
Key Responsibilities
- Design, develop, and maintain robust and high-performance backend systems using the C programming language.
- Optimize existing code and system architecture to improve performance, reliability, and scalability.
- Ensure adherence to software engineering best practices, including code standards, architectural principles, and design patterns.
- Diagnose, debug, and resolve issues in production environments with a deep understanding of system internals.
- Take ownership of system reliability, including proactive monitoring and incident response.
- Mentor junior engineers, review code, and help establish strong engineering practices across the team.
- Develop unit and integration tests to ensure high-quality and resilient code.
- Continuously improve build, deployment, and testing automation pipelines to support rapid development and deployment cycles.
- Collaborate with cross-functional teams to define technical solutions and ensure alignment with product and business goals.
Skills & Experiences
- Bachelors or Masters Degree in Computer Science, Computer Engineering, or a related field.
- 4+ years of professional experience in software development, with a strong focus on backend systems using C
- Deep knowledge of C programming, including memory management, pointers, multithreading, and system-level programming
- Solid understanding of software engineering principles, including OOP (in C-compatible patterns), TDD, CI/CD, and Agile methodologies.
- Experience with Linux/Unix system programming, including sockets, IPC, and multithreaded applications.
- Familiarity with profiling, debugging, and performance tuning tools such as gdb, valgrind, strace, perf, etc.
- Understanding of low-level system internals including the kernel, memory layout, and CPU architecture.
- Experience with microservices or modular architectures is a plus.
- Exposure to RESTful API design and interaction with backend services via protocols like HTTP, gRPC, or custom RPC mechanisms.
- Experience with relational databases (PostgreSQL, MySQL) and/or key-value stores like Redis.
- Familiarity with build systems and tools like Make, CMake, autotools, or similar.
- Experience in DevOps practices, automation scripts, and containerization (Docker, Kubernetes) is a plus.
- Strong problem-solving skills and the ability to handle low-level debugging in production systems.
- Proven ability to write clean, maintainable code with comprehensive documentation and test coverage.
- Self-motivated, with a strong sense of ownership and accountability.
- Excellent written and verbal communication skills.
- Ability to manage multiple priorities in a dynamic and fast-paced startup environment.
- Start-up experience or entrepreneurial mindset is highly desirable.