Position: Middle/Senior Fullstack Engineer
Company: Grid Dynamics
Category: Java
Experience required: 5y
English level: upper

Grid Dynamics is looking for a Middle/Senior Fullstack (Java+JS) Engineer

**Project description**
We are looking for a Full Stack Java Software Engineer to maintain an internal, business-facing tool. Many teams are migrating off it but its lifetime is still evaluated to be 6 to 10 years so there is a need to support the existing implementation. 

**Details on the tech stack**
- WebObjects Java framework (though some pieces of application are not using it)
- D2W (DirectToWeb) controller layer
- Pages are defined in templates, the framework dynamically creates pages, and pages are like Excel sheets mirroring databases. There is no service layer in between

Distribution of technologies/skills:
50% Java
20% JavaScript
30% relational database skillset (SQL querying skills, data modeling) and object-relational mapping

**Min requirements**
- 7 years experience in a solid professional Java programming position - parts of the application are written in Java 8 but some of the application is even older than that
- Expertise in Java Enterprise technology applications development and support
- Expertise in object-oriented design, refactoring techniques and writing tests to build robust code
- Working knowledge of the maven build process and Cl builds required
- Excellent communication and collaboration skills
- Very important to have great learning agility
- SQL and relational databases (application uses Oracle DB)
- Exposure to object-relational mapping layer (like Hibernate - which is not used in the app though) 
- Should be ready to be available for occasional team meetings until 10-11 am PT. It won't be required every day as tasks can be isolated and chunk-based for this type of work.

**Tasks**
- There are bugs in the Backlog to fix
- There are potentially some features to implement
- Security updates for the application
- Code cleanup
- Any code change needed would be best to write in a new way