Principal Software Engineer

Posted Jan 29

Worldwide, Remote

As a Principal Software Engineer, you will be responsible for the production and enhancement of high-quality development code for the NXLog Raijin product. You need to ensure that developers are cognisant of good practices regarding the design, development, testing, documentation, and maintenance of software solutions that meet these needs.

Required activities:

  • Research, design, and development of NXLOG Raijin code
  • Logging of all work in NXLog work-tracker
  • Daily committing of code into the Gitlab repository
  • Daily update of development activities via Gitlab or incident management tracker
  • Architectural, discussions, code reviews, and merge requests
  • Providing feedback on the Jira issue description
  • Providing feedback via architectural discussions
  • Providing direction via code reviews
  • Merging code and providing feedback
  • Working with the Product and Project Manager on Release Management
  • Planning and team learnings, planning sessions, and retrospective
  • Providing guidance in planning for development
  • Providing data on the performance of developers in retrospective – number of code reviews problems that were occurring – how can we improve
  • Refinement issues – Product and Project Manager
  • Research new technology, performance testing, working with DevOps and Support
  • Liaising with DevOps on environments needed for Development
  • Working with Support on high-profile urgent issues
  • Working with other lead developers from other teams
  • Recommending new technologies that can help increase productivity
  • Investigating software-related complaints and making necessary adjustments to ensure optimal software performance

Responsibilities

People:

  • Leadership – Lead by example
  • Schedule intervention after 3 or more code reviews to unstuck people
  • Communications- Feedback on code reviews, and architectural discussion – constructive and clear direction as per our standard processes
  • Communications - Working with the Product Owner and Senior Project Manager to help refine issues
  • People management – Mentoring, and guiding developers
  • People management – Actively participate in the evaluation and personal development sessions
  • People Management – Review new candidates, participate in and lead technical interviews
  • Co-management –Ability to work closely with the Technical Lead

Process:

  • Provide an example of standardization of work – the issues contain description, architectural breakdown, clear and clean code with reasons why direction was chosen
  • Daily update of reports – allowing teams to see progress
  • Time management Code Reviews, Architectural Discussions, Merging
  • Development of own lead issues

Technology/ Innovation:

  • Working towards Raijin working with NXLOG
  • Working with QA Engineers to improve test coverage and tests and environment
  • Suggestions to improve ways of working
  • Providing information and decisions on new libraries when required

Requirements:

  • C++ development experience under Windows/Linux/Unix (min. 5 years),
  • Good understanding and practical experience of modern C++ (C++11 and later)
  • Good knowledge of data structures and algorithms
  • Strong analytical skills
  • Strong verbal and written communication skills (in English)
  • Excellent leadership skills and people management experience
  • Proven experience in software development methodologies
  • The ability to multi-task
  • Qualification: Masters's degree in Information Technology or similar
  • Language: fluent English skills (oral and written)
  • PC knowledge: Advanced level of MS Office knowledge