Technical Lead Software Engineer

Starlab is looking for an experienced technical lead software engineer to join our team.

The successful candidate will lead the technical developments of earth observation research projects, with a focus on bringing research results to real-world applications.
We provide advanced solutions integrating earth observation augmented services and machine
learning, to create new products able to be integrated in the decision chain for more competitive and
sustainable operations. We turn complex data into useful information.


The responsibilities of the successful candidate as a member of the Starlab Software team will
include:

– Designing and implementing software architectures for data services and products, including ML systems.

– Selecting software stacks of FOSS.

– Maintaining legacy software from Starlab, coded in a myriad of languages (e.g.:  Python, Node.js).

– Leading code development from other members of the team. This may include mentoring, and reviewing code.

– Maintaining the server infrastructure of the space department. Most of our servers run on the cloud, and they need to be operational at all times.

– Packaging software and deploying it on production environments.

– Establishing and maintaining best practices related to software, within the department (e.g.: use of code repositories).

–  Contributing to the definition of the data needs, for a given project. Assembling and preparing the required vector datasets.

– Leading AGILE software development.

–  Providing expert input to R&D projects about any technical topics (e.g.: use of standards, architectures, software stack). This could include writing sections of project proposals (e.g.: EC, ESA).

– Providing expert input to other members of the team, about any technical topic.

The successful candidate will work closely with the data scientist and product owner, for designing and implementing new products and services. She or he, will likely mentor data engineer interns, empowering them to reach their best potential. Some interaction with the IT support team, is also expected.

The following are key requirements we expect the successful candidate to meet:
• BSc. or MSc.: Computer Science or related. If you don’t have a degree, you must
have a proven track record of programming experience (for instance having worked in a
a Free and Open Source Project).
• Ability to handle projects with a “multi-scale” approach: able to maintain a high- level
view while paying attention to detail.
• Very hands-on approach, and able to hit the ground running.
• Excellent communication and presentation skills.
• Fluent in English (spoken and written).
• Team player, our culture is very important to us,
• Curiosity – things change and we need to adapt.
• Entrepreneurial spirit (we are a company, after all!).

As for the technical skills, these are relevant for this job:

– Experience designing and implementing software architectures. Some knowledge of microservices is highly relevant.

– Experience using FOSS. Having contributed to FOSS4G projects is a plus.

– We use a range of languages, depending on the project. It is more important to be a quick
and independent learner than a Jedi in a particular technology.

– Paying attention to code quality, as well as requirements. We write code, which may be maintained by other people.

– Experience in mentoring people, or at least the motivation to do it.

– In order to manage software projects, it is essential to master git.

– All of our servers run Linux, so it is important to be comfortable using this OS. Some knowledge of cloud environments such as AWS or Azure is welcomed, although not require.

– 99% of our projects deal with geospatial information, so some knowledge of GIS is an absolute requirement. Knowledge of OGC standards (e.g.: WMS, WFS, CSW) is highly valued.

– Most of our software is packaged using docker, so knowledge of docker and associated technologies (e.g.: docker-machine, docker-compose) is a must.

– Some degree of experience with AGILE methodologies (e.g.: SCRUM, Kanban) is useful, although not required.

– Experience of designing, administrating and using databases, both relational (e.g.: Postgres) and non-relational (e.g.: mongo) is absolutely required.

– Some knowledge of AI and Big Data is highly welcomed.