Why?

“We use OpenSource to make us faster, better and to allow us to concentrate on the real business concerns. We don’t always find exactly what we need, so sometimes we build / customise our tools. We believe that by contributing these back we can make the development community a better place.”
– Some developer @ JUST EAT

At JUST EAT, we are using and abusing many many open source projects because they’re solving a common problem shared by us developers, we have very little interest in re-inventing the wheel, and quite simply, they work and are tested by a community far greater than the few of us here.

That said, we are constantly innovating and every now and again we come up with something super neat that we can’t find an ‘out-of’the-box’ answer to; which we would like to contribute back to the community in the hope of solving some more of those common problems.

Whether we’re running open source software in production, or using open source productivity tools in order to get us out to production quicker, our platform is built on open source, and morally it feels that by becoming contributors we are doing the right thing.

 

Our Projects:

  •  JustBehave
    “A small unit testing library designed to give you readable BDD style syntax; making it easier to do the right thing by tests.” 

        GitHub: //github.com/justeat/JustBehave

  • JustSaying
    “A mini-service bus. Implemented on top of AWS (SNS/SQS) designed to give you easily configurable component to component messaging with minimal fuss.”

        GitHub: //github.com/justeat/JustSaying

  • Topshelf.Nancy
    “A Nancy endpoint for the Topshelf service host providing additional support around URL reservations. Topshelf.Nancy is an extension to Topshelf that allows you to to serve content over http via Nancy. This is done by configuring a host and port for Nancy to listen onto via a NancyModule which serves your content.”

        GitHub: //github.com/justeat/Topshelf.Nancy

  • OpenRastaSwagger
    “A Swagger / Swagger-UI implementation for OpenRasta. Swagger and the Swagger-UI are a nice, pretty and standardised way to express public meta-data over your RESTful API. Instead of hand-cranking documentation that rapidly gets out of date, let the code you execute document itself.”

        GitHub: //github.com/justeat/OpenRastaSwagger

  • ZendeskApiClient
    “A .net Api Client NuGet package for use with the ZendeskApi v2. Designed to be RESTful, discoverable and easily mockable.”

        GitHub: //github.com/justeat/ZendeskApiClient

  • OpenRasta OWIN Middleware
    “OWIN host for OpenRasta, allows OpenRasta to be combined with other MiddleWare opening the possibilities.”

    GitHub: //github.com/justeat/openrasta-hosting-owin

  • JustFakeIt
    An InProcess HTTP server which can be mocked and asserted against to allow for full stack HTTP testing.”

    GitHub: //github.com/justeat/justfakeit

 

Basic Contribution Guidelines:

We follow a pretty standard process for GitHub, described pretty well by the dudes over at gun.io: //gun.io/blog/how-to-github-fork-branch-and-pull-request/

We’ve placed a contributing.md file in each of our repos which detail any specific requirements for contributing to that project, but the basic gist is something alone these lines:

  1. Open an issue – have a conversation. Someone on the moderator list of the project will reply to you as soon as we can.
  2. You can always tweet us @justeat_tech 
  3. Fork
  4. Test … Work … Test … Work … lalala
  5. Open a Pull Request against the issue
  6. We will work through getting your extensions merged in

 

 

Some of our Principles:

  • We want to contribute back
  • We want YOU to contribute
  • We would LOVE to hear your feedback; via issues raised, tweets, blogs – (we’re not afraid of criticism)
  • We have a responsibility to make our projects readable, easy to develop against and with a good (well written) test coverage
  • Good test coverage –> high confidence

 

Licensing:

Our Open Source software is generally licensed under the Apache License, Version 2.0. Please check the individual project’s license.txt file for specifics.