ResearchGate is the professional network for scientists and researchers. Over 20 million members from all over the world use it to share, discover, and discuss research. We're guided by our mission to connect the world of science and make research open to all.
Senior Data Engineer (Java)
This is a full-time position based in Germany. Our headquarters are in Berlin and we support a hybrid home office/in person approach to work.
Senior Data Engineer - Java (m/f/d)
The web was created by scientists and for scientists, to foster scientific collaboration and drive progress for a better world. Join our team to take the web back to its roots and achieve that original mission. We're looking for a skilled Senior Data Engineer who cares about efficiency and building maintainable software. This software allows us to create, structure and leverage a graph of over 20+ million users, 150+ million publications, 1.5+ billion citations, millions of authors, countless institutions and more.
As part of our team, you will make an impact for more than 20 million scientists around the world, who themselves have an impact on 8 billion peoples’ lives via their research.
Make an impact: At ResearchGate, your input helps over 20 million scientists and researchers to solve global challenges. Whether studying the first moments of our universe or tracking global warming, our users are making a real difference.
Building at scale: Scale at ResearchGate means that you can create features that are used by millions of researchers on a daily basis - we operate on a Petabyte scale. This gives us the challenge and the need to identify scalability issues with a quick turnaround time.
Innovation through iteration: Agile methodologies are core to our success - this way of working allows you to build a feature, measure its success and learn how to improve it in short iterative cycles. We make sure to constantly improve our back-end infrastructure and design and implement efficient and reusable back-end systems that drive complex web applications and big data pipelines.
Objective of the Role
- Develop, implement, and maintain Java-based services (REST-, queue- and batch-based)
- Design databases for high-performance data access in relational and non-relational databases (MongoDB, HBase)
- Build efficient batch and stream processing pipelines to handle our big data workloads
- Create robust and evolvable solutions with quality of service and data integrity in mind
- Take responsibility for your solutions and continuously improve on them
- Develop prototype models to demonstrate the value of potential data products
- Scale prototype systems to production and take ownership of the maintenance of your products
- Proactively identify and evaluate opportunities for data products and automation
- Define, implement, monitor and analyze key metrics to assess the performance your products
- Take ownership of the technical design, monitoring and evaluation of your systems
- Evaluate the impact, risks and evaluate technical/data feasibility of potential new data products or automation initiatives in collaboration with engineering and product
- Define tracking requirements and data structures in collaboration with product management and engineering
- Help demonstrate the value of the data products within and external to the organization
- Expert knowledge in Java (5+ years of experience)
- Track record of developing microservices using deep understanding of REST principles
- Comfortable with DevOps related technologies (Docker, Kubernetes)
- Proficient in SQL (Hive experience is a plus)
- Experience working with queue-based integration patterns (Kafka, ActiveMQ)
- Know-how of No-SQL databases (e.g. MongoDB)
Nice to Haves
- Experience working with Big Data technologies, in particular the Hadoop ecosystem (MapReduce, HBase, Hive and HDFS) and Flink
- Experience writing search indexes (Solr, Lucene) or experience with productionizing Machine Learning models
- You excel at building maintainable, efficient, and scalable software
- You are motivated to deep-dive into challenging problems, from the understanding of the problem and evaluation of the options to the planning, implementation and verification of the solution.
- You are skilled in analyzing and optimizing code for performance and stability
- You enjoy working with great people in an agile environment
- You care about our mission and want to help us achieve it
Grow at work: We put people first. You’ll join an environment where your personal development is our number one priority. In regular one-on-ones and quarterly development talks, you and your manager will identify possible paths for you to grow and the right amount of guidance needed to reach your goals.
Have ownership: As a member of a product engineering team, you’re given the opportunity to own medium to long-term initiatives and potentially entire solutions. Your ability to ideate, estimate, plan, and execute will be key to the success of the team. You’ll collaborate with product managers, designers, and software engineers to deliver compelling user-facing products.
Our hiring process is uncomplicated: you'll be interviewed by the people you'll be working with. We continue to closely monitor the evolving situation with Covid-19, with the protection of the health and safety of our people being our highest priority. All interviews will be conducted virtually (via video call).