EMC Insurance Companies is committed to making an impact through teamwork and collaboration. They are seeking a Senior Software Engineer to lead the development and optimization of complex applications and systems, ensuring scalability, security, and performance while collaborating with various stakeholders.
Responsibilities:
- Leads the development, configuration, and implementation of solutions within multiple complex, inter-related systems, employing advanced programming frameworks, tools, and techniques to deliver scalable and maintainable applications
- Architects, deploys, and continuously optimizes cloud-native and hybrid environments, implementing strategies to maximize scalability, security, reliability, and cost-efficiency
- Oversees the design and management of N-tier application structures, ensuring seamless integration and performance across presentation, business, and data layers while service as a subject matter expert to team members in best practices
- Collaborates with IT stakeholders to resolve complex challenges, ensuring interfaces with enterprise and third-party applications execute securely and efficiently
- Designs and implements modular, reusable components and APIs, proactively addressing cross-system dependencies and ensuring robust application support
- Serves as a technical representative of assigned programs/applications and partners with product teams to align technical solutions with business objectives, balancing short-term deliverables with long-term architectural goals
- Builds and manages CI/CD pipelines, introducing advanced automation techniques and tools to improve quality, reduce cycle times, and enhance deployment reliability
- Authors and maintains comprehensive documentation for interfaces, APIs, and system designs, ensuring alignment with organizational standards and facilitating knowledge sharing
- Participates in the defining of coding, design, and architecture standards while contributing to team-wide best practices to promote innovation and maintain system integrity
- Leads product teams in implementing robust access control and security measures for various enterprise-wide software tools
- Develops and enforces testing strategies, leveraging test-driven development and automated testing frameworks to ensure system reliability and maintainability
- Designs security protocols, including encryption or password protection, and ensures appropriate application to systems
- Collaborates with product teams to prioritize and address security vulnerabilities and quality concerns, driving the remediation of identified issues
- Creates and executes comprehensive test plans, ensuring configurations meet business requirements, scalability needs, and compliance standards
- Plans and guides a strategy with product teams about remediation of issues with security, data quality and integrity of systems
- Guides and serves as a technical expert to team members on advanced programming techniques, system functionality, and best practices
- Evaluates and refines team processes, advocating for improvements that enhance efficiency, collaboration, and quality
- Provides leadership and guidance to product teams in latest technology, standards and processes
- Builds strong partnerships with product owners, architects, and other stakeholders, providing technical insights to align development efforts with business goals
- Evaluates and pilots emerging technologies, tools, and frameworks to assess potential impact on existing systems, development processes, and business goals, providing recommendations for adoption
- Collaborates with product teams and Solution Architects to design and implement proof-of-concept solutions that demonstrate the feasibility and value of new technologies in addressing business challenges
- Serves as a technical expert and resource to team members on the effective use of newly adopted tools and technologies
- Leads the implementation of monitoring and alerting tools, providing expertise in observability practices to ensure early detection and resolution of potential issues
- Diagnoses and resolves intricate system issues, reproducing and verifying problems, and collaborating with stakeholders to implement robust, long-term solutions
- Leads efforts to monitor and maintain the reliability of assigned programs, diagnosing and correcting complex errors in logic and coding, and providing guidance to other engineers on resolving issues
- Continuously monitors and analyzes system performance, identifying trends, bottlenecks, and areas for improvement. Proactively implements optimizations to enhance reliability, scalability, and compliance with standards
- Contributes to post-incident reviews and shares insights to prevent future occurrences, fostering a culture of continuous improvement and operational excellence
Requirements:
- Bachelor's degree, preferably in a computer related field or equivalent related experience and eight years of programming experience in techniques and languages such as C#, Java, or Python OR
- Master's degree, preferably in a computer related field or equivalent related experience and six years of programming experience in techniques and languages such as C#, Java, or Python
- Excellent knowledge of object-oriented programming concepts
- Excellent knowledge of relational databases and data modeling
- Excellent knowledge of cloud services
- Advanced knowledge of web development
- Excellent knowledge of REST architecture
- Excellent knowledge of source code control
- Strong knowledge of Agile development
- Excellent 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
- Superior 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