Senior Software Engineer

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.

Apply via :

ezra.world