Staff Software Engineer (C/C++)
Hyderabad (Flexible)
Experience - 7+ Years
Who You'll Work With
This is an individual contributor role where you will work with best-in-class product engineering team members and Architects, reporting to a Senior Engineering Manager.
What Makes You a Qualified Candidate
- 8 to 10 years of working experience as a Software Developer.
- Experience with large-scale, enterprise grade software development in C/C++ programming language, including:
- Low level TCP/IP protocol
- Inter-process and multi-threaded communications
- Debugging multi-threaded applications
- Strong data structure, multi-threading and algorithms fundamentals.
- Multi-cloud and On Premises platforms exposure.
- Very good understanding of common public cloud technologies - storage, communication, and security.
- Knowledge of SQL and understanding of relational databases, including Referential Integrity, Columnar vs. Row Storage, Triggers, and Stored Procedures.
- Strong background in database internals and analytics through working exposure.
- Knowledge of diverse concepts and techniques for creating systems with High Availability and Resilience.
- Knowledge of modern storage options, including objects stores, sharded data, and data replication techniques.
- Knowledge of low-level memory management, leak detection, use of Valgrind
- Performance profiling analysis skills.
- Proficiency in AI concepts and tools, including practical experience in integrating AI-driven solutions or leveraging AI frameworks for software development.
- Knowledge of Teradata Database (strongly preferred and will be an added advantage).
What You Will Bring
- Analyzing current systems to find flaws that can jeopardize cloud or network security.
- Maintaining applications and infrastructure for cloud-based platforms.
- Exposure to and knowledge of cloud technologies, including cloud scripting languages and libraries.
- Low level processor optimization for Intel and ARM processors.
- Concurrency concepts: lock-free vs lock-based tradeoffs, atomics/memory model, deadlock/starvation diagnosis.
- Understanding of message brokers and messaging.
- Experience with full life cycle development skills - Designing, Developing, Coding, Testing and debugging system software.
- Use of Agile methodologies and tools.
- Strong written and oral communication skills.
- Good analytical and logical skills. Strong troubleshooting & debugging skills on Linux.
- Self-motivation and self-organizing skills, with a high capacity for rapid learning and having meticulous attention to detail.
- Technical support skills when communicating with customers and customer-facing personnel.
- Test development skills for both unit and functional tests.
- Knowledge of QA automation frameworks and tools, including understanding how automated test scripts are written and integrated into CI/CD pipelines.