Here at OVO Energy we love open source and we leverage a lot of it to build our systems.
We take the time out every year to give back to the open source community. This Open Source Friday was our third year running where our engineers made contributions ranging from adding new functionality to testing tools to new features in Scala libraries.
We started off the day by discussing what we planned to work on with each other and formed pairs if there were overlapping interests.
We then split off into groups and worked throughout the day - got together for a group lunch and then went straight back at it!
We had some fantastic contributions by the end of the day :
Michael Wizner and Thomas Kaliakos made some changes to scala-steward. scala-steward is a tool that you can run against Scala projects to check for out-of-date dependencies. It automatically opens PRs against the repo to update the dependencies. Michael and Thomas added functionality where you can now run scala-steward against private repos that have private dependencies.
Teodora Danciu spent time contributing to the scala-exercises project, adding to the “Red Book” section. Three exercises in the monoid chapter are now in a pull request waiting for approval, courtesy of Teodora’s efforts! She intends to add some more contributions over time.
Kieran Allen worked on OVO’s open-sourced data-mocks library. data-mocks allows you to mock an api’s responses in your tests. He addressed 30+ security vulnerabilities and also added functionality that allows you to pass through to a real instance of an api if a mocked version is not available.
An academic paper was made public the week before Open Source Friday describing a new type of effect in functional programming called a "Selective Applicative Functor". These let us do things we could only previously do with monads in a safer way. Applicatives let us describe computations which can be run in parallel. Monads let us describe sequential and if-this-then-that computations. The problem with monads is you don't know until the program runs exactly what computations will be carried out. This makes things harder to test and resources harder to plan for. Selective (applicative) functors sit in the middle of these ideas and give you the power to describe what effects will definitely happen and what effects may happen. Chris Birchall and Hamish Dickson implemented and raised a pull request for Selective Applicative Functors in one of Scala's main functional programming libraries, typelevel/cats.
Mike Brooks from the production-engineering team created a pull request to update some out of date and insecure recommendations on the GCP terraform provider for creating a GKE cluster.
Mike also worked with Dan Flook to create a new repository to store useful custom resources that are not yet supported in CloudFormation. This has two resources in it for now with plans to grow it in the future.
Nicolas Lagoutte spent some time raising a PR against esquery to iterate over a Node’s properties.
Jack Treble and Alexandru Buzneanu paired up to open-source a plugin that Jack had been working on at home. The plugin allows you to use IAM authentication to access an RDS database when using the slick database library for Scala.
A special thank you goes out to Giuseppe De Moja, Michael Wizner and Tom Camman for organising Open Source Friday this year! We had a fantastic time working together and we’ve already got some ideas on how we could improve our next one. We’ve been thinking of opening this up to people outside of OVO Energy so you can meet some of us, understand how we work and give back to the open source community. Keep an eye out for our Open Source Friday event next year!