Principal Java Engineer

Job Location(s): US-Remote

Job ID: 2019-2056

Category: Engineering


Reporting to the Senior Director of Software Engineering the Principal Java Engineer is responsible for working with the architect to co-design and lead a newly formed development team, convey the architectural vision, and assist at all levels of development.

Essential Duties/Responsibilities

  • Define architecture and design patterns for Java applications in a manner that enables scalability.
  • Ensuring high standard of code integrity including unit tests, security, and documentation.
  • Mentoring team members in best practices through pair programming, code review, and open design/implementation discussions.
  • Work with Operations Team on Application Deployment Issues.
  • Participate in all phases of the development life-cycle this is a hands-on role.
  • 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.


  • Knowledge, Skills and Abilities Required
    • Knowledge and experience using relational database systems especially PostgreSQL and MySQL.
    • Ability to comfortably do full stack development from backend systems to user interfaces as necessary.
    • Collaborates well with others, capable of working constructively with a group of people that have different skill sets and interests.
    • Ability to take ownership of and effectively communicate design decisions at various levels.
    • Willingness and ability to mentor developers and recognize the need.
    • Ability to work independently and take initiative as a member of a dynamic and fast-moving team.
    • Knowledge and experience using AWS services, such as S3, RDS, and SQS preferred.
    • Has a knowledge of a variety of design patterns for high communication throughput and scaling techniques preferred.
    • Knowledge of Docker preferred.
  • Education and/or Experience:
    • Bachelor’s Degree is preferred.
    • Experience and comfort designing and developing large-scale distributed applications in a microservices architecture using Java (core, concurrency, threading).
    • Knowledge and experience using Spring and Hibernate.
    • Experience creating secure RESTful APIs with data validation.
    • Been an active member of an Agile team (running Scrum and Kanban) preferred.


  • U.S. Telecommute