Location: Onsite – USA
Type: Full Time
This position is a Java Developer for our eCommerce Development organization. High level responsibilities include interpreting functional requirements and designs to design, develop and implementing software solutions following our agile development process. The position requires a minimum of 4-5 years of industry experience in writing solutions using Enterprise Java technology skills and experience. Software development primarily consists of developing server-side processes and APIs for multiple front-end client applications.
- Lead-level understanding of Core Java (1.6 to 1.8) and Spring Framework
- Demonstrable experience with Restful and SOAP-based web services, JSON and XML
- Demonstrable experience with TDD methodologies, and tools such as Junit, Mockito, TestNG
- Experience with JMS queues and JDBC (SQL Server preferred but not required)
- Experience with behavior-driven testing frameworks like Cucumber and integration-testing frameworks like Selenium and SoapUI
- Experience with continuous integration systems like Jenkins
- Agile development experience, preferably with a few e-commerce startups
- High-level understanding of in-memory distributed data storage systems like memcache, ehcache, Hazelcast
- Analyzes the functional requirements and designs and implement them into software modules
- Follows client’s standards for Java and API development in delivering the required software.
- Follows industry standards, patterns and best practices for J2EE development techniques in implementing business rules
- Keeps in touch with the latest Java technology and continues to develop his/her technical skills
- Responsible for unit testing his/her software modules.
- Is familiar with Eclipse (Integrated Development Environment) and the usage of source code repositories (like SVN) from within Eclipse for all Java projects.
- Proficient in the use of multiple data storage and access techniques including abstraction layers, DAOs and RDBMS such as SQL Server
- Understands and is able to identify and implement reusable code in an object oriented fashion
- Contributes to the client Java Developer practice, which is a community of developers focused on consistency in practice and driving technology innovation through both process and technology
- Collaborates with the project team and is willing to be flexible to achieve team goals.
- Assists the lead developer in producing the relevant artifacts for the project
- Assists team lead in building, deploying and releasing application builds
- Identifies product or process related development issues and provides constructive feedback to the Manager of Services Development as well as the Technical Delivery Manager
- Strong understanding and demonstrated use of design patterns
- Participates in project planning, estimation, standup and status meetings as appropriate
- Ownership mentality while maintaining a team focus
- Experience in building unit tests, preferably test driven development
- Define application deployments and work with operation teams to insure proper deployment
- Bachelor’s degree in computer science, math, computer engineering or equivalent experience
- 5+ years development/architecture experience with web infrastructure
- Requires strong skills in Java, Java EE, JSP, Servlets, JDBC, JMS, XML and SQL
- Understanding of REST, SOAP and JSON
- Working knowledge of such platforms as Windows, UNIX, and Linux.
- Experience in using Eclipse for IDE
- Proficient at using code profiling and debugging tools
- Understanding of relational database concepts, ER diagrams and database objects.
- Able to effectively interact with business customers to understand and derive business needs
- Strong passion for learning
- Excellent written and verbal communications skills
- Strong conceptual thinking
- Understanding of different phases of software development life cycle
- Good communication, interpersonal, and problem solving skills.
- Ability to work independently as well as in a team environment.
- Experience with Test Driven Development
- Experience using common Java frameworks and libraries such as Spring and Hibernate
- International software development experience (multi-lingual, multi-currency, geographic and locale awareness)