The Software Engineer II is a full-stack developer proficient at working in all layers of complex software applications. This engineer works on an agile product development team as a hands-on contributor and collaborator who can become the "go to" person for features or components of IT Solutions. Designing, coding and debugging applications in various software languages. Software analysis, code analysis, requirements analysis, software review, identification of code metrics, system risk analysis, software reliability analysis. Object-oriented Design and Analysis (OOA and OOD). Software modeling and simulation. Performance tuning, improvement, balancing, usability, automation. Support, maintain and document software functionality. Integrate software with existing systems. Evaluate and identify new technologies for implementation. Maintain standards compliance. Implement localization or globalization of software. Undergraduate degree in computer engineering, computer science, information technology or a related discipline.
KNOWLEDGE & REQUIREMENTS
Highly motivated and a self-starter
Deep knowledge and experience with object oriented design principles and patterns
One or more server-side programming languages (Java with Spring Boot experience preferred)
One or more client-side programming languages (JavaScript React experience preferred)
Deep understanding and experience with unit/integration/load automated tests, experience with one or more testing framework, static and dynamic code analysis tools
Experience developing, deploying, and supporting REST services and microservices
Experience using cloud services for concepts such as storage and compute. Capable of applying infrastructure as code practices. Experience with AWS preferred.
Experience with relational databases.
Provides a positive impact on team: influences team decisions, mentors peers, drives innovation