Sr. Java Software Engineer
NYC, NY / Winston Salem, NC - Hybrid
Full Time - USC / GC only
Position Summary : This position is for a Senior Software Engineer. The Senior Software Engineer is responsible for design and coding of enhancements, features, and defect fixes of existing applications; design and coding of new applications, provides 3
rd
level software SME support, and actively engages in overall system strategy and planning. The Senior Software Engineer works directly with Product and the Director of Product Engineering to ensure quality code deliverables are completed on time and in accordance with TCH Standards. The Senior Software Engineer also works closely with Operations and Technology to define and implement new features and ensure system resiliency.
Qualifications Required :
- Bachelor's degree or equivalent experience in the field of Computer Science, Information Systems, Computer Engineering or other related field
- 8+ years related IT development experience including analysis, design, development, documentation, implementation and testing of software systems in Java, JavaEE, and Spring Framework
- Expert in Test Driven Development, Test Automation
- Expert ability to implement Java EE design patterns such as MVC, Singleton, Facade, DAO, DTO, and Business Delegate in the development of n-Tier distributed Enterprise Applications
- Experienced in developing RESTful Web Services and integrated backend services
- Strong experience in Spring Framework and SpringBoot Architecture
- Expertise in complex system design and evaluating and proposing alternative software designs
- Thorough knowledge of secure development practices
- 3-6 years' experience in Agile / Scrum development methodologies and as part of a scrum team
- Sound RDBMS concepts and SQL skills (e.g. for troubleshooting)
- Strong analytical and problem-solving skills
- Ability to set priorities and handle multiple tasks and projects in a fast-paced environment
- DevOps - Build automation tools and experience in CI / CD pipeline software including Azure DevOps, GitHub, Jenkins, Maven, etc.
- Experience with the development of websites, web services, windows services, and console applications utilizing Microsoft Visual Studio 2019+
- Familiar with front end development using : Microsoft .Net Framework (4.6+), ASP.NET MVC, Web API and web forms, C# and VB.Net, Telerik Control Suites, HTML, CSS, JavaScript, REACT / Next.js, XML, Single Page App model
- Experienced and Capable team player with exceptional analytical, interpersonal, and communication skills. Highly motivated, enthusiastic and self-starter
- Experience developing, maintaining, and supporting large critical-infrastructure financial transaction processing applications, including strategic planning
Qualifications desired :
Payments / Banking / Financial Systems development background or knowledgeExperience with Opentext Fortify for Dynamic and Static code scans a plusBackground in OWASP and security standardsEssential Functions and Responsibilities :
Work with Product Management, Technology and Operations to create and maintain detailed functional and technical user stories for development and technical support purposesDevelop and test new functionality, enhancements and features, and perform defect fixes per Product direction in an Agile development environmentPerform Design and Code ReviewsComplete assigned development tasks on time and with high qualityQuickly troubleshoot issues and provide fixesContribute to development standards and assist with evaluation of others' workDevelop assigned product maintenance releases in accordance with prioritized lists of enhancements and defectsAssist in the architecture, design and prototyping of TCH application systemsEstimating work effort for projected development initiativesProvide SME technology support that addresses production incidents in a timely mannerAssist in defining and documenting support procedures as needed for Operational TeamsAssist in training team members and cross-functional resources in functionality and operation of the systemStay up to date with emerging technologies and apply them to improve development processes and software quality.Participate in technology strategy and planning initiativesEngage as a member of a scrum teamProvide 3rd party application supportProvide testing and implementation supportProvide SME support 7X24Communicate effectively with internal personnel at all levels and with vendors and external clients.Demonstrate high levels of professionalism and decorum.