I recently had the good fortune to travel to the London office to work with the HQ team for a week.
Funding Circle currently has two offices: the founding office in London and an office in San Francisco. There are development and business teams in both offices, and we work together on different parts of our global platform. It’s a delicate process to keep us all coordinated and moving in the same direction, and my trip was part of our effort to keep our teams aligned and share what we’ve learned.
Since we’re two parts of the same team and our work overlaps different applications across our stack, we want to optimize the communication between the two offices. We need to be more than just email addresses and GitHub handles to each other, and working together in person is a simple way to do this.
There was a great presentation by Rafa Paez on optimizing Ruby code. He presented some strategies and shared how he sped up a particular slow query. Even though I’ve been writing software for years, it was valuable to see a developer’s thought process when solving a problem.
Knowledge sharing is vital. Not only do we hire junior developers who haven’t worked on sites that need to scale, but we can’t expect even the more experienced developers to have background on the same challenges we have. As the team grows, it is critical to spread knowledge, and we encourage this behavior.
Code to the principle of least surprise. It’s important to agree on patterns, naming, and libraries so each developer does not need to reinvent the wheel. Here are a few examples of how we maintain consistency with existing and new applications.
- APIs: We discuss the best way to build our internal and external APIs so services have an easier time communicating.
- Naming: We share a style guide that describes the importance of naming and prescribes a set of conventions to make code easier to reason about.
- Libraries: Our style guide also lists the Ruby libraries we use for common tasks so we don’t need to solve the same problem in multiple ways.
The biggest lesson learned: we are all on the same team striving to build a successful company. Meeting people I’ve only talked to online is powerful (and fun!). We can now use more subtlety in our words because we understand each other more, and it turns out that there are some brilliant, fun, and amazingly welcoming people at Funding Circle. I can’t thank the team enough for sharing their favorite restaurants, explaining what pudding is (not always what an American thinks it is), or helping me figure out the best way to get around London.
Beyond the specifics of the code or the business requirements, we met as friends, and we’re better for it. I hope to visit again, but in the meantime, my coworkers will have the same opportunity to visit.