
Brightpath Is a Formative School Assessment Tool
with Nick Janetakis and Kye Russell
Running in Production · Nick Janetakis
November 23, 20201h 5m
Show Notes
In this episode of Running in Production, Kye Russell goes over running a formative school assessment tool for 800+ schools in Australia. It’s built with Django and it’s been running in production since 2017 on AWS.
Kye is the solo developer on the project. It’s a monolith split across 10+ Django apps. They’ve gone all-in with a bunch of AWS services and Kye sticks to a number of best practices such as having tests, linting and using services to help keep things running smoothly.
Topics Include
- 7:04 – Motivation to rewrite the app in Django and Python
- 9:24 – The Django admin and having a monolith split into 10-15 Django apps
- 14:59 – About 50k lines of Python code, 10k of Django templates and 10k of JS
- 20:38 – Interesting Python / Django libraries used in the project
- 28:35 – Postgres as a main SQL DB and Redis for caching + SQS & Celery for bg jobs
- 32:24 – Docker is being used in development, nginx + uwsgi is being used too
- 35:24 – Going all-in with AWS for hosting and ISO 27001 compliance
- 45:35 – Dealing with a massive amount of user uploads, virus scanning, etc.
- 48:58 – Linting the code base with Black
- 50:28 – Deploying code with Fabric, the Python AWS SDK and baking AMIs
- 55:36 – Database backups, S3 is super reliable and CloudWatch alarms
- 59:40 – Using Sentry for error reporting and APM solutions
- 1:03:06 – Best tips? Use boring technology whenever you possibly can
- 1:05:15 – Kye has a site with 1 blog post and he’s also on Twitter
Links
📄 References
- https://aws.amazon.com/compliance/iso-27001-faqs/
- https://en.wikipedia.org/wiki/Application_performance_management