Our philosophy

Introduction

At Shoppingstreet.io we have a philosophy. It can be reduced to the following. (1) When it comes to technology, always choose specialist services. Do not build everything yourself! (2) Use separate microservices for different things and connect the technologies. (3) Use open-source technologies that are scalable. (4) Use widely adopted technologies that have proven themselves and for which you may easily find specialists. (5) Document your code, and (6) document your application.

Of course there are more principles we abide by. But these are the most important guidelines for us. Let me explain some of them in more detail below.

Specialisation

Specialisation is an overarching principle. Microservices are a logical result of specialisation. Specialisation means that we choose to use specialised services as much as possible.

Today, a website team running an e-commerce site can store product inventory in Shopify, product listings in Salsify and reviews in Bazaarvoice. A team running a paywalled content site can create stories in WordPress, store video in JWPlayer, user data in Auth0, and subscription data in Recurly.

When website teams want to add search, they can turn to Algolia; for payments, Stripe; for analytics, Segment; for A/B testing, Optimizely.

Source Gatsbyjs 2018 blogpost, by Sam Bhagwat

Microservices

Microservices is a loosely defined term. You can find an explanation on Wikipedia. To use Microservices means that you do not shun using lots of specialised services. This has several advantages:

  1. Your application becomes more scalable;
  2. You do not have to build everything yourself;
  3. You do not have to maintain everything yourself;

Open source

Using open source software is the norm. Not just with us, but everywhere. Open source does not require much explantion anymore.

Widely adopted technology

We experiment with technology all the time. We do not want to miss some new technology. For client projects we solely use widely adopted technologies.

Comment the code

We build something and transfer it to our client. It is not our intention to bind our clients to us by making our code hard to use for others. When you have worked with us in the past, your new developer(s) will, or at least should, be able to easily understand the code we have written. The result for you: you can easily transfer a project to other developers without worrying too much about a long phase by new deveopers to get-to- know the new code.

Document the applications

When different (microservices) are used you have to connect different services to each other. This requires documentation. It should be clear

  1. what the function of the chosen technology is;
  2. how the technologies connect;
  3. how you should use the technology;