Kshitij Sinha goes over building his job finding platform with Django. It's hosted on a single t2 micro AWS instance using the free tier.

In this episode of Running in Production, Kshitij Sinha walks us through his
job finding platform called Creative Hire. It was written in Python and Django
and is hosted on AWS’ free tier. It’s been up and running since early 2020
after the MVP was built in about 6 weeks.

Kshitij is the solo developer on the project. It’s a monolith split across a
few Django apps with 2 git repos (one for the back-end and one for the
front-end). It does a quite a bit of NLP to help categorize submissions and
more.

Topics Include

3:58 – Motivation to rewrite the app in Django and Python
6:29 – It’s 1 monolithic Django app that’s split up with Django apps
11:12 – Django REST Framework is used as an API back-end with React on the front-end
15:48 – It’s about 200k lines of Python and 78k lines of JS split across 2 git repos
18:13 – Picking the right NLP Python library (he went with spaCy in the end)
23:44 – Redis is the back-end for Celery and it’s used for caching too
27:41 – Using Ant Design Pro to help manage front-end assets (which uses Webpack)
30:36 – Docker is being used for everything except nginx runs directly on the host
33:47 – It’s hosted on a single EC2 instance (free tier) on AWS running Ubuntu 18.04 LTS
41:34 – The server was set up manually by mostly following tutorials
42:40 – Using Mailgun and Sentry, also right now Creative Hire is free during early access
45:58 – The process to develop and deploy code to production
53:13 – Database backups happen about once a week and how alerts happen
56:12 – Best tips? Have a test environment and make small changes when pushing new code
58:28 – Besides their site, Creative Hire also has a Facebook page

Links

📄 References

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html

⚙️ Tech Stack

































































































































































































































































































































































































django →



























































































































































python →





























































































































































































































































































































































































































































































































































































































































































































react →



















































































































































































































































aws →





































































































































































































































































































































































































































































































































































































circle-ci →



















































































































































































































































































































































































































firebase →

































































































































































































































































































































































































































































































































































































































































































































lets-encrypt →























































































































































































































































































































































































































































































































































































































































































mailgun →





























































































































































































































































































































































































































































netlify →





























































































































































































































































































































































































































nginx →





































































































































































































































































































































































































































































































































postgres →

























































































































































































































































































































































































































































































































































redis →

































































































































































































































































































































































s3 →

























































































































































































































































































































































sentry →



















































































































































































































































































































































































































































































































































































































































































































































































ubuntu →



























































































































































































































































































































































































































































































webpack →





















🛠 Libraries Used

https://github.com/boto/boto3
https://github.com/celery/celery
https://github.com/encode/django-rest-framework
https://spacy.io/
https://github.com/alexfernandez/loadtest
https://pro.ant.design/
https://gunicorn.org/
https://github.com/KristianOellegaard/django-health-check

Support the Show

This episode does not have a sponsor and this podcast is a labor of love. If
you want to support the show, the best way to do it is to purchase one of my
courses or suggest one to a friend.


Dive into Docker is a video course that takes you from not knowing what Docker is
to being able to confidently use Docker and Docker Compose for your own apps.
Long gone are the days of "but it works on my machine!". A bunch of follow
along labs are included.


Build a SAAS App with Flask is a video course where we build a real
world SAAS app that accepts payments, has a custom admin, includes high test
coverage and goes over how to implement and apply 50+ common web app features.
There's over 20+ hours of video.