The Software Architect defines concepts and describes Software Architecture in a project, or a platform project based on the requirements defined by the customer or a customer project.
As a Software Architect you will have to decompose the product into components, defines the interfaces, dynamic behavior and resource consumption target and gives guidance for software design, implementation and test.
Project Software Architecture Responsibilities :
Elaborate and define product and platform concepts during quotation and development-phases based on defined requirements and constraints;
Consider different alternatives for the architecture and select the best one based on defined criteria;
Define, design and describe the product-specific architecture in a modular, maintainable and portable way (e.g. SW-Architecture Development and Design, Rhapsody Model, Drawings);
Implement high complexity / high risk SW Components.
Define and break down memory and performance requirements;
Make sure that product architecture meets requirements with respect to functionality, performance, quality and schedule;
Take part in the relevant project planning and estimation process;
Establish and maintain traceability between requirements and architecture;
Represent the project technically in reviews with customer (design & issues).
Software Domain Responsibility
Ensure high degree of re-usability and identify synergies across projects;
Set up general rules and guidelines for design and development (e.g. communications mechanism, error handling, etc.);
Coach SW Developers / junior architects from your team;
Perform reviews of software architecture and participate in software design and code reviews.
A mentor will support you to stepwise take over own responsibility after an initial training phase which will familiarize you with our products, tools, processes and organization.
Minimum 4-5 years of experience in Software Development and Design, preferably in embedded environment;
Advanced skill in Object Oriented Programming (C++), Design Patterns, UML, Versioning Control (examples : ClearCase, CMSynergy, SVN, GIT);
Operating Systems : Unix / Linux;
Advanced English knowledge;
Work experience in Agile development (Scrum, Kanban);
Ability to establish and maintain effective working relationships with others.
Would be nice to have :
Work experience in the automotive or consumer electronics industry, preferable in a variety of functions;
Client server protocols like TCP-IP, UDP, MQTT and LwM2M;
Advanced Linux Programming;
Software development process knowledge;