Senior Software Engineer
Job Description Summary
The primary objective of our Senior Software Engineer is to participate in the design, development and maintenance efforts of CCC’s applications. This individual leverage their knowledge of analysis, design, coding, testing, and maintenance of software applications to develop, enhance, and modify CCC applications. The Java J2EE Senior Software Engineer is expected to assist with the conceptualization of software solutions at both the unit level, i.e.. program module, and at the system level, i.e.. integrated applications. This individual demonstrates an understanding of the latest development environments including development tools and applications.
- Designs/codes and tests Java EE applications
- Develops detailed technical analysis and design specifications based on functional requirements
- Prioritize, assign and execute tasks throughout the software development life cycle
- Participates in functional and technical specification reviews
- Delivering high availability and performance
- Participates in creating and executing unit and integration level test plans
- Problem-solving abilities, Triaging defects, impact analysis, resolution planning and implementation.
- Collaborates closely with engineers, business analysts, product owners and other team members
- 5+ years’ experience developing Java/J2EE applications.
- Experience utilizing technologies including: Java, J2EE, JBOSS, WebLogic, JAXB, SQL, JDBC, jQuery, AngularJS, HTML, CSS, AJAX, JSF, Spring, Hibernate, EJB
- Strong background in SOAP & REST web service development
- Experience in Java, Spring Boot and Microservices
- Strong understanding of Java best practices, system scalability, and performance tuning.
- Good understanding of design patterns: GoF, JEE design patterns and EAI patterns.
- Familiar with database concepts, Oracle SQL and pl/sql
- Experience with enterprise messaging systems (queues, messages, etc.)
- Eclipse, IntelliJ IDEA
- Experience in Atlassian Suite; Jira, Confluence, Bitbucket
- Experience in code versioning tools such as GIT, SVN
- Experience in build tool Maven
- Hudson (Jenkins) or other Continuous Integration technologies
- Experience working in Agile environments
- Test Driven Development
- Experience utilizing technologies NoSql DB
- Experience in using ActiveMQ for enterprise messaging
- Experience in cloud computing technologies (SaaS / IaaS / PaaS).