logo

View all jobs

Senior Functional Software Engineer ( with Clojure experience a must have )

Nairobi, Nairobi

Senior Functional Software Engineer (with Clojure Experience a must have)
Reports to: Senior Software Engineering Manager
About the role:
We are looking for a Software Engineer with a minimum of 5 years of experience to join our team. You will build and maintain backend services using Java Spring Boot (or similar frameworks), contribute to event-driven microservice architectures, and apply engineering best practices such as Test-Driven Development (TDD). You’ll work closely with cross-functional teams to deliver a platform that is robust, scalable, and secure. Experience with Clojure is an added advantage
Contribution & Impact:
This role directly impacts the organization’s strategic goals by modernizing and scaling the core product platform. Your output will be the creation of high-performing, resilient services that drive business capabilities, significantly improving platform stability and enabling faster feature delivery to our customers. Experience with functional programming, particularly Clojure, will provide an immediate advantage in evolving our current technology stack.
Key responsibilities:
1.Backend Development
 Design, develop, and maintain high-performance backend services using Java Spring Boot (or similar frameworks) and Clojure.
o Adhere to clean code principles and industry best practices in all development efforts.
o Ensure code quality through pair programming, code reviews, and other collaborative development methods.

2. Event-Driven Architecture
o Implement and maintain event-driven systems using message brokers (e.g., Kafka, RabbitMQ, or cloud-native equivalents).
o Work on publish/subscribe patterns and streaming data pipelines to ensure real-time data processing and system responsiveness.
o Optimise event flow for performance and scalability.

3. Test-Driven Development (TDD)
o Apply TDD principles throughout the software development lifecycle to deliver robust, maintainable solutions.
o Write comprehensive unit tests, integration tests, and end-to-end tests.
o Ensure high test coverage and effectively diagnose, document, and fix bugs.

4. Architecture and Design
o Collaborate with architects and senior engineers to define microservices architecture and component interaction.
o Partner with senior engineers, solution architects and principal engineers to shape and execute on the technical strategy for your area.
o Contribute to architectural discussions and decision-making processes, ensuring scalability, security, and maintainability of solutions.
o Integrate best practices for secure coding, data privacy, and compliance.

5. Performance Optimization
 o Monitor system performance and reliability, identify bottlenecks, and implement solutions for performance tuning.
o Conduct profiling, load testing, and implement caching strategies to enhance system response times.
o Work closely with the platform engineering team to optimize CI/CD pipelines for quick and reliable deployments.

6. Collaboration and Leadership
o Mentor junior engineers on best practices, coding standards, and new technologies.
o Collaborate with product managers as well as QA and platform engineers 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.

Preferred Qualifications:
Exposure to Clojure or other functional programming languages.
• Hands-on experience with Docker and container orchestration platforms (e.g., Kubernetes).
• Experience with cloud platforms (AWS, Azure, GCP) for deploying and scaling services.
• Familiarity with monitoring and observability tools (e.g., Prometheus, Grafana, ELK stack).
• Knowledge of serverless computing environments.

The ideal candidate is someone who:
Is an architectural driver: Functions as a self-driven leader capable of owning projects end-to-end, from initial design to robust production-ready deployment.
● Thrives under pressure: Excels in a fast-paced, high-volume environment, viewing complex technical challenges as opportunities for innovative solutions.
Champions quality: Is a staunch advocate for Test-Driven Development (TDD) and applies clean code principles to ensure high test coverage and long-term stability.
● Breaks down complexity: Proactively identifies and breaks down ambiguous architectural and performance problems into actionable, testable components.
● Is a technical mentor: Uses their deep expertise to provide mentorship and elevate the performance, standards, and technical knowledge of the entire engineering team.
● Embraces evolution: Is passionate about the future of the stack, eager to explore and integrate new technologies like Clojure and cloud-native tools while maintaining stability in the core Java platform
 

teams

Share This Job

Powered by