Develop Java-based middle-tier applications to be deployed in the cloud and on-prem in medium-to-large companies.
Maintain distributable libraries SDKs, APIs and their documentation that are consumed by internal and external developers.
Thrive within a microservice/message-bus environment of your choosing to both deliver a high quality/highly available local service that can rapidly grow to surface our expanding product capabilities in a timely fashion.
Design forward-leaning technical solutions that integrate compatibility with a variety of systems.
Collaborate cross-functionally across a small team and a diverse stack to integrate applications.
Deliver complex product features in a fast environment with limited requirements.
Qualifications:
4+ years of experience as a professional software engineer
2+ years in a software role, working with complex data processing systems
Thorough knowledge of Java microservice applications and ecosystem (Spring Boot, DropWizard, etc)
Previous experience using heterogeneous data storage/cache layers (Postgres, Oracle, Neo4j, etc)
Previous experience with enterprise search engines (Elasticsearch, Solr, Lucene) is
Previous experience with message based stream processing (Kafka, Kafka Streams, Spark)
Ability to effectively apply complex graph & tree data structures to implement performant algorithms.
Previous Experience successfully deploying systems using eventing infrastructure (Kafka, RabbitMQ, Redis, etc.)
Prior experience developing GraphQL and federated GraphQL APIs is a plus.
Previous experience with validation of, versioning, and/or processing large XML or JSON feed is a plus
Previous exposure maintain or developing large CMS applications a plus
You write code that is understandable, simple, clean and elegant.
You enjoy autonomy and are able to operate with self-direction