EMC Insurance Companies is committed to teamwork and making an impact. The Software Engineer III will design and maintain applications, lead cloud environment optimizations, and ensure efficient integrations with enterprise systems while collaborating with product teams.
Responsibilities:
- Develops, configures, and implements within multiple complex, inter-related systems, using modern programming techniques, frameworks, and tools while adapting to evolving technologies and team needs
- Leads the design, deployment, and continuous optimization of cloud-hosted environments, ensuring alignment with best practices for scalability, security, and performance
- Develops and maintains N-tier application structures, independently coordinating between presentation, business, and data layers
- Collaborates with and provides guidance to other areas of IT to ensure that interfaces to complex enterprise and third-party applications are executing efficiently
- Designs and documents interfaces to complex enterprise and third-party applications
- Conceptualizes and develops new components and Application Programming Interfaces (APIs) and providing application support
- Proactively anticipates and provides guidance on potential impact to other systems
- Coordinates collaboration with product teams to ensure that company initiatives are met
- Designs, builds, and maintains CI/CD pipelines to streamline and automate the build, test, and deployment processes, ensuring efficient and reliable delivery
- Creates and maintains documentation related to the design of interfaces to complex enterprise and third-party applications, APIs and other assigned work and systems in accordance with departmental and team standards
- Participates in the creation of design and architecture documentation and in creating and maintaining standards and best practices documents
- Works with emerging technologies and designs solutions for business cases to determine applicability for future projects
- Guides product teams for assigned programs/applications through access control and security for various enterprise-wide software tools
- Develops, advocates, approves and guides effective testing plans using test-driven development
- Actively incorporates security protocols and data quality measures throughout the development lifecycle
- Builds strategy with product teams for remediation of issues with security and quality for assigned applications/programs
- Leads and reviews test results, production data and reports to ensure data quality and integrity
- Prepares test cases, tests and validates application configurations to meet business requirements, performance level, and availability thresholds
- Monitors the operation of assigned programs and responds to problems by diagnosing and correcting errors in logic and coding, and recommending corrections to other engineers
- Analyzes day-to-day functionality of assigned applications and serves as the main point of contact
- Diagnoses and resolves system issues, including verifying and reproducing complex problems
- Leads the process to implement long-term solutions and ensure system reliability, including collaborating with team members to develop solutions
- Monitors and analyzes system performance, identifying trends and areas for improvement. Proactively implements adjustments to maintain compliance with standards, policies, and procedures while minimizing downtime
- Serves as a technical resource and trains other team members on programming techniques and system functionality
- Develops and maintains positive customer relationships with internal and external contacts
- Evaluates current processes and recommends changes
- Serves as a technical resource to product teams in latest technology, standards and processes
Requirements:
- Bachelor's degree, preferably in a computer related field or equivalent related experience and five years of programming experience in techniques and languages such as C#, Java, or Python
- Master's degree, preferably in a computer related field or equivalent related experience and three years of programming experience in techniques and languages such as C#, Java, or Python
- Strong knowledge of object oriented programming concepts
- Strong knowledge of relational databases and data modeling
- Strong knowledge of cloud services
- Strong knowledge of web development
- Strong knowledge of REST architecture
- Strong knowledge of source code control
- Strong knowledge of test-driven development
- Excellent human relations and customer service skills
- Thorough attention to detail, organizational and multi-tasking skills
- Strong verbal and written communication skills, including documentation
- Excellent analytical and problem-solving abilities to identify problems and implement effective solutions
- Ability to work after hours on call as needed
- Prior experience with AWS
- Good knowledge of Agile development