Text copied to clipboard!

Title

Text copied to clipboard!

Java Software Engineer

Description

Text copied to clipboard!
We are looking for a Java Software Engineer to join our dynamic team of developers. In this role, you will be responsible for designing, developing, and maintaining Java applications that are often high-volume and low-latency, required for mission-critical systems. Our ideal candidate is someone who possesses a deep understanding of Java and its ecosystems and is capable of writing clean, readable Java code. You will be part of a talented software team that works on projects that matter, contributing to the company's success by delivering software solutions that meet our clients' needs. Your primary responsibility will be to develop applications by coordinating with colleagues working on different layers of the infrastructure. Thus, a commitment to collaborative problem solving, sophisticated design, and product quality is essential. You will also be involved in the entire software development lifecycle, from concept and design to testing. This role requires a strong understanding of the latest industry trends and a forward-thinking mindset to ensure the applications you develop are future-proof and can evolve with our business needs.

Responsibilities

Text copied to clipboard!
  • Design, implement, and maintain Java applications that are high-volume and low-latency.
  • Contribute in all phases of the development lifecycle.
  • Write well-designed, testable, efficient code.
  • Ensure designs comply with specifications.
  • Prepare and produce releases of software components.
  • Support continuous improvement by investigating alternatives and technologies.
  • Participate in code reviews and provide feedback to peers.
  • Ensure the performance, quality, and responsiveness of applications.
  • Collaborate with a team to define, design, and ship new features.
  • Identify and correct bottlenecks and fix bugs.
  • Help maintain code quality, organization, and automatization.
  • Stay up-to-date with emerging trends in Java and software development.
  • Assist in the integration of applications with other enterprise systems.
  • Conduct software analysis, programming, testing, and debugging.
  • Manage Java and Java EE application development.
  • Drive best practices in software development.

Requirements

Text copied to clipboard!
  • Proven hands-on Software Development experience in Java.
  • Profound insight of Java and JEE internals.
  • Experience with web frameworks such as Spring MVC.
  • Experience with build tools such as Ant, Maven, and Gradle.
  • Familiarity with continuous integration.
  • Experience with test-driven development.
  • BS/MS degree in Computer Science, Engineering or a related subject.
  • Understanding of established software development life cycles.
  • Ability to write clean, readable Java code.
  • Experience with both external and embedded databases.
  • Understanding of JVM, its limitations, weaknesses, and workarounds.
  • Experience in developing web applications using at least one popular web framework.
  • Experience with Java GUI frameworks.
  • Knowledge of concurrency patterns in Java.
  • Familiarity with concepts of MVC, JDBC, and RESTful.
  • Experience with cloud services and APIs.
  • Understanding of code versioning tools, such as Git.
  • Excellent communication and teamwork skills.

Potential interview questions

Text copied to clipboard!
  • Can you describe your experience with Java and JEE internals?
  • How do you stay updated with the latest Java technologies and frameworks?
  • Can you walk us through a challenging Java project you've worked on?
  • How do you ensure your Java code is clean and maintainable?
  • What strategies do you use for debugging and fixing bugs in Java applications?
  • How do you approach test-driven development in your Java projects?
  • Can you explain your experience with continuous integration in Java development?
  • What is your experience with cloud services and APIs in the context of Java development?
  • How do you handle working on multiple projects with tight deadlines?
  • What is your approach to learning new technologies and frameworks in software development?