Research Software Engineer, Distributed Systems, Artificial Life, Pi

GooglePublished 5 hours agoFirst seen 4 hours ago

Google's software engineers develop the next-generation technologies that change how billions of users connect, explore, and interact with information and one another. Our products need to handle information at massive scale, and extend well beyond web search. We're looking for engineers who bring fresh ideas from all areas, including information retrieval, distributed computing, large-scale system design, networking and data storage, security, artificial intelligence, natural language processing, UI design and mobile; the list goes on and is growing every day. As a software engineer, you will work on a specific project critical to Google’s needs with opportunities to switch teams and projects as you and our fast-paced business grow and evolve. We need our engineers to be versatile, display leadership qualities and be enthusiastic to take on new problems across the full-stack as we continue to push technology forward.

With your technical expertise you will manage project priorities, deadlines, and deliverables. You will design, develop, test, deploy, maintain, and enhance software solutions.

Paradigms of Intelligence (Pi) is an interdisciplinary research team exploring the fundamental building blocks of intelligence. One of our major projects, seeks to develop radically open-ended artificial-life systems for program evolution to demonstrate the emergence of foundational-evolution.

In this role, you will apply your expertise in distributed simulations to manage massive-scale environments for frontier machine learning research. You will build modular, efficient infrastructure for running and analyzing artificial life simulations, supporting self-replicating systems that learn to solve complex problems within their ecological niche.

Google Research addresses challenges that define the technology of today and tomorrow. From conducting fundamental research to influencing product development, our research teams have the opportunity to impact technology used by billions of people every day.

Our teams aspire to make discoveries that impact everyone, and core to our approach is sharing our research and tools to fuel progress in the field -- we publish regularly in academic journals, release projects as open source, and apply research to Google products.

Responsibilities

  • Build large-scale simulations and manage distributed computing infrastructure to scale digital ecosystems and experiments.
  • Create modular infrastructure capable of running experiments with trillions of generated programs and complex interactions.
  • Optimize compute usage and efficiently manage significant CPU resource requirements across shared infrastructure.
  • Implement efficient scheduling, resolve job failures, and ensure that massive-scale runs execute reliably.
  • Provide dedicated engineering support to accelerate data analysis and the launching of new experiments.

Minimum qualifications:

  • Bachelor's degree in Computer Science, a related technical field, or equivalent practical experience.
  • 2 years of experience in software development, with a focus on distributed computing and parallelizable infrastructure.
  • Experience scaling systems from single-CPU runs to distributed environments.
  • Experience with infrastructure optimization and resource management.

Preferred qualifications:

  • Master's degree or PhD in Computer Science, Artificial Intelligence, or a related field.
  • Experience with evolutionary algorithms, machine learning research, or artificial life simulations.
  • Experience building infrastructure that interfaces with real-world programming benchmarks (e.g., LeetCode, code golf).
  • Demonstrated ability to handle the increased complexity and geographical segregation of populations within digital ecosystems.