Design, develop, modify, and implement software programming for products with focus on surpassing customer expectations, on achieving high quality and on-time delivery. Responsible for ensuring the
overall functional quality of the released product on all required platforms and mechanism. Ability to understand complex products, solutions, and problems. Creates, documents, and executes software
designs which may involve complicated workflows or multiple product areas. Should be able to learn new programming languages and Technologies in short span of time. Technical lead of one or more
projects within one area of a product. Guiding and supervising junior engineers. Provides input to the technical direction for one area of a product. Able to solve complex technical problems. Provides specialized expertise within multiple systems, software disciplines, as well as general knowledge of related disciplines, applications implications, and customer areas. Works with minimal supervision on complex projects with wide latitude for independent judgment. Highly skilled with extensive proficiency and technical expertise.
Prerequisites and Essential Functions:
Bachelor’s degree in computer science or similar subject, as well as 5 to 10 of experience and the following abilities:
Strong knowledge of Linux kernel, Linux device drivers
development/debugging and Linux Multi-threaded Systems Programming.
Knowledge of Red Hat based distributions and debian based distributions packaging, install, administer and maintain.
Good knowledge of scripting (Bash).
Knowledge and understanding of operating systems, networks and services.
Good knowledge of Linux Server, Web and Application Server (Tomcat, Nginx, Apache).
Ability to troubleshoot and diagnose problems and to analyze logs.
Recommend and implement system enhancements that will improve the performance and reliability of the system including scripting, integration, problem resolution, and configuration management.
Knowledge of git, gitlab/jenkins.
Knowledge of board bring-up on ARM board, Linux boot sequence, bootloaders, u-boot, secure boot and FOTA.
Application development on Linux, middleware services development, knowledge in Crash dump analysis, debuggers like Lauterbach Trace32
Good knowledge of OS concepts, OOPS, design patterns, data structures and algorithms
Socket programming, MQTT, Protobuf, SSL,
Knowledge of build systems, Makefiles and Yocto.
Experience in communication protocols like CAN, SPI, UART on Linux platform.
Hands-on experience with ARM SoC
Good understanding of cloud technologies.
Awareness of software development lifecycle methodologies (Waterfall, Agile)
Good delegation and time management skills
Good interpersonal and communication skills
Organization: Digital Industries
Experience Level: Experienced Professional
Job Type: Full-time