Position: Software Architect for Streamics product
Company: Materialise
Experience required: 3y
English level: intermediate

**Responsibilities**
Primary technical expert in the design and development of subsystems within a large application.
Works with Senior Developers overseeing subsystem(s) to ensure continuity and compatibility.
Responsible for furthering the architectural vision of the product and how that vision serves the business and is realized in construction.
Present application solution architecture to stakeholders as and when necessary.
Lead Performance Optimization efforts and address performance/scale/high-availability issues including resolving deadlocks and race conditions applying thread dumps, profilers, etc.
Help to assess the security of existing applications and ensure that they meet internal and external compliance mandates.
Lead the team members and assist in structuring the team’s task for efficiency and effectiveness.
Assist project control and process instrumentation including automation of metrics generation used for objective analysis.
Communicates as needed with Project Manager, Senior Developers, Subject Matter Experts (SMEs), and Product Manager to ensure the architectural vision for the product
Review artifacts from all phases – Uses Cases, estimates, high-level designs, low-level designs, code, test cases – to make sure they meet requirements.
Ensure development standards are followed including automated checks (via tools such as ReSharper, Visual Studio Static Code Analysis, etc.).
Identifies complex issues in a timely manner and provides mitigation recommendations to the Project Manager.
Assist Capacity Planning.
Assist Source Control, Build, and Deployment Management as needed.
Identify Non-Functional Requirements (Performance, Security, Testability, Extensibility, Scalability, Maintainability, Deployability, Accessibility, etc.)
 

**Requirements**
Experience with Service-Oriented Architecture (SOA).
Commercial Software development experience.
Advanced algorithms and data structures knowledge.
Distributed systems experience.
Cloud Computing development experience.
Working experience as part of a distributed team