The company I work for is a data-driven company. It is necessary for us to make the best decisions and aim for our core value: being customer-centric.
Naturally, when we iterate on a feature, we study the data to define how to improve it. And because we can’t improve what we don’t measure, we measure the results of our new version with the previous version.
To do this, we almost systematically perform AB tests that we couple with our events database.
And since it’s HacktoberFest, we published one of our tools in open source here:
Next part of this article…
The Doctrine Project is a very big project, used and integrate in many PHP projects or libraries. It’s a set of package, whose the best known is probably the ORM build on top of the DBAL package. But there’re also many great packages like the Annotation, the Collections or the Cache. They are standalone and can be installed with Composer. So whatever is already used in your project, you can pick whatever you need in.
Let’s go deeper in a very small but very important doctrine project: the Instantiator!
A small, lightweight utility to instantiate objects in PHP without invoking…
API Blueprint is another specification for describing REST APIs. It written in a Markdown-flavored syntax, but not exactly. It’s based on on the element names, order, spacing, and other details. If you describe your API with API Blueprint, you will find a lot of tools that support it.
API Blueprint is simple and accessible to everybody involved in the API lifecycle. Its syntax is concise yet expressive. With API Blueprint you can quickly design and prototype APIs to be created or document and test already deployed mission-critical APIs.
The API Blueprint ecosystem is very big, there’re plenty of tools in…
I love this comic, because it definitely apply to monitoring services:
Here are the 5 reasons why creating a new monitoring service:
— Need something simple and fast to configure
— Wan’t to have distinct information about our deployment impact
— Powerful configuration that could be updated by an API
— Errors reports useful for our ISO-27001 compliance audit report
— Plan affordable for companies not part of Nasdaq
And here happen PepperReport.io 🌶
Too many service are made to manage 10 or 20 checks. But If I need more, it became complicated to navigate or find them. I don’t…
A one line CURL command could monitor any http endpoint with the same effectively that PepperReport does it.
But when you want to do this for thousand of endpoints, every minutes from many location in the world, with a history queryable in a fraction of second and detect even tiny Apdex trend, you will face many issues.
Creating this with a viable SaaS vision also add more new constraints: It should be launched quickly and with a small cost per month infrastructure. It have direct incidence on how the service should be designed. For example there’s no money for renting…
Before launching our SaaS project, we’ve plan a closed beta for few selected users, to retrieve our first feedbacks.
We decide to allow new sign up with an invitation secret code.
The main idea was to generate secret code that will allow sign-up form validation and we doesn’t wan’t to manage the storage of those codes. At least, we should be able to identify already used code to avoid duplicate sign-up.
Last month I’ve made a small presentation for the Golang Marseille Meetup.
It’s about one of my medium article:
That’s a feedback of my very first lessons during the creation of a SaaS product with Golang. It’s about routing, middleware and Let’s encrypt.
How to update your postgres version without updating all your Symfony project deps.
Symfony 2.8 is a long term support version with security fix until november 2019. That’s why we still have in production projects using this version of Symfony. Perhaps, just like me, your stack architecture with micro-services may require a new version of Postgres, like the 10.5.
And so you have an issue like this when trying to update or validate or create a schema diff with doctrine:
SQLSTATE: Undefined column: 7 ERROR: column “min_value” does not exist
LINE 1: SELECT min_value, increment_by FROM “collection_user_id_seq”
I’m planing to release the forum application used by forumforall.com. A Php7/MySQL/Redis project powered by Symfony 3.4. I’ve already try to release it with a open source version many times in the last years, but every attempt failed.
One of the difficulty, is to make installation easy for non IT people. You can’t ask them to use composer to bootstrap the project, even install composer or using command line. Mostly, the maximum you can require is to unzip a folder and move it to a FTP location.
During my free time, I manage different sides projects. One of them, and the oldest one, is ForumForAll.com. A forum hosting service. I’ve create it in 2003, when nobody have ever heard the “SAAS” terms.
It’s still open and in use, hosting more than 100k forums, totaling more than 6 million messages by something like 500k users. It’s powered by php 7.1, Symfony 3.x, Redis, Socket.io, nodeJs, MySQL and secrets recipes. But the metrics I really enjoy from this project, are the respond time and the cost of the infrastructure: 15.99€/month.
Symfony lover, Gopher and opensource enthusiast. Ex-firefighter 🚒, I miss cuting out cars 🚙.