Open Positions 💼

Open Positions

Working at Recurse ML

We want to enable software engineers to spend more time solving hard problems and less time performing mundane codebase maintenance tasks. That’s why we are building ML tools that automate mundane software engineering tasks, starting with dependency upgrades in large codebases. Think: turning a story into a submitted PR.

We live and work by the following principles.

Thinking time is precious

It is important to work on intellectually challenging and impactful problems. Creating agents that fully automate software engineering tasks meets the benchmark for intellectual challenge and impact. We apply this value externally too. We believe it's a shame that some brilliant people in large companies are blocked by drudging and boring tasks. Therefore, we are working on automating those tasks so that they can focus on more technically exciting work instead.

Collaboration benefits from mindful intensity

We structure our work to maximise uninterrupted focus time. We do this by clearly marking time slots in our day when we're available for discussions. Other times are reserved for focus; deep work is the default at Recurse ML.

The regular, pre-defined collaboration windows remove the feeling of guilt when reaching out for help that's normally associated with interrupting your teammate's flow. As time is explicitly limited, this mechanism also ensures that meetings are intensely focused. Thinking time is precious and meeting time should not eat at that.

While working mostly independently, we still support each other. Being in-person is one of the core ways in which we do that. Pragmatically, working in-person increases the communication bandwidth of our meetings. Emotionally, we're trying to solve some really hard problems here and it can feel frustrating when things don't go right. Working in-person helps us pick up on subtle cues that might be lost in a remote call and bond over shared morning coffees and lunches.

Specialised parallelization

In any system there's a trade-off between redundancy (i.e. fault tolerance) and speed (i.e. parallelisation). Human systems are no different. Generally, software engineering teams err on the side of redundancy. Terms such as "reducing the bus factor" are common. We err on the side of speed through specialised parallelisation.

Specialised parallelisation begins by choosing problems that resonate with one's long-term goals. Over time, this enables owning a particular area of the product or business and building a world-class competence in it. Regardless of the title, competence in an area gives the team-member authority to drive decisions in it. Career progress within Recurse ML is driven by demonstrating a track record of successful decisions within a specialism. A successful track record of decisions and execution, leads to autonomy over a larger area of the product.

Meet the Team 🥷 🥷 🥷

20240710_093903.jpg

Jack Jackson

Co-Founder (ex-DPhil, ex-R&D Lead, xoxo-Gossip Girl)

Looking back, I’ve always worked on really weird things. I’ve ran social simulations of nation state level disinformation campaigns on social media, operated (what at the time was) the largest deepfake honeypot in the UK, and done real-time psychoanalysis of fraudster behaviours.

I’ve now moved away from annyoing people with offensive cybersec, and now try to actually help them. My favourite thing to do at Recurse is look at the comments users leave in response to our bot. Some people talk to it like it’s a pet dog, and I’m all for it! **🐕** “good bot”

Outside of work I:

Definitely not a pint glass at the bottom.

Definitely not a pint glass at the bottom.

Armins Stepanjans

Co-Founder (ex-ML@Boclips, ex-Bloomberg, Cam MPhil)

I’ve built many cool things, including the winning disease prediction model for the US military and the first GNN to predict edges in DAGs.

Compared to these, working on Recurse excites me the most for three reasons:

  1. Building software that writes other software is meta-intellectually stimulating.
  2. Building a product that solves the most hated part of the job for other software engineers feels good.
  3. Building (1.) and (2.) with the best people I’ve ever worked with (hopefully including you) is fun!

My face when skimming through either traffic or well-generated code.

My face when skimming through either traffic or well-generated code.

My life in a meme:

photo_6006108831555370758_y.jpg