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:
In this role you will be:
- 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’s 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 others at Neptune – helping to design new features,
- defining our application’s architecture,
- driving the agenda – actively setting priorities of technical initiatives, frequently by example 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 proper technology to store data (e.g. SQL vs. NoSQL vs. distributed file stores; scalability vs. reliability vs. latency).
- You perform an excellent code review.
- You are proactive – you can influence, discuss, research, decide without supervision.
- If you have experience with Scala and/or Python, that’s great.
- You’re always hungry for more knowledge – learning new things is natural for you; you do it constantly.
- Knowledge of Machine Learning concepts would be awesome – but is not a must.
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.
Any questions?
Check our ultimate guide for candidates to the neptune.ai Engineering team.
Don’t hesitate to contact our Talent Acquisition Partner, Karolina, and check out our About us page to get to know the story and faces behind Neptune.
With your optional consent, we can retain your data for up to 12 months after the application to consider you for future suitable roles if you’re not a match for the current position.