Position: Java Developer
Company: Grid Dynamics
Experience required: 2y

Responsibilities:

- Participate in the design and development of high-performance business applications, from requirements analysis to production
- Constantly improve software quality (evaluate and incorporate new libraries, tools, and technologies; code reviews; refactoring; testing; etc.)
- Analyze and improve application performance
- Search for simple and robust solutions to complex tasks
- Work in an Agile methodology environment where innovation, teamwork, and creativity are the key to success
- Work with following backend technologies: Java, Spring, Objectify, Protobuf, Guice, Mockito, JUnit4, Truth, Hamcrest, Google AppEngine DataStore

Requirements:

- 2+ years in Software Development
- Education in Computer Science or similar theoretical knowledge in CS: algorithms and complexity estimation, data structures, operating systems, programming languages
- Excellent knowledge of Java platform (collections, concurrency, etc). Good understanding of JVM internals is a plus
- Experience in enterprise application development (Spring)
- Understanding of distributed architectures and scalability principles
- Knowledge of Linux/Unix-based operating systems (bash/ssh/ps/grep etc.)
- Understanding of SDLC and Agile methodologies in particular
- Hands-on experience with developer daily basis tools such as IDE’s, compilers, debuggers, profilers, version control systems, bug tracking systems, build systems (ANT, Maven2, etc), code coverage and automated testing tools
- Experience with unit and integration testing (JUnit, TestNG, Mockito, etc.)
RDBMS experience (SQL, JDBC). Understanding of ORM frameworks internals is a plus
- Desire and ability to quickly learn new tools and technologies
- Ability to proactively identify and solve engineering problems
- Good interpersonal communication skills, both verbal and written
- Good English skills (both spoken and written) are a must