In backend development, my current stack involves Node.js, NestJS, and PHP.
Nearly every app I have launched in the past had the backend done also by me. In order to improve the development speed, performance and reliability, I have changed languages and frameworks already multiple times, from PHP to Node.js; configured servers using just the shell, then Ansible, and now Docker and Kubernetes.
The lessons I learned while doing all these apps will be useful for me forever, no matter what framework I will use in the next project.
What I can do for you at that side is:
- lead development of backends in Node.js/PHP;
- splitting the backend into separate domains and microservices;
- cooperation with and creation of APIs (like REST, GraphQL, SOAP), remote data synchronizations, cloud servers, asynchronous workers;
- using different types of databases (like PostgreSQL, MySQL, SQL Server, Elasticsearch, CouchDB, Redis);
- dividing the servers into different machine nodes / docker containers; database sharding; load balancing;
- refactoring existing applications, by improving code readability, separating concerns into separate functions/classes/modules, taking the business logic out from your request/response layer into separate modules (DDD), and moving the app architecture into an event-based one;
- writing unit and e2e tests.