Live data from Hacker News

The boring technology behind a one-person Internet company (2018)

broadcast.listennotes.com

161–170 of 464 posts

Re: The boring technology behind a one-person Internet company (2018)

#161

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).

Right - I'm totally on board with the overarching goal of keeping the stack as simple as possible, but at the app level, for the best maintenance story, I would want types.

Re: The boring technology behind a one-person Internet company (2018)

#162
post #148

Earlier quoted context omitted.

How big is your team? Mind disclosing what the SaaS is? I'd love to learn more.

I'm the only dev

Would love to pick your brain about how you grew and scaled up as a 1 man team, email me? mark@gun.eco

Re: The boring technology behind a one-person Internet company (2018)

#163

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).

For us, we follow a very tight convention around how we write code. This has helped us in maintaining the codebase. Of-course some tools help a lot too:

- 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)

#164
post #134

Is this seriously considered as being a boring stack nowadays?

Yea I feel like an actual boring stack would be LAMP w/ JQuery & bootstrap on some hosting provider (and the blog would be written on wordpress).

The stack described in the OP is a fairly modern stack...

Re: The boring technology behind a one-person Internet company (2018)

#166
post #82

I 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…

The lonely aspect is incredibly difficult, especially if you're an extroverted person that draws their energy from collaborating with others. I also find the lack of accountability to others as hard. I know there are services that cater to this type of founder/freelancer.

Re: The boring technology behind a one-person Internet company (2018)

#167

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).

Python supports optional static typing annotations now.

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

[3] https://github.com/microsoft/pyright

[4] https://github.com/google/pytype

Re: The boring technology behind a one-person Internet company (2018)

#168
post #153
post #30

First, 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.

You can go copy/paste something like https://circleci.com/blog/deploying-a-serverless-application... and get easy lambda deployments in about 10 minutes.

Re: The boring technology behind a one-person Internet company (2018)

#169

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…

I am curious, do you use Django Rest Framework on top of Django for your API?

Yes.
Post reply on HN