Software Engineer develops, implements, and maintains software solutions that enable business operations to achieve company goals and objectives. The incumbent is responsible for designing, developing, and supporting high-impact software applications, including event-driven architecture and distributed systems. They work on complex engineering initiatives that require strong technical expertise, strategic solution design, and system architecture development.
In addition to hands-on development, Software Engineer serves as a technical leader, providing mentorship and guidance to less experienced peers. They have the authority to assign tasks, review work products, and ensure engineering best practices are followed. The incumbent collaborates with enterprise architects, product managers, and business stakeholders to develop scalable, high-performance solutions while helping define and enforce software development standards.
This role also demands strong managerial and people skills, as Software Engineer is expected to foster cross-team collaboration, technical mentorship, and architectural leadership.
Responsibilities
The candidate will provide analysis, design, coding, debugging, testing, and support of software applications.
- Works with the Agile Program Manager (APM), Digital Product Manager (DPM), and Business Systems Analyst (BSA) to accurately capture stakeholder requests and system specifications and translate them into engineering artifacts, which typically include design specifications, source code, test scripts and test results.
- Coordinates with software architects and Software engineer IVs to ensure that the engineering realization is in accordance with Enterprise Architecture principles and software development best practices.
- As part of Agile teams, completes software development work which includes application design, coding, code review and testing. Keeps Agile team and APM apprised of project status.
- Offers suggestions to stakeholders on devising effective and efficient approaches to achieve project and program objectives.
- Manages engineering risks by proactively tracking and communicating issues and devising methods to mitigating them.
- Liaises with other project and program areas to coordinate interdependencies and resolve issues.
- Supports business units in the resolution of in-depth user questions and issues following production support process and SLA’s.
- Maintains a working knowledge of new technology and software engineering standards, practices and tools.
- Provides input to APM/DPM in creation of Product Roadmap, High Level Estimates
- Collaborates with IT management to define and develop documentation & engineering artifact standards, guidelines, processes, and templates.
Qualifications
- Experienced developers with at least 7+ years in software development
- Experience in Java
- Event Driven Architecture experience specifically using Azure Event Hubs
- Angular
- Excellent analytical, problem solving and organizational skills.
- Ability to learn new business concepts and technology.
- Ability to understand data modeling (conceptual, logical and physical) and database design concepts.
- Knowledge and experience using agile software development principles, process, and tools.
- Full Stack Developer.
- Event-Driven Architecture & Messaging Systems: Azure Event Hubs, Kafka, RabbitMQ, or equivalent event-driven technologies.
- Programming Languages: Java, .NET C#, TypeScript
- Back-End Development: Scalable, high-availability systems using PostgreSQL, Oracle, SQL Server, MongoDB, Redis.
- Cloud & DevOps: Azure (preferred), AWS, or GCP; Docker, Kubernetes, Terraform, CI/CD (Jenkins, GitHub Actions, Octopus Deploy).
- Software Architecture: Event-driven design, domain-driven design (DDD), microservices, RESTful APIs, GraphQL.
- Monitoring & Logging: Dynatrace, OpsGenie, Prometheus, Splunk.
- Infrastructure Automation: Ansible, Terraform, Helm.
- Development Tools: Git, JIRA, Confluence, Bitbucket, IntelliJ, Visual Studio Code.
- Excellent command of the English language – ability to write and present technical concepts clearly.
Education:
- Required knowledge & skills would typically be acquired through a bachelor’s degree in computer science or related field.