Bachelor’s degree or foreign equivalent in Computer Science, Engineering, Information Technology, or a related field and 6+ years of progressive experience. Alternatively, a Master's degree or foreign equivalent in Computer Science, Engineering, Information Technology, or a related field and 4+ years of progressive experience. 4+ years of professional experience with Java frameworks such as Spring, Struts, Hibernate 4+ years of professional experience with relational databases (MySQL and/or Oracle) Deep understanding of data structures, algorithms, and system design Experience making complex backend architecture design choices Passion for web technologies, and keeping up to date with new tools and techniques Experience with the full Software Development Lifecycle: frontend and backend web application development, implementing business logic, and developing user interfaces Ability to work with minimal technical supervision and supplemental engineering support, while responding efficiently to multiple program priorities Linux, Shell, and Perl scripting, writing, and executing UNIX commands, and utilizing Linux servers to debug, deploy code, install, and monitor software to be used in testing and production environments Experience with webservers including Apache and Nginx