We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
"Getting 50,000 Companies on Board with Clojure" by Cam Saul
Discover how Metabase scaled to serve 50,000 companies using Clojure. Learn about their successful transition from Python, hiring strategies, tooling, and maintaining code quality.
-
Metabase successfully transitioned from Python to Clojure in 2014, with improved developer experience and deployment simplicity
-
The team consists of ~80 people (40 engineers), split between Clojure backend and JavaScript/TypeScript frontend developers
-
Key hiring insights:
- Clojure has been a selling point rather than barrier
- Successfully hired developers without prior Clojure experience
- Quality over quantity in candidate pool
- Remote-first with team members worldwide
-
Extensive use of tooling and custom solutions:
- CLJ-Kondo for linting and code quality
- Custom test runner (Hawk) built on top of eftest
- i18n framework with PO editor integration
- SQL parsing library (Macaw) for database compatibility
- Heavy use of Honey SQL 2 with custom extensions
-
Code quality maintained through:
- Extensive schema validation using Malli
- Custom linters and Kondo rules
- Strong emphasis on testing (6000+ tests)
- Automated enforcement of coding standards
-
Project scale:
- 1,600 Clojure source files
- 325,000 lines of Clojure code including tests
- Supporting numerous SQL databases and data sources
- Large open-source community engagement
-
Pragmatic approach to language adoption:
- Gradual transition strategies
- Mixed language environment (Clojure/JavaScript)
- Focus on developer productivity
- Emphasis on maintainable code
-
Benefits of choosing Clojure:
- Excellent JDBC library ecosystem
- JVM deployment simplicity
- Reduced framework churn compared to JavaScript
- Strong data processing capabilities