CV
Work Experience
October 2015 - Present
Position: Software Engineering Lead
Employer: Elsevier, London, UK. Remotely in Germany since 2021.
Software Engineering Lead for the ScienceDirect Search and AI Core team. Responsibilities include planning and delivery management, stakeholder management, technical leadership and architecture, as well as the line management of a team of software and quality engineers of varying degrees of experience.
Led the development of ScienceDirect AI, launched publicly in March 2025. ScienceDirect AI is a generative AI product that employs AI Agents and Retrieval Augmented Generation to answer researcher questions.
Led the rearchitecture of the ScienceDirect Search stack from a monolith to a modern microservices architecture on AWS. Included the migration of the search index from SOLR to AWS OpenSearch. This dramatically improved the performance, maintainability and observability of the system.
April 2014 - September 2015
Position: Lead Software Engineer
Employer: Solenix Deutschland GmbH, Darmstadt, Germany
Technical Lead for the MUST project. Software analysis, design, and coordination of the team developing MUST, an ESA information system for spacecraft telemetry analysis, based on a MySQL database, with client applications developed in Java.
Technical Lead for the SMART project. Analysis, design, development and coordination of the team developing SMART, a EUMETSAT software system for monitoring the processing chain of Earth Observation products. SMART uses an Oracle database, with a REST interface for data access by client applications.
Technical Lead for the EOAPPS PDGS Video App project. Design and development of an iOS application for dissemination of ESA’s activities to the general public, using Objective-C, Swift and C++. Coordination of the development team.
Project Manager for the SSA P2-SWE-XI project. Management and coordination of the evolution of SEISOP, an Oracle based information system for space weather monitoring.
Other responsibilities include interviewing of candidates, tutoring of new hires and participation and coordination of several project bids.
November 2009 - March 2014
Position: Software Engineer
Employer: Solenix Deutschland GmbH c/o European Space Agency, Darmstadt, Germany
Lead developer for the WebMUST project. Requirements analysis, design and development of a web application and framework for interactive plotting of spacecraft data. The WebMUST front-end was developed in HTML5, CSS and JavaScript with jQuery. The server side is based on Java Servlets and Server Pages. Other responsibilities included support to end users, and operations of the deployed system.
Architect for the TECO planning system. Requirements elicitation, design and development of the TECO system, for planning of experiments on-board the Alphasat spacecraft. Maintenance and operations of the system.
Deputy Technical Officer for the SEISOP project. Coordination of the industry consortium during the project’s development, software validation and documentation review. Management of the development team for the SEISOP Web Interface.
Software developer for the APSI project. Development of planning software based on constraint satisfaction and resource optimisation, applied to several problems in the space domain.
Software developer for the MUST project. Development of new modules and client applications for MUST, an information system for analysis of spacecraft data.
Software developer for the EO-RCP project. Development of a platform based on Eclipse RCP and uDig for visualisation of Earth Observation products.
December 2007 - October 2009
Position: Trainee
Employer: European Space Agency, Darmstadt, Germany
Software development and validation support to the APSI, MUST and SEISOP projects.
June 2006 - November 2007
Position: Software Engineer
Employer: Critical Software, Lisbon, Portugal
Project engineer for the Galileo SCPF project. Software design, development, validation and documentation of several Galileo SCPF components, using Eclipse RCP, MySQL and Hibernate.
Project engineer for the Command and Control Framework and Platform project. Development of an Eclipse RCP framework and application for commanding of space and defense assets.
Software Quality Assurance engineer. Quality assurance tasks for the Open Concurrent Design Server and Galileo SCCF-PEA projects.
Education and Training
2006 - 2007
Title: Post-Graduation in Information Systems
Organisation: Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa, Portugal
2001 - 2006
Title: 5 Year Degree in Computer Science Engineering
Organisation: Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa, Portugal
2012
Title: Introduction to Agile Software Development with SCRUM
Organisation: European Space Operations Centre, Germany
2011
Title: Spacecraft Operations Course
Organisation: Deutsches Zentrum für Luft- und Raumfahrt, Germany
1993 - 1999
Title: Certificate of Proficiency in English
Organisation: University of Cambridge
Languages
Portuguese: Native Speaker
English: Fluent
German: Basic
Skills and Competences
Software Engineering
Programming Languages: Java, JavaScript, Objective-C, Swift.
Web technologies: HTML, JavaScript, CSS, Node, React, jQuery.
Java frameworks: Spring, Dropwizard, Hibernate, Jersey, JUnit, Mockito.
iOS frameworks: Core Foundation, UIKit, Grand Central Dispatch, Core Animation, Core Location.
Database development and administration: MySQL, Oracle.
Development of applications using Eclipse RCP.
Development of distributed software systems, using REST interfaces and Java RMI.
Development of Geographical Information Systems with uDig, NASA WorldWind and Glob3mobile.
Text and data mining, constraint-based solving systems, planning and scheduling techniques.
Version Control Systems: Mercurial, Git, Subversion, CVS.
Build tools: Gradle, Maven, Ant, npm.
Continuous Integration and Static Analysis tools: Jenkins, GoCD, SonarQube.
Integrated Development Environments: Eclipse, IntelliJ IDEA, Xcode.
Analysis, architectural and detailed design of software systems with UML.
Management
Task breakdown and planning.
Project estimation and budgeting.
Progress monitoring.
Reporting to customers and management.
Agile software development methodologies.
Coordination of software development and maintenance teams.
Interviewing and tutoring of new company hires.
Coordination and participation in project bids.
Line management.
Mentoring and coaching.