Job Description
We are looking for a Java developer responsible for building Java applications. This includes anything between complex groups of back-end services and their client-end counterparts. Your primary responsibility will be to design and develop these applications, and to coordinate with the rest of the team working on different layers of the infrastructure. Thus, a commitment to collaborative problem solving, sophisticated design, and product quality is essential.
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
Skills And Qualifications
- Proficient in Java, with a good knowledge of its ecosystems
- Strong at Core Java / J2EE, Spring Framework, Restful Web services
- Multithreading, Design Patterns, and Data structures.
- Solid understanding of object-oriented programming
- Familiar with 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
- Experience with popular web application frameworks, such as Play and Spark
- Familiarity with Java GUI frameworks (such as Swing, SWT, and AWT depending on project requirements)
- 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