Software Architect
Summary
Design and lead enterprise-scale Java/Spring Boot microservices and integration solutions using Kafka, IBM MQ, and event-driven patterns.
Key Responsibilities
- Lead the design and architecture of end-to-end enterprise software solutions.
- Analyse business requirements and translate them into scalable and effective technical solutions.
- Define solution architecture, integration patterns, technology frameworks, and technical standards.
- Provide technical leadership and guidance to software development and engineering teams.
- Design and review Java, Spring Boot, and Microservices-based applications.
- Design enterprise integration and messaging solutions using technologies such as IBM MQ, Kafka, Solace, JMS, Apache Camel, Spring Integration, and Spring Cloud Stream.
- Design and support batch processing solutions using Spring Batch and Spring Boot Batch.
- Develop and review API, service integration, and event-driven architecture designs.
- Work with relational and NoSQL databases, including MS SQL, Oracle, IBM DB2, and Cassandra.
- Ensure solutions meet requirements for scalability, performance, availability, security, and maintainability.
- Provide architectural guidance on authentication and authorisation solutions, including OAuth 2.0.
- Work closely with development, infrastructure, DevOps, and project teams throughout the software development lifecycle.
- Review technical designs and implementation approaches to ensure compliance with architectural standards and best practices.
- Identify technical risks, dependencies, performance issues, and potential bottlenecks, and recommend appropriate solutions.
- Conduct architecture reviews, technical workshops, proof-of-concepts, and solution discussions with relevant stakeholders.
- Prepare and maintain solution architecture documents, technical specifications, system diagrams, and integration designs.
- Support troubleshooting and performance optimisation of enterprise applications where required.
- Evaluate emerging technologies and recommend appropriate solutions to improve system capabilities and efficiency.
Technical Skills
Core Technologies
- Java / JDK 11
- Spring Framework
- Spring Boot
- Spring Boot Microservices
- Spring Batch / Spring Boot Batch
- Spring Integration
- Spring Cloud Stream
- Hibernate / JPA
- JMS
- OAuth 2.0
Integration & Messaging
- IBM MQ
- Apache Kafka
- Solace
- Apache Camel
- Zookeeper
- Enterprise integration patterns
- File processing
- SAX / StAX Parser
- Dozer Mapper
- JiBX Model Mapper
- Hazelcast
- Netflix Components
Database Technologies
- MS SQL
- Oracle
- IBM DB2
- Cassandra
Monitoring & Logging
- ELK Stack
Additional / Legacy Technologies
- HTML
- JavaScript
- VBScript
- C#.NET
- VB.NET
- WCF
- ASP.NET
- Windows Services
- Crystal Reports
Requirements
- Bachelor's degree in Computer Science, Information Technology, Software Engineering, or a related discipline.
- At least 8+ years of relevant experience in software development, technical architecture, solution architecture, or enterprise application development.
- Strong hands-on experience in Java and Spring-based enterprise application development.
- Proven experience designing and implementing Microservices and Spring Boot solutions.
- Strong understanding of enterprise integration, messaging, and distributed systems.
- Experience working with multiple relational and NoSQL database platforms.
- Strong knowledge of software architecture principles, design patterns, API design, and integration methodologies.
- Experience working with large-scale, complex, or high-volume enterprise applications.
- Strong analytical, problem-solving, and decision-making skills.
- Excellent communication and stakeholder management abilities.
- Ability to provide technical leadership and work collaboratively with cross-functional teams.
- Experience in Agile/Scrum development environments will be an advantage.
Preferred Skills
- Experience designing event-driven and distributed architectures.
- Experience with high-volume transaction processing systems.
- Exposure to cloud platforms and DevOps practices.
- Experience in application modernisation, system migration, or legacy system transformation.
- Experience working with enterprise-level clients and complex technology environments.
- Ability to assess existing systems and recommend improvements, optimisation, or technology modernisation.
Key Competencies
- Solution Architecture & Technical Design
- Enterprise Application Architecture
- Java & Microservices
- System Integration
- Technical Leadership
- Problem Solving & Analytical Thinking
- Stakeholder Management
- Communication & Presentation Skills
- Technology Evaluation & Decision Making
- Team Collaboration