Technical Project Lead/Requirement Analyst

Required skills:

  • Experience with technical leadership of the software development in a team on a real project for a company, open source project or hobby project
  • Open mind and willingness to learn because meteorology is a specific field of work
  • Interest in long-term employment
  • Willingness to travel abroad (typically not more than a few weekly trips a year)
  • Upper-intermediate knowledge of English (at least CEFR B2 level), both writing and speaking (teleconferences with customers, on-site visits, reading requirements, writing technical specifications)
  • Programming experience in C++/Python/Java or similar language (reading code, software design, object-oriented design)

Candidate advantages:

  • Strong programming and algorithmic background
  • Problem reduction and solving skills
  • Interpersonal skills
  • Insight into current IT technologies

Job duties and responsibilities:

  • Analysis of customer requirements and translating them into specifications for developers
  • Leadership of development on projects that implement these specifications

There are two main sources of requirements for our development. First source are new delivery projects – tenders/purchase orders from new customers or software extensions required by our existing customers. Another source are requirements raised by our customers through our Support Department (typically smaller software changes or bug-fixes). Requirement Analyst is responsible for reviewing of these requirements. If needed he needs to communicate directly with the end-user and clarify the scope of work or discuss the proposed implementation. Once the requirement is understood sufficiently, he needs to envisage the deliverable design at the level sufficient for estimation of work effort or other implied costs. Typical output of this work is a work break down list with estimates for the work steps in man-days.

If we are awarded with a new project (typically we execute around 10 project in a year) we start again from the requirements. These have to be broken down into software development tasks for individual developers. This is the role of a Technical Project Lead. He acts here as a technical advisor for the Project’s Manager. He does not need to do low level design of each particular code change as our developers are sufficiently skilled to create the code and design on their own. Our developers are also engaged to communicate with customer if needed, but sometimes they need a different perspective. Technical Project Lead makes sure that the developers have the information needed for their work and he takes important technical project decision needed to steer the development.

We try to let the original Requirement Analyst (who was responsible for e.g. initial tender requirement analysis) to do also the technical leadership of the follow up delivery project – this ensures preservation of the subject matter expertise. Therefore these 2 distinctive roles are mixed into one job position in our company.

Technologies used in our company:

We use C++ and Python to write our core software, but we have increasing number of projects in Java and JavaScript. We are open to whatever platforms and technologies that will make us more efficient. We use plenty of helper systems to make our work easier: team instant messaging (Slack), version control systems (Git), automated cross compiled builds, continuous integration (Atlassian Bamboo), issue tracking (JIRA), Wiki (Confluence) and others.