Good understanding of OOP, knowledge of MVC architecture.
Understanding of algorithms and data structure.
Knowledge of version control systems (GIT).
Strong knowledge of JAVA.
Experience with sockets and multithreading.
Ability to write understandable and short code (KISS, DRY).
Experience with relational databases (PostgreSQL or MySql).
Ability to write complex SQL queries.