Currently we’re searching for a talented mid-to-senior Java developer to join a data acquisition (connectors) team of one of our key clients - Lucidworks. Lucidworks is the commercial company behind Apache Lucene/Solr, the world’s leading open source search platform. These cutting edge technologies power critical search apps at thousands of businesses worldwide both large and small – including Netflix, IBM, Twitter, LinkedIn, and dozens of other household names. The team includes leading contributors to the Lucene and Solr projects, as well as experts in enterprise search, distributed computing, and scalability.
Basic Job Responsibilities
Lucidworks main Fusion product contains 40+ "connectors" that allow to index data from various sources. The framework that most of these plugins are built on has been superceded by a new SDK. Our goal is to migrate as many of the “legacy” plugins to this new platform. We’d like to do this as quickly as possible, but not at the expense of quality and consistency. Another big challenge for Fusion this year is to migrate to the more fine grained micro-services architecture.
This role will primarily involve working with the data acquisition team lead, as well as other team members. The Fusion Product team will also be involved in providing direction on feature requirements and overall priority.
Things we seek
- At least 5-6 years of real world software development
- At least 3 consecutive years of Java 8 experience
- Experience with concurrent programming and distributed systems
- Clean coder / writes code that can easily be fully unit tested
- Strong experience with Git
- Good Java/JVM debugging experience
- Ability to implement large features incrementally
- Strong ability to communicate:
- Gives early notice of blocking issues and/or progress updates on sensitive issues
- Suggests potential improvements to system or components
- Asks questions if requirements are not clear
- Frequent code review requests
- Understands and fully embraces good software engineering principles:
- “separation of concerns”, abstractions / modularity, incremental development, consistency etc..
Bonus points for experience in:
- Basic ETL processing
- Content repository APIs, such as Sharepoint or Jive
- Developing APIs / Java SDKs
- Java 8 streams and functional programming features
- Guava / Guice