What are the responsibilities and job description for the Software Engineer (C++ & Networking/Avionics) position at SM Global IT LLC?
Role Overview:
- We are seeking a Senior C Engineer with strong modern C , networking, and Linux systems programming experience to support high-performance software used in an avionics environment.
- The ideal candidate will design, develop, optimize, and maintain reliable, scalable networking services. This role is focused primarily on strong C and networking fundamentals. Aerospace or avionics experience is preferred but not required.
Required Skills:
- Strong hands-on C development experience, including Modern C (C 11, C 14, C 17, and/or C 20).
- Strong understanding of TCP/IP, UDP, sockets, and network-based application development.
- Solid Linux systems programming experience, including threads, sockets, debugging, and performance analysis.
- Experience with concurrency, multithreading, synchronization, and memory ownership/management.
- Experience designing and optimizing high-performance, reliable, fault-tolerant services.
- Knowledge of resiliency concepts, including timeouts, retries, logging, monitoring, telemetry, and error handling.
- Strong troubleshooting and problem-solving skills for complex system, performance, and networking issues.
- Experience with performance profiling, system diagnostics, and scalability optimization.
- Strong understanding of software architecture, design patterns, and clean coding practices.
Preferred Skills:
- Experience in aerospace, avionics, aviation, or other safety-critical environments.
- Experience with embedded systems, edge computing, or resource-constrained environments.
- Experience integrating cross-platform applications and services.
- Hands-on experience supporting both legacy and modern C codebases.
- Familiarity with distributed systems or real-time software environments.
Key Responsibilities:
- Design, develop, and enhance high-performance C networking services.
- Build reliable and resilient software components for avionics-related systems.
- Analyze and optimize system performance, memory usage, concurrency, and network throughput.
- Troubleshoot complex Linux, networking, and application-level issues.
- Collaborate with engineering teams on architecture, integration, code reviews, and technical design decisions.
- Improve code quality, scalability, observability, and operational reliability.
- Support the integration and maintenance of software across modern and legacy C environments.