Position: Senior Java Engineer
Company: ITFox.me
Experience required: 5y
English level: upper

Who We Are:
US company that provides automated tools that allow organizations to modernize COBOL applications to Cloud Native Solutions. Large Enterprises in Banking, Financial Services, and Insurance trust us with their Mainframe money.    

Who You Are:
You are a top-notch Java developer responsible for building and maintaining core Java based product. This includes complex groups of back-end services, language parsing algorithm and writing various text processing code.
 
Responsibilities
- Translate application storyboards and use cases into functional applications.
- Design, build, and maintain efficient, reusable, and reliable Java code.
- Ensure the best possible performance, quality, and responsiveness of the
applications.
- Identify bottlenecks and bugs, and devise solutions to these problems.
- Help maintain code quality, organization, and automatization.
- Participate in POCs (Proof of Concept)
- Provide system support, including on-call rotation, troubleshoot, and resolve complex issues.

Requirements and Skills   
- Top notch Java skills. Strong understanding of J2EE architecture.
- Solid understanding of object-oriented programming.
- Strong understanding of various design and architectural patterns.
- Skill for writing reusable Java libraries.
- Knowledge of concurrency patterns in Java.
- Familiarity with concepts of MVC, JDBC, and RESTful.
- Must have strong experience in Spring framework (Spring boot and Spring Batch)
- Must have ability to do Java performance analysis using Visual VM based or similar tool and identify issues using heap dumps.
- Knack for writing clean, readable Java code.
- Experience with both external and embedded databases.
- Understanding fundamental design principles behind a scalable application.
- Basic understanding of the class loading mechanism in Java.
- Creating database schemas that represent and support business processes.
- Basic understanding of JVM, its limitations, weaknesses, and workarounds.
- Implementing automated testing platforms and unit tests.
- Proficient understanding of code versioning tools, such as Git.
- Familiarity with build tools such as Ant, Maven, and Gradle.
- Familiarity with continuous integration
- Contribution to open-source projects is a big plus.
 

Other
Location: Remote with EST overlap