We are on the lookout for an experienced and ambitious Staff Backend Software Engineer. In this role, you will use your skills and knowledge to help us set technical direction and develop our distributed system at scale effectively. We are looking for a self-driven and proactive specialist who has worked on bigger production systems and is able to use this experience to influence development.
At Neptune, we have a quite ambitious goal of becoming an MLOps standard for data scientists worldwide. Our platform is a metadata repository built for research and production teams that run multiple ML experiments. Don’t worry, you don’t need to have ML skills. Our customers handle that part.
We design Neptune to be extensible, flexible, and lightweight to ensure it fits any workflow and keeps up with this fast-paced field. Some of the things we do are pretty run-of-the-mill engineering work (REST, SQL, NoSQL), but often, we stumble upon a bigger challenge! After all, how many companies have implemented a custom scalable time-series storage moving data between various underlying storages?
Our tech stack:
- Java (+ Spring), Scala, Python
- Kubernetes, Helm, containerization
- Google Cloud
- MySQL, Elasticsearch, Kafka
- S3
Responsibilities:
- leading building larger, strategic features of an application that is:
- Scalable: we aim to be the standard for data scientists and ML engineers around the world – there are quite a few of them;
- Portable: we offer both SaaS and on-prem installations. There are times when we need to be very lightweight;
- Flexible: Machine Learning is a very fast-paced field; we often need to adapt;
- cooperating with other Backend Software Engineers helping them move forward when needed,
- actively working with other teams at Neptune – helping to design new features,
- defining our application’s architecture,
- driving the agenda – actively setting priorities of technical initiatives, frequently by example, and implementing more complex ones (this is a hands-on role).
Our expectations:
- You have 10+ years of experience in Software Development of distributed systems;
- You are proficient in Java and have solid experience with JVM-based applications (hands-on role);
- You have a working knowledge of Kubernetes and containerization in general; you understand its concepts;
- You are an expert in choosing the proper technology to store data (e.g., SQL vs. NoSQL vs. distributed file stores; scalability vs. reliability vs. latency);
- A strong command of English;
- You perform an excellent code review;
- You are proactive – you can influence, discuss, research, and decide without supervision.
We offer:
- Flexibility: 100% remote work with an office in Warsaw available and flexible working hours;
- Share in our success: Participate in the Employee Stock Option Plan and be part of our growth journey;
- Time off: 20 paid service-free days per year;
- Ownership and impact: Space to take action, bring your ideas to life, and make a real impact;
- Perks: Co-financing of private medical care and Multisport card, regular team building events, and free lunch when you’re at the office.