Position: Java Software Engineer for IoT/Data Streaming
Company: Art2Hire
Category: Java
Experience required: 3y
English level: intermediate

**Responsibilities include but are not limited to:**
Build the company IoT platform by integrating with different devices and sensors  
Build data transformation and enrichment pipelines for different time-series data from sensors 
Design and build API for Web/Mobile clients and data visualization tools  
Apply the best principles of software engineering 
Write well-documented, highly maintainable and performing code, with appropriate test coverage 
Investigate and resolve application issues, bottlenecks and inefficiencies
**Requirements:**
4+ years of software development experience 
Strong knowledge of Java and Spring Framework/Spring Boot
Experience working with NoSQL and SQL DBMS. 
Strong algorithmic background and OOP  
Experience in pub-sub messaging frameworks (commercial, open-source) like Kafka and RabbitMQ 
Experience with Kafka and designing and implementing event-driven architectures  
Experience with schema registry and schema evolution
Expertise in developing data producers and consumer API’s
Experience in reactive programming 
Experience in RESTful API design and development
Experience with CI/CD processes 
Experience working with IDEA, GIT, Atlassian Suite (JIRA, Confluence, Bitbucket) 
Knowledge of Agile / Scrum or Kanban
English - Intermediate+
**Would be a plus:**
Knowledge of Go and/or Scala 
Interest in the field of IoT: embedded programming, distributed systems, microservices architecture, infrastructure automation, edge processing, fleet observability, or wireless communications  
Practical experience with AWS/GCP