Software Engineer
Software Engineer31
Applications
31
Applications
About the Job
Skills
Skills Required:
Application Development: C++
1. Fluent with advance concepts of C++, e.g., constructs, strings, pointers, arrays, arrays &
pointers, double pointers, function pointers, pointers to arrays, internal storage
for various datatypes, creating in memory data-structures, bit-field operators,
recursions, function call and stack formation, standard file I/O library, buffered IO, etc.
2. Relational database (SQLite)
3. Standard protocol implementation (TCP/IP, Serial etc)
4. Knowledge of object-oriented concepts and programming
5. Multi-Threaded development
6. Good design skills, familiar with SOLID principles
7. Experience with Make tools and cross compilation chains for ARM architecture.
8. Strong debugging and profiling skills (gdb, gprof)
9. Shell scripting, Python Scripting
10. Good understanding of data structures and implementation knowledge such as Stacks, queues, trees, etc.
Operating system:
1. Operating system architecture (Linux, BSD flavours)
2. Working with process, threads, memory management
3. Locking mechanism in the OS
Good to have (Operating System):
1. Networking stack knowledge
2. Networking stack programming experience will be an advantage.
3. Exposure to embedded systems interface (programming using in devmem, gpio, DMA)
Other Areas:
1. Documentation and version control
2. Unit Testing and Integration Testing
3. Open to learn and adopt frequent changes.
4. Logical Reasoning
5. Experience in mentoring juniors and technical leadership of 2 to 6 engineers