Sr Software Engineering, Back-End JAVA

Job summary:
The primary purpose of this role is to translate business requirements and functional specifications into logical program designs and to deliver code modules, stable application systems, and software solutions. This includes developing, configuring, or modifying complex integrated business and/or enterprise application solutions within various computing environments. This role facilitates the implementation and maintenance of complex business and enterprise software solutions to ensure the successful deployment of released applications.

Responsibilities:
• Translates complex cross-functional business requirements and functional specifications into logical program designs, code modules, stable application systems, and software solutions; partners with Product Team to understand business needs and functional specifications
• Collaborates with cross-functional teams to ensure specifications are converted into flexible, scalable, and maintainable solution designs; evaluates project deliverables to ensure they meet specifications and architectural standards
• Guides application and software development teams in the design and build of complex solutions and ensures that teams are in alignment with the architecture blueprint, standards, target state architecture, and strategies
• Coordinates, executes, and participates in component integration (CIT) scenarios, systems integration testing (SIT), and user acceptance testing (UAT) to identify application errors and to ensure quality software deployment
• Participates and coaches others in all software development end-to-end product lifecycle phases by applying and sharing an in-depth understanding of complex company and industry methodologies, policies, standards, and controls
• Has a solid grasp of software design patterns and approaches; understands application-level software architecture; makes technical trade-off decisions at the application level
• Automates and simplifies team development, test, and operations processes; develops detailed architecture plans for large scale enterprise architecture projects and drives the plans to fruition
• Solves complex architecture/design and business problems; solutions are extensible; works to simplify, optimize, remove bottlenecks, etc
• Provides mentoring and guidance to more junior level engineers; may provide feedback and direction on specific engineering tasks

Minimum qualifications:
• Bachelor’s degree in Computer Science, CIS, or related field (or equivalent work experience in a related field)
• 5 years of experience in software development or a related field
• 4 years of experience in database technologies
• 4 years of experience working on project(s) involving the implementation of solutions applying development life cycles (SDLC)

Preferred qualifications:
• Master’s degree in Computer Science, CIS, or related field
• 5 years of IT experience in systems analysis, including defining technical requirements and performing high-level design for complex solutions
• 4+ years’ experience with Java, Spring boot and spring batch
• 4+ years’ experience building microservices
• Good understanding of OOP, design patterns, database (Postgres or Oracle), data streaming (Kafka)
• 1+ years’ experience with DevOps practices and building CI/CD pipelines.
• Experience with CI/CD tools (Git, Gradle, Sonar, Jenkins, JFrog etc.)
• Experience with testing frameworks (Junit, Mockito, Karate, Cucumber)
• Exposure to PCI-DSS and Secure coding best practices would be a plus.
• 2+ years working in an agile environment (Scrum or Kanban)
• 3 years of experience working with an IT Infrastructure Library (ITIL) framework
• 3 years of experience leading teams, with or without direct reports