We have started a new small internal project for automating a few workflows around counting worked hours and time offs. The application is a slack bot on top of node js, TypeScript and PostgreSQL database. We use 3rd party APIs to fetch data about the times which we need to accumulate and process to calculate valuable information to our users.
An automated testing suite for your application is like a feature requirements document. When this suite is passing, it means that the features are delivered correctly as described in the requirements.
Last week I've been invited as a guest in Sudolabs Products podcasts. I've been interviewed by the host and my colleague Ján Koscelanský on my experience with building and leading the team behind The Expert. We were also talking about implementing Continous Integration and End to End testing with Cypress framework. I have to admit, it was a wonderful experience and I've enjoyed it. I'd like to do it again in the future.
We strongly recommend using a logging library such as Winston (commonly used in node.js programs). Libraries should provide an easy way to choose a transport which will be used as on output for logs.
Having good error handling practice is very important when building complex applications. Applications which consist of multiple applications such as web applications,
So I've been trying to set access to my CMS for a long time now. The problem was that in order to have CMS accessible through my domain, it requires an OAuth server. I've figured out that creating a custom serverless function which will handle the authentication with GitHub would be sufficient.
Technical debt is a massive problem that costs a lot of time for everyone working on the team. It should be part of the development cycle to eliminate it.