In-depth knowledge of Java programming language, object-oriented design principles, design patterns and Java frameworks such as Spring Boot, Spring Batch, and Spring Cloud Stream, or others commonly used in enterprise-level applications. Proven experience with databases, both relational databases and no relational database such as MySQL and MongoDB and writing optimized queries.