![](https://storage.googleapis.com/ackee-blog-cms-static-files/medium_backend_stack_blog_cover_4c10b92603/medium_backend_stack_blog_cover_4c10b92603.png)
backend
![](https://storage.googleapis.com/ackee-blog-cms-static-files/medium_backend_stack_blog_cover_4c10b92603/medium_backend_stack_blog_cover_4c10b92603.png)
![](https://storage.googleapis.com/ackee-blog-cms-static-files/medium_grpc_0dbde6eea4/medium_grpc_0dbde6eea4.png)
Welcome to gRPC, Please Follow Me…
![](https://storage.googleapis.com/ackee-blog-cms-static-files/medium_Cache_invalidation_blog_71335dcbe0/medium_Cache_invalidation_blog_71335dcbe0.png)
Redis: Cache Invalidation Done Better
![](https://storage.googleapis.com/ackee-blog-cms-static-files/medium_node_testing_framework_2_09e1699df6/medium_node_testing_framework_2_09e1699df6.png)
Node Testing Frameworks: The Good, the Bad, the Slow and the Hungry
![](https://storage.googleapis.com/ackee-blog-cms-static-files/medium_Blog_Cover_Jest_v01_8bf2e182cd/medium_Blog_Cover_Jest_v01_8bf2e182cd.png)
Jest: Does It Test Funny to You?
![](https://storage.googleapis.com/ackee-blog-cms-static-files/medium_Blog_cover_web2020_jirka_smolik_e711ffea27/medium_Blog_cover_web2020_jirka_smolik_e711ffea27.jpg)
Jiří Šmolík: Grey Eminence of Karlín Backend
![](https://storage.googleapis.com/ackee-blog-cms-static-files/medium_blog_cover_2020_snyk_d34ee08c59/medium_blog_cover_2020_snyk_d34ee08c59.png)
How to Address Vulnerabilities in Applications? These Tools Will Solve Them for You
![](https://storage.googleapis.com/ackee-blog-cms-static-files/medium_blog_cover_2019_TS_2ac8363a10/medium_blog_cover_2019_TS_2ac8363a10.png)
Typescript: Function composition and recurrent types
![](https://storage.googleapis.com/ackee-blog-cms-static-files/medium_Microservices_blog_cover_1_a13f7db6d0/medium_Microservices_blog_cover_1_a13f7db6d0.png)
Micro services in the agency development?
![](https://storage.googleapis.com/ackee-blog-cms-static-files/medium_react_web_a8c1b1b77c/medium_react_web_a8c1b1b77c.png)