Position: Senior Linux Developer (with C++)
Company: SOTI
Category: C++
Experience required: 5y
English level: upper

What You’ll Do
Collaborate closely with IoT software and QA developers in an integrated geographically dispersed team.
Design, implement and maintain Linux software in C/C++ utilizing industry standard methodologies and best practices, based on business, customer and technical requirements.
Scope and analyze business and technical requirements to derive implementation estimates and plans in an agile development environment.
Verify software and configuration defects and ensure appropriate automation is in place to improve unit and regression testing.
Identify design and implementation issues across multiple Linux distributions and OEM IoT technology stacks to improve overall system design.
Implement designs with a high level of code coverage utilizing a comprehensive set of unit and integration tests in collaboration with QA colleagues.
Work closely with a team of software development, QA, and management colleagues to reach defined goals and meet deadlines.
Commit to ongoing learning and development.
Advocate for Object-Oriented design concepts, system robustness and reliability of implementation.
Communicate clearly and effectively across all levels of the organization.

Experience You’ll Bring
Post-secondary education in Computer Science or Computer Engineering.
5-10 years of experience as a software Linux IoT or systems software developer.
Demonstrable experience developing software in C, C++, shell, and scripting languages on Linux systems and distributions.
Demonstrable knowledge of Linux system architecture and components, software deployment and lifecycles, and knowledge pertaining to network configuration, DNS, and TCP/IP.
Demonstrable experience with git, Linux development toolchains such as gcc/g++, make, CMake, Linux distribution package managers.
Experience developing software in an Agile environment.
Experience with automated test tools and frameworks for Linux environments.
Superior analytical skills for diagnosing and troubleshooting software functional and performance issues on Linux systems using standard tools such as gdb and strace.
Aptitude for quickly learning different IoT OEM vendor technologies and tools.
 
Nice to have 
Deep understanding of the Linux process model, file system and permissions, socket programming, OSI network model, systems programming, and security.
Exposure to CI/CD tools such as GoCD/Jenkins.
Experiencing porting Linux code to esoteric Linux IoT platforms such as Tizen.
Experience utilizing Jira in Scrum or Agile based development environment.