Position: Senior Java Developer_877
Company: Exadel
Experience required: 3y
English level: intermediate

The successful candidate will bring and share sufficient process experience in Agile/Scrum methodology, emphasizing collaboration and teamwork in application to enterprise software development with solid experience building complex search systems.

**About Our Customer:**
The customer is a world-leading provider of information solutions that enhance the performance of science, health, and technology professionals. They help scientists make new discoveries, lawyers win cases, doctors save lives, corporations build commercial relationships, insurance companies assess risk, and government and financial institutions detect fraud. The customer is a global company headquartered in Amsterdam, employing more than 7,000 people in 25 countries.

**The perfect candidate should:**
- Have a deep understanding of core search concepts, text pre-processing, and indexing, Lucene
- Experience with building distributed data ingestion pipelines, batch data processing, Kafka or other
- Have production experience with ElasticSearch and Solr  
- Experience with tuning search behavior, customization of ranking algorithms
- Have solid experience with core Java (or Python), algorithms, and data structures
- Have experience with relational and NoSQL data sources, Oracle and MarkLogic
- Demonstrate a clear understanding of Systems and CI/CD, Linux, and Jenkins
- Be keen to deliver quality solutions, testing automation, unit testing
- Have an Agile mindset, be confident with Scrum processes
- Be proficient in cloud computing, AWS services

**Qualifications:**
- 5+ years of Software Engineering experience
- BS Engineering/Computer Science or equivalent experience required

**Technical Skills:**
- Advanced knowledge of software development methodologies (e.g., Agile, Waterfall)
- Strong proficiency with data manipulation language including optimization techniques
- Strong understanding of normalized/dimensional data modeling principles
- Strong knowledge of multiple data storage subsystems
- Expertise in development languages including but not limited to: Java/J2EE, JavaScript, JSP, C/C++, HTML, XML, SQL, Windows, UNIX, and .Net
- Strong research skills
- Strong knowledge in industry best practices in development
- Knowledge in using and developing applicable toolsets
- Ability to interface competently with other technical personnel or team members to finalize requirements
- Ability to work well with internal and external technology resources
- Knowledge of test-driven development
- Ability to write and review portions of detailed specifications for the development of complex system components
- Ability to complete complex bug fixes
- Good oral and written communications skills

**English level: Intermediate+**

**Responsibilities:**
- Interface with other technical personnel or team members to finalize requirements
- Write and review portions of detailed specifications for the development of complex system components
- Complete complex bug fixes
- Work closely with other development team members to understand complex product requirements and translate them into software designs
- Successfully implement development processes, coding best practices, and code reviews
- Operate in various development environments (Agile, Waterfall, etc.) while collaborating with key stakeholders
- Resolve complex technical issues as necessary
- Train entry-level software engineers as directed by department management, ensuring they are knowledgeable in critical aspects of their roles
- Keep abreast of new technology developments
- Design and work with complex data models
- Mentor less-senior software developers on development methodologies and optimization techniques
- All other duties as assigned
 
**Advantages of Working with Exadel:**
- You can build your expertise with our Sales Support team, who provide assistance with existing and potential projects
- You can join any Exadel Community or create your own to communicate with like-minded colleagues
- You can participate in continuing education as a mentor or speaker 
- You can take part in internal and external meetups as a speaker or listener. We support you in broadening your horizons and encourage knowledge sharing for all of our employees.
- You can learn English with the support of native speakers
- You can take part in cultural, sporting, charity, and entertainment events
- Working at Exadel means always upgrading your skills and proficiency, so we provide plenty of opportunities for professional development. If you’re looking for a challenge that will lead you to the next level of your career, you’ve found the right place. 
- We work hard to ensure honest and open relations between employees and leadership, so our offices are friendly environments