The Senior Software Engineer is a core technical leader responsible for the hands-on development and architecture of our mission-critical backend platform.
Main Objectives & Responsibilities:
- System Design & Implementation: Lead the end-to-end design, development, and deployment of robust, highly scalable, and secure event-driven microservices using Java and Spring Boot.
- Quality Assurance: Champion the adoption of engineering best practices, particularly Test-Driven Development (TDD), to ensure code quality, maintainability, and long-term stability.
- Collaboration: Work closely with Product Managers, DevOps, and other engineering teams to translate complex business requirements into technical specifications and delivered features.
- Mentorship: Provide technical guidance and mentorship to junior team members, raising the overall technical bar of the engineering organization.
Key responsibilities:
Backend Development
- Design, develop, and maintain high-performance backend services using Java Spring Boot (or similar frameworks) and Clojure.
- Adhere to clean code principles and industry best practices in all development efforts.
- Ensure code quality through pair programming, code reviews, and other collaborative development methods.
Event-Driven Architecture
- Implement and maintain event-driven systems using message brokers (e.g., Kafka, RabbitMQ, or cloud-native equivalents).
- Work on publish/subscribe patterns and streaming data pipelines to ensure real-time data processing and system responsiveness.
- Optimize event flow for performance and scalability.
Test-Driven Development (TDD)
- Apply TDD principles throughout the software development lifecycle to deliver robust, maintainable solutions.
- Write comprehensive unit tests, integration tests, and end-to-end tests.
- Ensure high test coverage and effectively diagnose, document, and fix bugs.
Architecture and Design
- Collaborate with architects and senior engineers to define microservices architecture and component interaction.
- Contribute to architectural discussions and decision-making processes, ensuring scalability, security, and maintainability of solutions.
- Integrate best practices for secure coding, data privacy, and compliance.
Performance Optimization
- Monitor system performance, identify bottlenecks, and implement solutions for performance tuning.
- Conduct profiling, load testing, and implement caching strategies to enhance system response times.
- Work closely with the DevOps team to optimize CI/CD pipelines for quick and reliable deployments.
Collaboration and Leadership
- Mentor junior engineers on best practices, coding standards, and new technologies.
- Collaborate with product managers, QA engineers, and DevOps to deliver features on time and with high quality.
Qualifications and Experience:
- Bachelor's degree in Computer Science, Software Engineering, or a related field.
- 5+ years of professional experience in software development, preferably in a modern backend environment.
- Strong proficiency in Java and proven, hands-on experience developing production-grade applications with Spring Boot.
- Expertise in designing, building, and operating event-driven microservices architectures.
- Proven ability to apply and advocate for Test-Driven Development (TDD) methodologies.
- Direct experience with message brokers/queues (e.g., Kafka, RabbitMQ) for inter-service communication.
- Solid knowledge of relational and NoSQL databases, caching layers (e.g., Redis), and RESTful API design.
- Working experience with CI/CD pipelines (e.g., Jenkins, GitLab CI) and DevOps practices.
- Experience with version control systems, particularly Git.
- Excellent communication skills, problem-solving abilities, and a collaborative, team-oriented mindset.
Salary: Discuss During Interview
Education: Diploma
Employment Type: Full Time