Essential Duties/Responsibilities
- Maintaining and troubleshooting production systems which are supporting internal and external customers
- Takes part in production systems evaluation and software-support troubleshooting
- Producing documentation to support other developers and internal teams within Cofense
- Generating test cases and producing a testable and tested software product
- Staying current with the latest techniques and tools used within the software development industry
- Understanding the approach and design decisions and creating an implementation that supports overall design
- Working with other engineers on the team, particularly more junior engineers through pair programming, open communications, and collaboration
- Actively participate in both Agile and Waterfall development life-cycle(s), including planning and grooming, stand-up, and retrospectives
- Proactively perform code reviews, give feedback, and ask questions
- Expeditiously resolve software bugs with appropriate criticality
- Other duties as assigned
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 as well as designing indexes and search clusters for efficient search across massive data sets.
- Knowledge and experience using PHP
- Knowledge and experience using HTML
- Knowledge and experience using CSS
- Knowledge and experience using Jquery
- Knowledge and experience using MariaDB
- Ability to comfortably do full stack development from backend systems to user interfaces as necessary.
Education and/or Experience:
- Bachelor’s Degree preferred.
- Experience and comfort developing large scale distributed applications using Java (core, concurrency, threading)
- Knowledge and experience using Spring and Hibernate
- Knowledge and experience in web development and PHP
- LMS development experience a plus
- Experience with Moodle plugins a HUGE plus
- Experience working with RESTful APIs with data validation techniques