Summary
The Software Engineer is the individual that designs, plans, and implements application solutions. This is an important role, is hands-on, and requires supporting both the technology and its users. You will create, test, deploy, and support systems under your supervision including their maintenance and upgrades as required. You will often multi-tasks to provide day-to-day support of the production system as you complete your project work. You must have the technical skills and experience to troubleshoot issues, ensure code written is healthy, resilient, and secure. You are most effective in your role when you combine knowledge of business needs and technical skills to implement a business solution and provide a superior level of technical support that benefits the company.
Position Responsibilities
The following responsibilities are common within the Software Engineering team and apply specifically to your assigned technology solution area:
- Build, upgrade, maintain, and support Java based web solutions related to servicing customer
- Understand and develop rationale data models that underpin your applications in coordination with Data Analyst and Database Administrators
- Integrate web-enabled applications in an end-to-end fashion to ensure data integrity, business process fulfillment, and usability.
- Perform lifecycle planning for web enabled solutions ensuring requirements are clear and are supported within the Application design.
- Perform application development to produce well designed, testable, and efficient code that satisfies Business and functional requirements.
- Design, implement, and manage security, privacy, and data protection specifications within web enabled applications
- Create and maintain application development & administration documentation related to the systems and platforms in your area
- Perform additional duties to application services as needed
- Manage production issues and incidents and participate in problem and change management forums.
Responsibilities specific to the Security Program include:
- Recommend standards and practices for data encryption, data flow, and data governance within an applications design and development based on the organization's data classification criteria.
- Review and assess security and applications logs for indicators of compromise (IOCs) or other anomalous behavior within networks, applications or user profiles.
- Design security models into applications that can provide a least privilege authority level.
- Apply patches where appropriate and remove or otherwise mitigate known control weaknesses, such as unnecessary services or applications or redundant user accounts, as a means of hardening applications in accordance with security policies and standards.
Qualifications
A Software Engineer is expected to understand multiple disciplines and perform development across a variety of technical areas with increasing competency. All Software Engineers are required to have demonstrated minimum experience in the following areas depending on level:
- 3-8 years daily use in a small team environment of Java to build, test, and deploy web applications on Java containers using Eclipse or IntelliJ, Spring, Struts
- 2-6 years experience with REST and API services that integrate data between applications
- 1-4 years proficiency with relational databases including MySQL and Microsoft SQL Server
- Any experience working with AWS Application hosting and/or DevOps is preferred
Software Engineers specializing in System configurations and are required to demonstrate progressive experience and responsibility to configure, develop, unit test, deploy and support:
- Understanding and working with Java Beans central to Policy Administration, Billing, Claims, and Reinsurance process activities
- Refactoring Java Beans and their underlying classes to meet business requirements
- Configuration and loading of XML property files to support application features
- Configuration of the application using provided tools and techniques that are required by the vendor
Software Engineers specializing Middleware applications are required to demonstrate progressive experience and responsibility to configure, develop, unit test, deploy and support:
- 6-10 years developing data centric applications with a deeper understanding of relational databases
- Expanded understanding of scripting languages to programmatically evaluate data such as JavaScript, Perl, or Python for the purposes of mapping one source to another. E.g. database to user interface or xml data model to document production system
Education
- Technology certification such as OCAJP preferred
- Bachelors Degree in a technical field preferred
#ZR