When starting a company built on mathematical concepts Julia seems like an obvious choice because of its capabilities for enabling rapid prototypes, rewrites, and pushing for performance early. This talk presents our journey to build a Julia production app. In particular, we present how we use a monorepo within a distributed team and how we set up our continuous-integration infrastructure. Finally, we introduce an open source project which aims to make it easier to write Julia serverless apps.
The Julia language enables rapid progress even with a small number of software developers, as evidenced by its rich ecosystem, which makes it a great language for startups building a product based on state-of-the-art technologies drawing from advanced mathematical concepts. However, there are challenges in building a serverless web application, notably regarding hosting, packaging and serving the final product with minimal latency.
In this talk, we present a few of our development practices and our experience with using Julia to build a web service. Firstly, we will present the benefits of using a monorepo with a substantial number of submodules in a fully-remote distributed team.
Secondly, we show how we organised our pipelines on GitLab and how we keep everything as fast as possible to ensure testing consistency and prompt developer feedback. We address the challenges in doing multiple daily deployments that are dependent on time consuming custom system image builds, as well as in identifying and debugging issues.
Thirdly, we show our use of several specialised docker and system images, which combined with several unregistered packages poses additional challenges in dependency management.
To conclude our talk, we introduce an open source project that can be used as a starting point to implement Julia web services that can be deployed to AWS Lambda.