Devs hate him! How one trick improves performance, with Adjust’s Francis Stephens

Francis is Adjust’s Performance Engineer, and we really wanted to learn what that meant. Below is an edited excerpt from a few chats we had with him, where we learned about his role, some cool projects, and how he finds working at Adjust.

Working in the kinds of role I do, you’re mostly taking on performance, looking for ways to maximize efficiency, and doing lots of heavy lifting to get those systems to work. One of my biggest jobs is just monitoring and measuring the performance of our systems. And also drinking a lot coffee.

Up until recently our main focus was on reducing memory allocations in all our most critical systems. I would take memory and CPU profiles of the systems under scrutiny and use those to choose targets for code optimizations. The choice of targets was made in discussions on our #performance Slack channel, a group created for this very purpose!

This approach made it very easy for people across functions to participate in the process, including our CTO, Paul. It was also very repeatable, as after each round of optimization our team can pick a new profile and begin all over again.

In this whole stretch of work, my responsibility was measurement, interpretation and prioritizing performance. The programmers would take that and run with it!

But since then my role has changed a little. At first we were focused on memory allocation, which has since then been significantly reduced. System stability is the next goal, and we’re focused on being able to profile and measure more of our system. To do this, we built a tool for reporting the number and cause of all service crashes. This has revealed common problems which were previously hidden, and this information is most valuable when it is shared with the rest of the team.

Beyond that, I’m really interested in taking what I learn and showing it to others (no, not quite forcing them!) I’m a specialist within a team of backend developers, and so I can sometimes help make a few tasks easier by talking about what I’m up to. Whatever knowledge I have about performance or whatever understanding I develop about our systems that’s important to me, is knowledge which can really help the team and the product if it’s shared with people who have a stake in it.

One of the main ways I talk about learnings is through Slack — I have my own #performance channel where I try to write up what I do. So I’m not holding up people’s time, and the devs with a bigger interest in a certain aspect of performance can chip in with their feedback, questions and suggestions. If there’s something to make with the data, then we can collaborate on a bunch of work to deploy it out.

Within the team there’s a huge amount of specialised system knowledge. So if people know what I’m doing — and the questions I’m trying to answer — it can be a huge help to tap into the knowledge that they have. Learning goes both ways and lucky I’m with an incredibly smart team.

With Adjust in particular, I enjoy the level of non-dysfunctionality within the company. Adjust works very well on a technical level — probably the most functional technical environment I’ve worked in.

A huge part of that has to do with the good integration of teams. For instance, Sysadmins to backend, and backend to SDK — everybody works together very well. Though I don’t know how best to describe that more specifically — it’s just a solid feeling we all have of us working as teams in a larger structure.

Also, we have the ability to deploy our work really quickly, making my job a whole lot easier.

Personally, measurement is also fast. In previous roles it would take as many as two days to get logs back, whereas here it’s much, much quicker to get the data I need.

On a personal note, I live far out of Berlin, which made a commute fairly difficult. However, Adjust allows me to work out-of-office for the majority of my time. It’s one aspect of working here that I really appreciate and probably wouldn’t find in many other places. With Friday lunches, unending snacks, and great work we have some really unique benefits to being here.