Colin Eberhardt, technology director at Scott Logic and the first At-Large Member of the Symphony Software Foundation, isn’t shy about expressing his appreciation for open source. He spends many weekends and evenings on GitHub as an active member of the open source community, contributing to projects of various scales. With each project, he learned something new.
So what are some of his favorite projects, and why? Here is his top five in no particular order:
- iOS Transitions Library: a collection of iOS7 animation controllers and interaction controllers, providing flip, fold and all kinds of other transitions is really popular. It’s great to see it being used in so many apps!
- d3fc: components for building interactive charts with D3(v4), a project which he co-founded, but very much has become a team effort;
- Yoga: a facebook project, used by ReactNative, where he helped out with the build, distribution and test infrastructure;
- ToDoMVC: helping developers select an MV* framework, a community project where he put in place test automation;
- The tens (or possibly hundreds), of projects where my contributions have been really small, fixing typos, improving documentation clarity and providing feedback. Every little helps!
A closer look – and a wish list.
Colin started his career as microscope designer. While a fun job to be had, he realized that software development was much more of a universal skillset that would allow him to pursue an equally fulfilling, but more stable career. This decision eventually led Colin to Scott Logic where he had the opportunity to work with large investment banks - or deal with the complicated stuff as he describes it - which he generally finds to be more challenging and fun!
In his pursuit to resolve more complex challenges and closely working with financial institutions as a full stack developer, he recognizes how teams are often still at loss when it comes to open source. Technology has changed so rapidly in the past 10 years with the shift from desktop apps to the web and open source, being a prime example. Long gone are the days where developers could solely rely on third-parties to provide shrink-wrapped development tools, frameworks and services, now they rely on a heterogenous mix of proprietary and open source tools.
The widespread use of e.g. React is a perfect example of how the technology evolution can catch out fintech developers. Getting used to community support is one thing. Compliance, understanding of the actual licensing agreements, a far more challenging one. It takes a team - or a community - to figure it out.
Still, in his view it’s a challenge worth tackling. He hopes that sooner rather than later fintech developers will become real contributors and give back to others’ open source projects - something which very few do.
What can banks do to help facilitate this process? While compliance remains difficult, the business can help facilitate the contribution process itself. Unfortunately, there is not much conversation within banks on how their developers can collaborate within the open source community. Same for access to GitHub, or any other open source community. Yet it’s value is not to be under-estimated.
Work in progress.
Currently, Colin, together with our own Devops Director, Maurizio Pillitu, is working on a cla-bot, a GitHub bot for automation of Contributor Licence Agreements (CLAs). The bot checks whether contributors have signed an agreement, adding labels to PRs if they have, or prompting for signature if they have not. You can check progress and the roadmap here. It is currently being used on ContainerJS, adding the 'cla-signed' label to pull requests where all committers have a signed CLA with Symphony, but the idea is to use it for all projects hosted by the Foundation
This project is a perfect example of where an active community has helped resolve a common challenge. It also underpins his strong belief in trying things out, to get the code out there, and once the ball is rolling, to steer it in the right direction without losing sight of it.
Do you have any examples where a community helped you resolved a common challenges? Or, if you have any fun projects to share, we’d love to hear it about it.