Java Software Engineer Job Description Template
Our company is looking for a Java Software Engineer to join our team.
Responsibilities:
- Write source code, adapt existing components, and test the developed components as units;
- Ability to translate business requirements into functional requirements documentation;
- 5+ years experience with Java;
- Conduct code reviews and mentor any junior team members in the team;
- Ability to work with distributed teams in a dynamic, iterative development process;
- Designand develop the software solutions like APIs, Applications;
- Identify issues and escalate risks to project leadership, as necessary;
- Participate in design and code reviews;
- Identify opportunities to migrate in part or whole solutions to new architectures and technology while delivering new business functionality;
- Maintain established service level agreements to meet customer expectations and quality standards;
- Define, develop, communicate and implement standards, processes and procedures for the department;
- Design, implement and maintain web services to interface with external business partners;
- Lead migration of applications to quality assurance and/or production environment;
- Occasional overnight travel to other Trustwave offices in the U.S. may be required;
- Collaborate with Product Management to and identify, prioritize and document detailed product requirements.
Requirements:
- Experience with Kafka desirable;
- Excellent foundation in data structures, algorithms, object-oriented programming, MVC architecture, and design patterns;
- Familiarity with architecture styles/APIs (REST, SOAP, RPC);
- Commitment to and hands-on experience in performing technical code reviews;
- Experience with Linux (CentOS) is a plus;
- Advanced knowledge of application, dataand infrastructure architecture disciplines;
- 3+ years of software development experience;
- C, C++, Java and Java EE development experience;
- Ability to work well with people, be highly self-motivated and motivating to others;
- Ability to present, define, communicate and defend design;
- At least 3 years of Java development experience.Various levels of positions from 3-10+ years of experience;
- Experience with application frameworks such as Vert.x or Spring;
- Understanding of architecture anddesign across all systems;
- Experience with distributed caching systems like Redis or Memcache;
- Experience with Docker and Kubernetes.