Linux Kernel & device driver development within a complex Linux architectural environment in C language
Writing software design documentation including UML diagrams
Proven experience in CPU & GPU software development using object-oriented languages
Good understanding of multi-threaded environments,
Data center and storage concepts
Planning and producing high quality, robust, functional software from inception-to-completion
Designing & developing software for a variety of projects using C++ on Linux
Effectively contributing to all activities over the Software Development Life Cycle
Driving collaboration and communication with clients and engineering teams
Mentoring and supervising a team of software developers
Plan, design and facilitate software development in a project team
Work closely with software engineers and system architects,
developers, scrum masters, product managers and test engineers
Participates in the scrum team with collective responsibility to deliver the team's assigned product features. This team regularly demonstrates the function and quality of their code as well as their progress completing product features.
Participate in design reviews with other product or scrum teams to
maintain high product quality and effective communication between teams and other technical disciplines.
Contributes to the continuous improvement of the Software Engineering processes.
Software Engineering: Produces high quality, robust, functional software with a passion. Effectively contributes to all activities over the Software Development Life Cycle (SDLC) Software Systems/Architecture Development: Develop software under version control and with continuous integration. Plan and participate in software systems/ development from inception to completion, which may include gaining customer acceptance. Assists in the preparation of design specifications and Interface Control Documents. Creates clear and concise system design documentation (e.g. UML, sysML). Product Management: Analyses project problems and produces a realistic schedule to address the problem. Refines requirements and breaks down work into time boxed deliverables. Applies various methods of estimation of software development effort in order to develop realistic schedules. Monitors product status and progress. Provides appropriate feedback to ensure project progress is visible to all stakeholders. Testing : Applies a test driven approach to software design and development at all levels ( unit, integration, system, release). Design Proposals : Prepares design proposals to reflect cost, schedule and technical approach. Develops technical and cost data and assists in writing new business proposals.
Required Candidate profile
Excellent written and spoken English
Good communication and collaboration skills and the ability to clearly convey information and ideas
Good planning and organisation skills
The ability to develop and maintain positive working relationships and a stable performance under pressure
Has the required level of technical and professional skill or
knowledge in position-related areas; assimilating and applying new job-related information in a timely manner; keeping abreast of current developments and trends in area of expertise.
Establishing courses of action for self and others to ensure that work is completed efficiently.
A high level of integrity
Firmly adhering to codes of conduct and ethical principles.
Commits to actions that improve existing processes, products and services through empowerment and management by data