Software Architect
Technology, Data & Digital · Software & Web Development · Backend · Full Stack
Smart sammanfattning
AI-genererad översikt av denna tjänst
Alstom is the leading company in the mobility sector, solving the most interesting challenges for tomorrow’s mobility. That’s why we value inquisitive and innovative people who are passionate about working together to reinvent mobility, making it smarter and more sustainable. Day after day, we are building an agile, inclusive and responsible culture, where a diverse group of people are offered opportunities to learn, grow and advance in their careers, with options across functions and geographic locations. Are you ready to join a truly international community of great people on a challenging journey with a tangible impact and purpose?
Equal opportunity statement:
Alstom is an equal opportunity employer committed to creating an inclusive working environment where all our employees are encouraged to reach their full potential, and individual differences are valued and respected. All qualified applicants are considered for employment without regard to race, color, religion, gender, sexual orientation, gender identity, age, national origin, disability status, or any other characteristic protected by local law.
Educational Requirements
Mandatory:
- Engineering degree in Computer Science, Software Engineering, or a related field.
Desirable:
- Master’s degree
Mandatory:
- Proven experience as a Software Architect with a strong portfolio of successful projects.
- Proficiency in Python and C programming languages.
- Knowledge on communication protocols [Ethernet, TCP/IP, UDP, NTP, etc.]
- Knowledge of software development methodologies and lifecycle.
- Understanding of agile development practices.
- Familiarity with version control systems, such as Git.
- Knowledge of user interface design principles for desktop applications.
- Experience in performance optimization and code refactoring.
Desirable:
- Knowledge of software development methodologies and lifecycle.
- Experience with railway signaling software or other transportation-related systems.
- Vital or secure software development
- Knowledge of databases [MySQL, InfluxDB, MongoDB, NoSQL, Prometheus, RethinkDB or Redis], and communication protocols [Profibus or Modbus] would be a plus.
Competencies & Skills
- Strong problem-solving skills and ability to think critically and independently.
- Excellent English communication skills, both written and verbal.
- Ability to work effectively in a collaborative team environment and lead projects autonomously.
- Detail-oriented with a commitment to delivering high-quality software solutions.
- Ability to work with remote collaborators
- Agile, Inclusive, Responsible
- International mindset
MAIN RESPONSABILITIES
Contribute to the elaboration of product/system specification & architecture, in collaboration with cross-functional teams
Define the software requirements specifications
Define the functional requirements, operational requirements, interfaces requirements and the requirements linked to performance, safety, cybersecurity, Reliability Availability and Maintainability (RAM)… constraints
Ensure that all the requirements can be verified (testability, …)
Ensure the traceability of the software requirements through the development cycle
Define the software architecture
Elaborate the functional and structural breakdown into software components
Allocate the requirements to the software components
Define the interfaces between the software components
Define the dynamical behavior of the software
Validate the feasibility of the solution: model simulation, mock-up
Take main technical choices for software development
Select development tools, methodology (ex: UML, …), programming languages, coding strategy and coding rules…, strictly following internal process/methods & tools recommendations
Contribute to the selection of the execution environment (processor, operating system, middleware, basic software…), together with the product architect, system engineering manager and hardware architect
Arbitrate and validate major software design choices
Mentor developers and provide technical leadership within the team
Perform software/software integration, together with the software designers
Perform hardware/software integration, together with the hardware architect
Specify, design, prepare and perform tests and verifications of his/her deliverables
Sustain the software
Keep informed of the evolution of technologies through techno watch
Contribute to standardization by reusing existing solutions or by defining reusable solutions, including COTS*
Apply and ensure application of processes and standards
Contribute to continuous improvement (RoE: Return of Experience, process…)