Sr. Java Developer
You will have an opportunity to work across the product's layers to deliver features and functionality as part of a highly collaborative, quality-focused team. Skills / Experience: o Perform requirements gathering, analysis. Create architecture & design documents o Refine requirements and map to technical modules fitting the enterprise wide architecture.
o Represent design of the system in UML diagrams such as Sequence Diagrams and ER models. o Create Data flow diagrams and represent data in JSON format and map to business cases. o Develop applications using Java, Spring Boot, Spring Cloud, and Cloud Foundry, Kubernetes o Develop microservices using REST, Spring, Spring Boot o Write Maven build scripts for building Java based Spring Boot microservices o Develop scripts to deploy the microservices in Cloud such as Cloud Foundry and Kubernetes.
o Develop Jenkins files to automate the scripts using CI/CD continuous integration and Continuous delivery. o Use Swagger2API for publishing REST interfaces. o Scale the applications using auto-scaling policies, design for fault tolerance, availability and low response times.o Develop using Spring modules such as actuator for metrics, health check of services o Develop using Spring Cloud Config for storing configuration of the services. o Develop using Spring Cloud Eureka to have service registry and discovery. o Improve performance using Redis cache, NoSQL databases such as DynamoDB.
o Develop Data access layer using JPA, Hibernate and ORM tools over JDBC layer. o Develop applications using cache such as Redis using Java Jedis client. o Test REST resources using tools like Postman, Curl etc., o Make enhancements to legacy systems o Develop/enhance SOAP webservices over XML and JSON written using J2EE technologies, EJBs, Servlets, JSP, JavaScript, jQuery, AJAX, Angular, React, NodeJS o Debug issues involving multi-threading, concurrency issues.
o Experience using XML, XSD, XSLT, DOM, JMS, Spring Integration o Knowledge of application servers such as Tomcat, Glassfish and JBoss. o Develop applications using Spring MVC, Spring Batch and Spring Integration. o Do performance tuning of SQL queries, propose improvements to existing systems.
o Support applications using multi-threading concepts, TCP/IP, database, and REST based JSON APIs o Handle legacy systems which involves processing using multithreading, handle concurrency issues and network issues. o Configure Database connections, write SQL and PLSQL scripts to interact with RDBMS databases.
o Using Java and Spring technologies to develop REST based API's and clients invoking such REST services using JSON as payload. o Knowledge of NGINX and other infrastructure tools. o Create scripts using build and deployment tools: Maven, Git, Junit o Should be able to create code repositories in Git o Should perform GIT branching, merging and Push Requests in Git flow.
o Build Maven pom.xml build files to automate CI/CD in Jenkins. o Implement CI/CD pipelines for DevOps using tools (Nexus, Hygieia, SonarQube, Github, Jenkins) o Should implement Jenkins pipelines to enable Code pipelines. o Should fix code issues shown by SonarQube and improve code quality.
o Linux/Unix and Shell scripting o Develop scripts written in Shell/Bash for various operational tasks. o Experience with the scrum process o Should participate in Agile ceremonies and contribute to the overall success of the project. o Should effectively contribute in Sprint Planning, Daily Scrum Sprint Review and Sprint Retrospectives.
o Should update user stories, tasks in JIRA, Confluence, IBM Rally tools. o Produce reports. o Experience and understanding of test driven (TDD) & Behavioral Driven development (BDD) o Should develop test cases by writing code using tools such as Mockito, EasyMock.
o Should develop integration tests by writing code using tools such as Cucumber. o Excellent verbal and written communication skills and problem-solving skills o Ability to work very closely with a larger development team of differing skillsets Minimum Requirements Bachelor's degree in computer science, electronics, engineering, or related field, plus 5-7 years of experience in the job offered or in software development or engineering plus demonstrated experience in: o Design/Development Techniques: Object-oriented Analysis and Design) OOAD, Unified Modelling Language (UML), Test Driven Development (TDD), Java Design Patterns, Enterprise Integration Design Patterns, Disaster Recovery Design and Development o Web Technologies: Java EE, Spring MVC, Spring Web Flow, Struts, HTML, CSS, XML, Servlets, JSP, JavaScript, JQuery, Junit, JSON, Ajax, Angular, React o Service Technologies: Java 1.8, EJB, Spring Framework, Spring Boot, Groovy, In- memory computation, REST/SOAP Web Service, WSDL, JAXB, JAXP, XPATH, XSLT, XQuery, XSD, JMS, Spring Integration, WebSphere MQ, ActiveMQ o Relational Database and Persistence: Hibernate (Object/Relational Mapping), JPA, JDBC,MySQL, Oracle, PostgreSQL, PL/SQL, Query Performance Tuning o No-SQL Database: DynamoDB, NoSQL o Cloud Technologies: Amazon Web Services (AWS), CloudFormation Template o Caching Technologies: Redis Cache, EhCache o Servers: Tomcat, JBoss, Glassfish, WebSphere o CI/CDTools Junit, Mockito, JBehave, Maven, Jenkins, Nexus, Chef, Puppet, Linux/UNIX Shell Scripting, Ruby o SCM Tools Git, Subversion o Monitoring Tools: Dynatrace, CloudWatch, Zenoss.
o Project Management Tools: Jira, Rally, Confluence, Visio, PowerPoint, Excel, Word o Operating Systems: Windows, Unix, Linux o IDEs: Eclipse, RAD, Oracle SQL Developer, PuTTY, Visual Studio Code, Robo Mongo, o Testing tools - Postman, SoapUI o Methodologies: Agile, Scrum, Kanban, XP