Senior Software Engineer — Java
LOCATION: remote — Portugal, Cyprus, Spain, Poland, Georgia, Serbia, Armenia.ABOUT GRIDGAINWe live in a world that increasingly expects instant gratification. To remain competitive, enterprises must process and analyze extraordinary amounts of information in milliseconds.GridGain's Unified Real-Time Data platform enables a simplified and optimized data architecture for enterprises that require extreme speed, massive scale, and high availability from their data ecosystem. It seamlessly combines streaming data in-motion and historical data at-rest with compute functionality to help companies handle complex analytical, streaming, and transactional data workloads at ultra-low latencies.GridGain is trusted by companies like Citi, Barclays, American Airlines, AutoZone, and UPS to manage mission-critical data operations across their businesses.GridGain is growing! Join the team and play a critical role in a fast-paced Silicon Valley startup that's changing the definition of "real time," and the world's expectations for high-speed data processing, computation, and analytics.ABOUT THE ROLEGridGain is looking for a seasoned Senior Software Engineer (Java), with the experience in building distributed systems, to join one of our Core Engineering teams, like the ‘Persistent Storage’ (Storage Engine) team, 'Data Consistency' or 'SQL Grid' in the R&D department.Required Job Duties:
- Develop and optimize the data structures for providing the best experience accessing data in high data-intensive scenarios
- Implement the best way to store data to disk and sending data via a network to other nodes (including failure handling and recovering if the failure has happened)
- Implement and integrate algorithms for high availability of the whole cluster
- Investigate flaws in data consistency algorithms, which may require thorough debugging either on multi-node cluster and in low-level byte represented data
Essential Skills & Requirements:We welcome experienced software engineers who wish to develop and grow as professionals. We expect at least the following from a successful candidate:
- 4+ years experience in Java programming
- Deep knowledge of concurrency in Java and Java Memory Model and/or of concurrency model in other programming systems
- Excellent Java SE knowledge including IO, JVM internals, etc.
- Experience with SQL databases
- Experience in troubleshooting Java applications and/or databases
- English — upper-intermediate or higher
The following will be a strong plus:
- Experience with NoSQL and/or distributed databases
- Experience with building highload distributed systems and algorithms
- Experience with Docker, Kubernetes and/or public Cloud (AWS, GCE, Azure, etc.)
We are an Equal Opportunity Employer. We do not discriminate on the basis of race, religion, sex, age, national origin or disability.