Software Architect

CommencisIstanbul, IstanbulHybridFull-timeMid level, 2–5 yearsListed 1 day ago

Apply now

About this role

Responsibilities

- Providing active hands-on architectural guidance and leadership through the entire lifecycle of backend products and services

- Experience in microservices architecture and reactive programming, with a strong focus on building scalable and resilient systems.

- Proven experience in digital banking, private banking, or financial platform transformation projects.

- Experience with core banking modernization, open banking (API) architectures, or payment systems is highly desirable.

- Designing backend architectures using Java, Spring Boot, and related technologies in alignment with scalability, maintainability, performance, and security goals

- Defining and evolving domain structures, bounded contexts, service decomposition strategies, and modular architecture approaches including modular monolith and microservices where appropriate

- Collaborating closely with other architects, engineering managers, and development teams across the organization in architecting and delivering robust backend solutions

- Structuring and delivering technical documentation for HLDs, architecture decision records, solution designs, analysis inputs, API contracts, sequence diagrams, and backend design artifacts, and establishing standard practices for co-workers to adapt easily

- Investigating and assessing emerging technologies, backend frameworks, and architectural patterns to determine the best approach for product and platform needs

- Defining non-functional requirements from availability, scalability, security, observability, extensibility, and operational support perspectives, and designing backend solutions to meet those requirements

- Supporting teams in troubleshooting system-level backend, integration, performance, data consistency, and production issues

- Designing and guiding API-first, event-driven, and asynchronous integration patterns between internal and external systems

- Driving architectural decisions for distributed systems including resilience, retries, idempotency, fault tolerance, transaction boundaries, caching, and messaging patterns

- Reviewing and improving service boundaries, backend code structure, data access patterns, deployment architecture, and technical debt areas

- Developing and leading proof-of-concept projects for backend frameworks, platform capabilities, and architectural improvements

- Driving discussions with senior co-workers regarding trade-offs, best practices, project delivery risks, and backend modernization strategies

- Cross-training peers and mentoring teammates on software design principles, backend architecture patterns, and engineering standards

- Conducting code reviews and design reviews, and providing feedback to team members with a focus on backend quality attributes and architectural sustainability

- Assisting in technical audits and ensuring audit recommendations are implemented in line with secure software development and platform standards

Qualifications

- BSc/MSc degree in Computer Engineering, Software Engineering, or a related field

- 8+ years of experience in backend software development, with strong hands-on experience in Java and Spring Boot

- 3+ years of experience in design and implementation of complex distributed backend systems and software architectures

- 2+ years of experience in a similar position guiding a cross-functional project or product team

- Strong experience in backend service design, API architecture including REST, GraphQL, and gRPC, service-to-service communication, and integration patterns

- Strong knowledge of software architecture patterns such as layered architecture, hexagonal architecture, clean architecture, modular monoliths, and microservices

- Experience with domain-driven design, domain modeling, and designing systems across different domain structures and business capabilities

- Experience with containerization and orchestration frameworks such as Docker and/or Kubernetes

- Working knowledge of application and system availability, scalability, observability, and distributed data platforms

- Expertise in backend performance optimization, transaction management, concurrency handling, and scalable system design

- Experience with relational database design, SQL optimization, and data consistency patterns, with additional familiarity in non-relational and NoSQL databases

- Experience with messaging and streaming technologies such as Kafka, RabbitMQ, or similar platforms

- Expert-level understanding of CI/CD principles, knowledge of various tools, and strong focus on engineering quality gates and delivery practices

- Knowledge of cloud services, especially AWS and related AWS services

- Strong understanding of secure backend development practices including authentication, authorization, secure communication, and secrets/configuration management

- Strong unit testing, integration testing, debugging, and root cause analysis skills

- Prior experience with SCRUM/Agile methodologies