Job Type: Full Time
Experience: 5 years
Location: Nairobi
Company: Ezra
We are looking for a Senior Software Engineer who will play a pivotal role in the design, development, and deployment of our software solutions. In this position, you will leverage Java Spring Boot, follow best practices like Test-Driven Development (TDD), and build robust, scalable event-driven microservices. Having experience with Clojure is a plus. You will collaborate with cross-functional teams to ensure our platform meets the highest standards of performance, security, and reliability.
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,AMQP)
- 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.
- Conduct and participate in design reviews, code reviews, and knowledge-sharing sessions.
Clojure Experience (Nice-to-Have)
- Develop and maintain Clojure components and services, if applicable.
- Share functional programming insights and best practices with the team.
- Contribute to mixed-language environments and ensure seamless integration with Java-based services.
Documentation and Continuous Improvement
- Maintain up-to-date documentation on service architecture, code components, and deployment procedures.
- Continuously research and evaluate emerging technologies to enhance product quality and developer productivity.
Required Qualifications
- Bachelor’s degree in Computer Science, Software Engineering, or a related field.
- 5+ years of professional experience in software development.
- Strong proficiency in Java and hands-on experience with Spring Boot.
- Proven ability to apply and advocate for Test-Driven Development (TDD).
- Experience in building event-driven architectures using messaging systems (e.g., Kafka, RabbitMQ, etc.).
- Solid understanding of microservices architecture and related best practices.
- Strong knowledge of RESTful APIs, design patterns, and object-oriented programming.
- Experience with CI/CD pipelines, version control (Git), and DevOps practices.
- Excellent communication skills and team-oriented mindset.
Method of Application
Interested and qualified? Go to Ezra on ezra.world to apply