We are on the lookout for an experienced Senior Java Developer to join our development team in Sofia. In this role you will be at the heart innovating the smart living domain by solving complex engineering challenges and shaping the future of intelligent homes. Together we will scale our platform from a prototype designed for early adopters to a robust, large-scale production deployment.
You will work with the latest technologies and gain access to next-gen home IoT devices, Generative AI models, Edge AI hardware and cloud services. We are looking for a highly skilled, autonomous, and initiative-taking professional with significant experience in developing enterprise-grade solutions with the latest technologies in the Java ecosystem.
Responsibilities
- Build our AI-driven home management platform by participating in the entire development process, from initial concept creation to full-fledged implementation
- Produce clean, maintainable, scalable and efficient code
- Develop and manage services within a microservices and event-driven architecture, ensuring our platform's scalability, reliability, and seamless operation
- Apply your knowledge in messaging systems, especially MQTT, enhancing the asynchronous communication within our platform
- Participate in the DevOps practices within the team, including CI/CD pipeline enhancements, scripting and container environment modifications
- Extend and implement automated tests, contributing to the overall stability and reliability of the platform
- Optimize the performance of key components of the platform
- Assist in assessing promising technologies
- Provide technical support to the Product Managers for defining and clarifying business requirements
- Create and maintain comprehensive technical documentation, including architecture diagrams, design specifications, and developer guidelines
- Contribute to the continuous improvement of our application development lifecycle
Qualifications and Skills
To be successful in this role, we believe a mix of technical and soft skills is required. Below, you can see what we think are the characteristics of the 'ideal candidate':
- Programming expertise: 7 or more years of experience in Java (including Java 17+), preferably in complex application development. Experience with popular development frameworks like Spring Boot, Spring Data, Spring Cloud and Project Reactor. Ability to troubleshoot complex issues in Java. Exposure to Kotlin and Python is a plus.
- Strong OOP experience: In-depth knowledge of object-oriented programming principles and their practical application in Java for creating clean, modular, and maintainable code.
- Microservices expertise: Practical experience in building and managing microservices, with a solid understanding of microservice and event-driven architectures.
- Messaging platforms expertise: Hands-on experience with messaging platforms, especially MQTT and Kafka. This includes integrating and managing these platforms within a distributed system.
- Databases: Solid experience with relational databases like MySQL, PostgreSQL and an understanding of data modelling and optimization. Familiarity with graph and time series databases like Neo4J and InfluxDB is a plus.
- Linux/Unix expertise: Strong experience with Linux/Unix environments, comfortable with shell scripting and command-line utilization, and basic system administration knowledge.
- Automated testing skills: Solid experience with automated testing practices and frameworks like JUnit, Mockito and Spring Test. Some experience with performance tests of backend services with tools like Apache JMeter, Gatling or similar is a plus.
- DevOps skills: Some experience with DevOps practices, including CI/CD, Docker containerization & Kubernetes. Experience with Azure cloud services is a plus.
- AI/ML background: Some experience in AI/ML, through academic, project-based, or personal interests, especially related to Smart Home technologies and automation, is a plus. Interest in collaborating with our AI Engineering team to productize the results of their research.
- Smart Home & IoT technologies: Keen interest in Smart Home and IoT technologies, with a desire to create innovative smart living solutions. Experience in these areas is a big advantage.
- Independence and initiative: Ability and willingness to work independently, to proactively confront challenges, and to adapt to rapidly changing project demands.
- Communication skills: Very good verbal and written communication skills, with the ability to clearly articulate technical concepts, problem statements and solutions to diverse audiences, including non-technical stakeholders.
- Problem-solving and analytical thinking: Strong analytical and problem-solving abilities, with a passion for identifying issues and for conceptualizing, evaluating and implementing solutions.
- Language skills: Excellent English language skills, both verbal and written