Position: Java Lead
Company: GeeksForLess
Experience required: 5y
English level: upper

**Requirements**

5+ years of SW Engineering/Development in Java;
2+ years of experience working in an Agile (SCRUM) environment; 
2+ years experience with Test Driven Development (TDD);
Awareness of and ability to leverage design patterns for common problems such as scalability, fault tolerance, etc.;
2+ years experience with RESTful APIs design and implementation experience;
2+ years experience with REACT, EMBER, or other leading Javascript frameworks;
2+ years experience with Twitter Bootstrap;
5+ years experience with SQL (SQL Server) - Stored Procedures, SSIS; 
5+ years experience with .Net / C#, MVC, ASP.net, WebAPI, Visual Studio, VSCode;
5+ years experience with Front-End Web tools to include - CSS and Html;
2+ years experience with GIT. 

**Would be a plus**

1+ years of .NET Core experience;
1+ years of JAVA experience;
1+ years of Docker experience;
1+ years of Jenkins experience; 
1+ years of Microservice design experience with REST or GraphQL. 



**Responsibility**

Performs complex software systems architecture, analysis, design, and programming activities; these activities can require extensive research;
Performs complex defect (bug) investigations and verification tasks and leads release testing and support for assigned components, products, or solutions.  May be required to complete limited on-site client work, for custom components updates or enhancements for complex solutions;
Performs complex component/product/solution design activities which may require extensive research and analysis; actively participates in technical design meetings; acknowledged SME for specific components within multiple products/solutions; performs software modeling, prototyping, and contributes to the overall design of the solution or product;
Serve as a Product SME on ongoing projects, assisting with design, implementation, and documentation to meet project objectives. Act as the lead escalation point on issues;
Research problems discovered by QA, Professional Services, or Customer Care, defines technical options and develops solutions to those problems;
Performs complex bug verification, release testing, and support for assigned products. Conducts unit testing and integration testing for functionality and limits.