Software Engineer
Job Description
Job Description
We are seeking a seasoned Full Stack Software Engineer with a strong background in backend engineering and proficiency in frontend development. The ideal candidate will have extensive experience in Java and Kotlin programming, a deep understanding of functional programming principles, and expertise in real-time data streaming with Apache Kafka. Additionally, proficiency in UI programming using either React or Angular is essential.
Key Responsibilities
- Kafka Expertise: Develop and maintain data streaming solutions using Apache Kafka. Ensure the seamless integration of Kafka with other systems.
- Backend Development: Design, develop, and maintain robust and scalable backend systems using Kotlin and Java
- Develop and maintain user interfaces using React or Angular, collaborating with UI/UX designers to implement responsive and intuitive designs, ensuring their technical feasibility, and optimizing applications for speed and scalability.
- Java Development: Write clean, maintainable, and efficient Java code. Lead the development of key components and services.
- Collaboration: Work closely with product managers, software engineers, and other stakeholders to deliver high-quality software solutions.
- Performance Tuning: Identify and address performance bottlenecks in the system. Implement solutions to enhance system performance and scalability.
- Monitoring and Troubleshooting: Implement monitoring and logging solutions to ensure the health and performance of applications. Troubleshoot and resolve issues as they arise.
- Continuous Improvement: Stay up-to-date with the latest industry trends and technologies. Continuously seek opportunities to improve existing processes and solutions.
We are looking for candidates with a proven performance track record with the following:
Required Qualifications:
Education: Bachelors or Master's degree in Computer Science, Engineering, or a related field.
Experience: Minimum of 6+ years of experience in application architecture and software development.
Technical Skills:
- Proficiency in Java: Strong understanding of Java SE and EE, including multithreading, concurrency, and design patterns.
- Frameworks: Experience with Spring, Spring Boot, Hibernate, and JPA.
- JavaScript/TypeScript: Proficient in modern JavaScript (ES6+) and TypeScript.
- UI/UX Principles: Knowledge of responsive design, cross-browser compatibility, and web accessibility standards.
- Event-Driven Architecture and Kafka: In-depth knowledge of Apache Kafka, including setup, configuration, partitioning, replication, producers, consumers, and Kafka Connect.
- Experience with Kafka topic design, retention policies, and offsets management.
- Ability to design and implement stream processing applications using Kafka Streams DSL (Domain Specific Language) and Processor API.
- Solid understanding of microservices architecture and RESTful API design.
- Experience with CI/CD pipelines and tools (e.g., Jenkins, GitLab CI).
- Familiarity with cloud platforms (e.g., AWS, GCP, Azure) is a plus.
Soft Skills:
- Excellent problem-solving and analytical skills.
- Strong communication and interpersonal skills.
- Ability to work effectively in a team-oriented environment.
- Demonstrated ability to lead and mentor junior engineers.
