Participate in the analysis, solution, development and deployments for moving a legacy application into Azure cloud and creating microservices. Candidate should be experienced with enterprise applications, including creating detailed program design specifications for high complexity user interfaces, application enhancements, new functionality and backend processes in collaboration with customers, Business System Analysts and other product team members.
- •Bachelor’s degree in Computer Science, Computer Engineering, Technology, Information Systems (CIS/MIS), Engineering or related technical discipline, or equivalent experience/training
- 5 years of Software Development Life Cycle (SDLC) experience
- 5 years of full stack Java experience
- 3 years of experience with Azure Cloud, practical experience in refactoring legacy applications for cloud migration
- Exposure to cloud-based deployments, CI/CD deployment pipeline
- Experience working with Selenium
- Demonstrated experience in the following:
- Strong coding skills and concepts in Java
- Java EE Technologies, Spring Framework, Micro services Architecture, Service Oriented Architecture (SOA), JDBC, JNDI, JTA/JTS, JMS
- Web Servers & Application Servers IBM WebSphere/Tomcat/tcServer
- Integration & Collaboration Tools Subversion, GIT
- Web Services WSDL, SOAP, JAX-WS, XML RPC, JAXB, RESTWS
- Java Database Frameworks - Hibernate, Java Persistence API (JPA)
- Relational databases and SQL like Oracle RDBMS or SQL Server.
- Messaging Layer – RabbitMQ, IBM MQ
- Experience with developer testing practices (i.e. JUnit, etc.) and understands the differences between unit, functional and system tests. Experience with TDD a plus
- Experience with Agile software development methodologies
- Experience with and is willing to initiate sharing knowledge with others
- Ability to quickly learn and practically apply new concepts or principles which can be confirmed by experience
- Experience supporting a production application.
Major Job Duties and Responsibilities:
- Develops and modifies complex, deadline-intensive and/or mission-critical applications using advanced programming tools
- Documents all code using standard forms and procedures and review others work as appropriate
- Assists others in the use of programming tools and recommend tools to best meet application needs
- Recommends process, methodology and tool changes in conjunction with Architects and QA to best meet the needs of the department and client
- Works with Quality assurance to participate in unit, system and user acceptance testing based on an understanding of the development lifecycle
- Participates in architectural recommendations/decisions and work with other infrastructure groups as applicable to determine and implement complex system hardware requirements that may involve multiple platforms, databases, peripherals or other technology
- Provides the highest level of technical production support for applications, assists others with complex problem resolution and responds with solutions to both functional and technical issues in a timely manner
- Works with Business System Analysts, Product Managers, Squad Leads, Technical Leads, and other leadership to recommend process or system enhancements
- Works with DBAs, Architects and other team members to ensure logical and physical data models and relationship diagrams are completed and executed according to methodology and user requirements
- Assist product and squad leadership in estimates as requested.