Java, Software Engineer II

Reporting to the Manager of Software Engineering, the Software Engineer II is responsible for having ownership of major product components, the development process, and development methodology.

Knowledge, Skills and Abilities Required

  • Works well with others, capable of working constructively with a group of people that have different skill sets and interests. Effective at communication
  • Ability to work independently and take initiative as a member of a dynamic and fast-moving team.
  • Knowledge and experience using Spring and dependency injection in general.
  • Knowledge and experience using JPA / Hibernate.
  • Knowledge and experience using relational database systems especially PostgreSQL and MySQL.
  • Knowledge and experience using Elasticsearch as a developer..
  • Ability to comfortably do full stack development from backend systems to user interfaces as necessary preferred.
  • Working knowledge of HTML, CSS and JavaScript, TypeScript preferred.
  • Ability to work with remote, distributed teams
  • Ability to be on-call as part of the team’s rotating support schedule
  • Familiarity and experience with Agile process preferred
  • Linux OS system expertise for core concepts and subsystems preferred

Essential Duties/Responsibilities

  • Understanding the approach and design decisions and creating an implementation that supports overall design
  • Actively participate in our Agile development life-cycle, including planning and grooming, stand-up, and retrospectives
  • Proactively perform code reviews, give feedback, and ask questions.
  • Proactively seek guidance from Sr. members of the team during planning and task implementation.
  • Collaborate with multi-functional teams in multiple locations
  • Other duties as assigned

The above statements are neither intended to be an all-inclusive list of the duties and responsibilities of the job described, nor are they intended to be a listing of all of the skills and abilities required to do the job. Rather, they are intended only to describe the general nature of the job. This job description is not a contract of employment, either express or implied. Employment with Cofense will be voluntarily entered into and your employment is considered at will. Cofense reserves the right to alter the job description at any time without notice.

Education and/or Experience:

  • 3-5 years experience or more with 3-4 years of the technical competencies
  • Experience and comfort developing large scale distributed applications using Java (core, concurrency, threading)
  • Experience and comfort developing large scale distributed applications in a microservices architecture using Java (core, concurrency, threading)
  • Knowledge and experience using Spring and Hibernate
  • Experience working with RESTful APIs with data validation techniques
  • Experience with Infrastructure as Code (Terraform, Ansible)
  • Experience using AWS Services
  • Experience building services using Node.js preferred.

Cofense is committed to equal employment opportunity. We will not discriminate against employees or applicants for employment on any legally recognized basis [protected class] including, but not limited to: veteran status, uniform service member status, race, color, religion, sex (including pregnancy), gender identity, sexual orientation, national origin, age, physical or mental disability, marital status, genetic information or any other status or characteristic protected by applicable national, federal, state or local laws and ordinances. We adhere to these commitments in all aspects of employment, including recruitment, hiring, training, compensation, promotion, benefits, and discipline.


Uniting Humanity Against Phishing.

Technology we use