The Senior Software Engineer designs and builds highly scalable systems that compute complex research metrics using distributed processing, search indexing, and graph-based data structures.
Requirements
- Implementing distributed metric computation pipelines using Scala + Spark/Databricks running on AWS EMR or related environments.
- Use Elasticsearch and Neo4j specifically for metric computation, including search-driven aggregations and graph algorithms.
- Develop Java-based backend services and APIs that expose metric results, orchestrate computation, or support downstream applications.
- Collaborating with architects, product managers, and data SMEs to refine metric definitions and ensure technical feasibility and performance.
- Writing and reviewing detailed design specifications for complex system components across Spark pipelines and backend services.
- Performing advanced debugging and optimization across Spark jobs, graph queries, search indexes, and AWS resources.
- Driving and maintaining high engineering standards through code reviews, testing, automation, and observability practices.
- Mentoring and guiding junior team members on distributed data systems, Spark optimization, Java backend fundamentals, and search/graph usage.
- Stay current with big data, graph, and search trends; propose improvements in architecture, performance, and tooling.
- Participating in Agile development workflows and collaborating effectively with distributed teams.
Benefits
- Comprehensive Pension Plan
- Home, office, or commuting allowance
- Generous vacation entitlement and option for sabbatical leave
- Maternity, Paternity, Adoption, and Family Care leave
- Flexible working hours
- Personal Choice budget
- Internal communities and networks
- Various employee discounts
- Recruitment introduction reward
- Employee Assistance Program (global)