#💡reflection
We've had great experiences with Python-based back-end [[tech stack]] as well as Node.
Both have a great ecosystems of tools for most of the regular web-related tasks.
### Why Node.js?
In our experience, using one programming language across the entire codebase results in a more cohesive engineering team and a development environment that encourages cross-domain expertise. Even if the engineering team is divided into front- and back-end focused engineers, the ability to review each other's code, to advise on architecture, and to perform small fixes outside one's own area of expertise has great benefits.
Otherwise, we feel it's a future-proof choice. With JavaScript being the most adopted programming language in the world, we probably won't have difficulties finding skilled engineers in the foreseeable future.
### Why Python?
Python may not be the most beloved programming language (Rust [is](https://www.technologyreview.com/2023/02/14/1067869/rust-worlds-fastest-growing-programming-language/)), many of us admire its simplicity, clarity, and vast ecosystem.
While Python is slower than JavaScript, the speed of development and the ability to maintain complex projects are often more important than pure performance. If performance is the key requirement, then perhaps [Go](https://go.dev/) or [Rust](https://www.rust-lang.org/) are better choices. But when it comes to the speed of creating complex backends, then Python provides.
Additionally, being _the_ choice for machine learning, data science, and ML integration, Python could be a wise consideration for projects that are expected to evolve in this direction.
---
<font style="color: #F86759">Contributors:</font> *[[Mykhailo]]*
<font style="color: #F86759">Last edited:</font> *2024-04-16*