Principal SW Engineer in Development

Spain, Catalonia, Barcelona

We are hiring a Software Development Architect in the Instrument Assets Program.

The Software Development Architect is responsible for a subsytem or a unit within project software architecture. The Development Architect reports to the Projects Lead (Software) Architect.

The Developer Architect takes over the main concepts of the Software Architect of the Project and breaks it down to Subsytem or Unit Level.

Main tasks and duties:
  • Follow the given Architecture of the Project Software Architect.
  • Understand requirements and expectations; drive missing quality attributes.
  • Be the interface person for all software architecture questions and actively communicate the important topics within a unit or a subsystem.
  • Support the development team in software architecture and technical questions.
  • Monitor the implementation, assess the software architecture quality and ensure that the software architecture has been followed within a unit or a subsystem.
  • Take part in the project’s Architecture Meetings as part of the architecture team.
Additional tasks, duties and responsibilities:
  • Architecture Evangelist within development Teams.
  • Coaching team how and when to write unit specification.
  • Coaching software developers how to write unit tests including unit verification plan, report and code.
  • Coaching software developers about Test Driven Development, Acceptance Test Driven Development etc.
  • Unit test automation.
  • Enforcement of coding rules and guidelines.
  • Detailed code reviews, pair reviews, check-in reviews etc.
  • Monitoring and approval of rule suppressions in code.
  • Monitoring of TODOs in code.
  • Monitoring of warnings existing in code.
  • Monitoring of the build and build process.
Not in Scope:
  • Writing user stories (Product Owner, Scrum Master)
  • Solve impediments (Scrum Master facilitates solving the impediments)
  • Creation of metrics
  • Testing software architecture for software not written by Software Developers (Test Manager)
  • Managing source control system e.g. branching (Software Development)