About Us:
Apica is a leading provider of innovative software solutions in the Observability space, designed to revolutionize how businesses gain insights into their systems and applications. We are dedicated to delivering cutting-edge products that streamline processes and enhance user experiences. Our mission is to empower organizations to thrive in the digital age through intuitive and visually compelling software.
Job Description:
We are seeking a talented and passionate Senior Java Developer to join our dynamic team at Apica. In this role, you will be a key contributor to our software development team, responsible for designing, developing and maintaining robust and scalable applications. You will work closely with cross-functional teams to deliver high-quality software solutions that meet our customer’s needs and contribute to the growth of our business.
If you are a passionate and experienced Senior Java Developer looking to make a significant impact in a dynamic and collaborative environment, we would love to hear from you. Apply now and join us in shaping the future of Observability space.
Key Responsibilities:
- Collaborate with cross-functional teams to define, design, and ship high-quality software solutions.
- Develop, test, and maintain high-performance and scalable Java applications using Core Java, Spring Boot, Spring Framework and other relevant technologies.
- Design and implement RESTful APIs, ensuring seamless integration between different services.
- Work with messaging systems like Kafka for real-time data processing and communication.
- Containerize applications using Docker/Podman for efficient deployment and scalability.
- Work with CI/CD pipelines using Maven, JUnit and GitHub Actions to automate and streamline the development and deployment process.
- Write unit tests and integration tests to ensure the reliability and robustness of the codebase.
- Troubleshoot, debug, and optimize application performance as needed.
- Keep up-to-date with industry trends and contribute to the continuous improvement of development processes and technology stack.
Requirements:
- Bachelor’s or Master’s degree in Computer Science, Software Engineering or a related field (or equivalent work experience).
- Proven experience as a Senior Java Developer or similar role.
- Proficiency in Core Java, Spring Boot, Spring Security, Spring Framework.
- Experience with messaging systems like Kafka for real-time data processing and communication.
- Experience with RESTful APIs and web services.
- Familiarity with relational and NoSQL databases (e.g., MySQL, PostgreSQL, MongoDB).
- Solid understanding of containerization with Docker/Podman and orchestration with HashiCorp Nomad/Kubernetes.
- Experience with CI/CD practices and tools such as Maven, GitHub Actions, TeamCity, and JIRA.
- Knowledge of version control systems (e.g., Git).
- Understanding of software development principles and design patterns.
- Understanding of microservice architecture and event driven architecture.
- Strong knowledge of testing frameworks, especially Junit and Mockito.
- Familiarity with agile development methodologies.
- Excellent problem-solving and debugging skills, attention to detail, and the ability to work collaboratively in a team environment.
Nice-to-Have Skills:
- Experience with cloud platforms (e.g., AWS, Azure, Google Cloud).
- Familiarity with server-side scripting languages like Python, Go.
- Experience with Spring Webflux and Vert.x framework in building reactive applications.
- Familiarity with various network protocols.