Software Engineer II
ESSENTIAL DUTIES AND RESPONSIBILITIES
Following is a summary of the essential functions for this job. Other duties may be performed, both major and minor, which are not mentioned below. Specific activities may change from time to time.
1. Develop customized coding, software integration, perform analysis, configure solutions, using tools specific to the project or the area.
2. Lead and participate in the development, testing, implementation, maintenance, and support of highly complex solutions in adherence to company standards, including robust unit testing and support for subsequent release testing.
3. Build non-functional monitoring capabilities and provide escalated support for highly complex applications in production.
4. Build in and maintain security controls and monitoring in support of company standards.
5. Typically lead moderately complex projects and participate in larger, more complex initiatives.
6. Solve complex technical and operational problems. Act as a resource for teammates with less experience
7. May oversee the work of a small team.
8. In an Agile environment: Responsible for delivering high quality working software and automating manual/reusable tasks working directly, and engage with, the business from the beginning of the design work. Leverage continuous engineering practices to deliver business value regarding effectiveness of the design. Actively participate in refining user stories. Responsible for design, developing, and maintaining automated unit testing, and supporting integration and functional testing. Responsible for providing automated monitoring capabilities, providing warranty support, and providing knowledge transfer to production support. Develop code in accordance with the acceptance criteria established by the Product Owner.
The requirements listed below are representative of the knowledge, skill and/or ability required. Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions.
1. Bachelor’s Degree and six to ten years of experience or equivalent education and software engineering training or experience
2. In-depth knowledge in information systems and ability to identify, apply, and implement best practices
3. Understanding of key business processes and competitive strategies related to the IT function
4. Ability to plan and manage projects and solve complex problems by applying best practices
5. Ability to provide direction and mentor less experienced teammates. Ability to interpret and convey complex, difficult, or sensitive information
1. Master’s degree and ten+ years of experience or an equivalent combination of education and work experience
2. Knowledge of specific applications, technology platforms, programming languages, systems, or business segments
3. Banking or financial services experience.
4. Knowledge of one or more of the following:
Solid foundation in data structures, algorithms, and software design with strong analytical and debugging skills
4. Professional experience building high-quality apps or services from the ground up and scaling at an enterprise level
5. Experience with Open Source tools and frameworks
6. Experience with cloud technologies, such as AWS, Azure, or GCP
7. Strong understanding of SOA and/or Open API methodologies and service architectures
8. Experience using web servers, application containers, caching technologies
9. Solid knowledge of relational database design and development (SQL, stored procedures, data modeling)
10. Experience with messaging systems (i.e., MQ and JMS)
11. Experience with build tools, such as Git, Maven, and Jenkins. Proven ability to write comprehensive unit and integration tests
- Data Analytics
- Net/C#, WebAPI, MVC, Unit Testing, TFS, Selenium
- Domain Driven Design / Test Driven Design, Micro Service
- Agile Scrum Team
- Azure DevOps CI/CD Pipeline
*Experience is a plus