I thought I was reading my own blog post :) We use very similar tech stack at my current company: - Ansible for provisioning - Python/Django for website/api - VueJS for frontend(where needed, some pages are simple Django templates) - Celery for background work - uWSGI and Nginx as servers with AWS Load balancer - Elasticsearch for search - Redis for caching - Postgres with Postgis as main datastore - Datadog for moni…
How do you feel about using a dynamically typed language like Python for all your backend code? Whenever I had a codebase that grew past several thousand LOC it became pretty unwieldy pretty quickly for me personally. I'm curious if there's a conscious tradeoff for people using Python/Django to start because it's really fast to get up and running with (for existing or new devs).
The boring technology behind a one-person Internet company (2018)
161–170 of 464 posts
Re: The boring technology behind a one-person Internet company (2018)
#162Re: The boring technology behind a one-person Internet company (2018)
#163I thought I was reading my own blog post :) We use very similar tech stack at my current company: - Ansible for provisioning - Python/Django for website/api - VueJS for frontend(where needed, some pages are simple Django templates) - Celery for background work - uWSGI and Nginx as servers with AWS Load balancer - Elasticsearch for search - Redis for caching - Postgres with Postgis as main datastore - Datadog for moni…
How do you feel about using a dynamically typed language like Python for all your backend code? Whenever I had a codebase that grew past several thousand LOC it became pretty unwieldy pretty quickly for me personally. I'm curious if there's a conscious tradeoff for people using Python/Django to start because it's really fast to get up and running with (for existing or new devs).
- We use standard tools like flake8, isort, black for code linting.
- We are not following TDD, but we do write tests for all features. Pytest helps here
- Proper code reviews. I cannot stress this enough. As a Tech-Lead I have pushed for code reviews even when working on (supposedly) tight deadlines.
- We are also exploring to use type hints introduced in Python3.7.
PS Shout-out to Poetry(https://poetry.eustace.io/) to make our dependency management easier than ever. Updating third party libs is a lot easier now.
Re: The boring technology behind a one-person Internet company (2018)
#164Is this seriously considered as being a boring stack nowadays?
The stack described in the OP is a fairly modern stack...
Re: The boring technology behind a one-person Internet company (2018)
#165Re: The boring technology behind a one-person Internet company (2018)
#166I ran a small company like this quite successfully earlier in my career. If you think this is awesome what goes unmentioned is how lonely it can get. Also, any issues you have (business or technology) you bear the brunt of alone. A coworking space doesn't really help either imo, if you like working with others you will miss having coworkers. Just something I think worth mentioning if you think this is something you m…
Re: The boring technology behind a one-person Internet company (2018)
#167I thought I was reading my own blog post :) We use very similar tech stack at my current company: - Ansible for provisioning - Python/Django for website/api - VueJS for frontend(where needed, some pages are simple Django templates) - Celery for background work - uWSGI and Nginx as servers with AWS Load balancer - Elasticsearch for search - Redis for caching - Postgres with Postgis as main datastore - Datadog for moni…
How do you feel about using a dynamically typed language like Python for all your backend code? Whenever I had a codebase that grew past several thousand LOC it became pretty unwieldy pretty quickly for me personally. I'm curious if there's a conscious tradeoff for people using Python/Django to start because it's really fast to get up and running with (for existing or new devs).
There are four popular typecheckers that I'm aware of (mypy [1], pyre [2], pyright [3], pytype [4]), which is a little confusing, but any of the four will catch a lot of type issues that typical statically typed language compilers would catch. It's not as robust as true static typing - there are sometimes false positives and false negatives - but I find it helpful.
[1] https://github.com/python/mypy
[2] https://github.com/facebook/pyre-check
Re: The boring technology behind a one-person Internet company (2018)
#168First, that's a great stack and very well written/presented. One comment - he dismisses serverless as being overengineering . I think the correct POV, moreso for the single-man company, is that running a server to perform a task is the overengineered option. One can see from the snapshot the servers are indeed severely overprovisioned and underutilized. Building an api with api-gateway + lambda is less work than runn…
> lambda is less work than running django in uwsgi behind self-managed nginx If you discount building an AWS-specific deployment process that includes "pip install" from an AWS linux machine image, zipping the project, and putting it in S3.
Re: The boring technology behind a one-person Internet company (2018)
#169I thought I was reading my own blog post :) We use very similar tech stack at my current company: - Ansible for provisioning - Python/Django for website/api - VueJS for frontend(where needed, some pages are simple Django templates) - Celery for background work - uWSGI and Nginx as servers with AWS Load balancer - Elasticsearch for search - Redis for caching - Postgres with Postgis as main datastore - Datadog for moni…
I am curious, do you use Django Rest Framework on top of Django for your API?