
The boring technology behind a one-person Internet company (2018) - mxschumacher
https://broadcast.listennotes.com/the-boring-technology-behind-listen-notes-56697c2e347b
======
whalesalad
Technology is usually just a means to an end. Unless IP is what you are
selling, boring is great. I’ve seen SO many teams burn SO much energy on
complicated stacks just to drink kool-aid. It’s mind bogglingly frustrating,
especially as a contractor. At the end of the day it’s great for me: I get
brought into shit shows to clean up the mess. But deep down, I want projects
to succeed and clean/sound _systems_ architecture is how you do that. Doesn’t
matter if it’s PHP, Python or Java.

It hurts to see people continue to make mistakes over and over, so I’m working
on a new website and series of engineering posts to help share my approach to
a lot of these problems.

Any product I start building usually begins in Rails. React is great. Vue is
great. It’s not necessary, good ol’ request/response is just fine. You don’t
need a service mesh. You don’t need Kafka. You add that stuff later when it’s
required... if it’s required. Rails can’t be beat for startups. I wouldn’t
waste any time on a single page app, it’s a completely pointless endeavor
unless you have proven traction, users, revenue etc... and can afford to do it
correctly.

~~~
kabacha
Why is HN so against people who _enjoy_ engineering? Why should I run some
run-of-the-mill stack that has enourgmous legacy cruft and just not "fun". Not
every business wants to be sillicon-valley optimized money farm - some people
want to do some enjoyable work.

~~~
corndoge
That's fine, but that's not engineering. Bridge designers do not try to build
bridges out of materials discovered in the laboratory last month.

~~~
PeterStuer
Research engineers do. GP said he is not aiming to build a profitable above
all else company. Maximizing fun in a hobby seems legit.

~~~
johannes1234321
For a hobby and for learning it is absolutely fine. The critique is on
businesses running that way fmeither since some developers want to drink the
cool-aid on the job or since the company wants to be "attractive" riding the
hype train. (How else could they attract the best developers? ;) )

------
jcroll
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 might want to pursue.

~~~
spiderfarmer
This feels like bragging but I also run a one man company and the loneliness
is what I enjoy most. Granted, I only work from 08:45 to 14:30 and some hours
in the evening, because I bring my kids to school and I pick them up in the
afternoon, but the hours when I’m alone, I am 100% productive. When the kids
are at home I mostly do some kind of manual labor to get some sort of
exercise. Right now I’m building a shed. Last year I built my home
office/guest house.

To make up for the missing social interaction I play football with friends, do
some consultancy jobs on the side and I help where I can with my son’s
football club.

This really is my dream job and I enjoy it thoroughly. I have no problems
staying motivated and every day I have loads of inspiration.

The moment I lose motivation will be a sign for me to sell everything and
start something new. I ran an online marketing company before this and that
was really exhausting for an introvert like me. Selling that company was the
best decision I ever made, apart from marrying my wife.

~~~
andretti1977
You have described exactly the kind if work/life balance i desire! I do enjoy
a lot working alone since i've got family with little children too. I won't
add any value with my comment, i just wanted to thank you since it feels just
a little bit easier to know somebody else is having what i want: one day i may
have it too.

~~~
spiderfarmer
You can do it. A good life/work balance is something I hope everyone will
find. It took me 15 years to get to where I am today.

------
jstummbillig
Ansible, AWS, SES, React and Cloudflare? Gusto, Notion and 10th of different
services and integrations? That's boring now?

I was expecting something more along the lines of PHP + a single MySQL
machine, plus all the accounting is done on a tablet made of actual stone.

This is not that.

~~~
pikzel
Agree. To learn all of this as a single developer is not an easy task either.
These are real frontend, backend and devops languages, frameworks and tools.
It takes time to learn.

~~~
ackbar03
I second that. This seems really full stack as you can get, but I'm not really
a professional dev by training, so I don't know if most people are this
hardcore. I built and host some web apps myself but everytime I have to switch
from doing something front end to back or vice versa I find I need to
refamiliarize myself with a bunch of stuff and have to stop myself from
panicking

~~~
jackcodes
It sort of depends, if you’ve worked in a couple of corporates where you have
to know a handful of various tools at each it quickly adds up to having enough
knowledge to quickly deploy even what hacker news considers ‘heavyweight
tooling’. Most of these tools have QuickStart guides that do get you most of
the way there for a basic use case. I’m running a similar solo project with an
almost-but-not-quite similar spreads of technologies.

But as I said, it depends on your history and what you work quickly with.

In the article the author says they chose Ansible because docker felt too
heavyweight and unnecessary. It’s true that docker has a lot of stuff you
don’t need in there, but trust me when I say Ansible is no picnic. In fact I
find it easier to take what I need with Docker and Kubernetes and get running
way quicker than I would ‘naked’ Ubuntu machines that I need to semi-manual
previsioning with shell scripts or Ruby scripts. I got up and running with
Kubernetes on DigitalOcean in less than a day, and Dockerfiles using familiar
technologies I’ve used before take less than an hour to iron out.

You’ll get people who say that Docker is overkill and unnecessary and far too
complicated for a solo project, but then you’ll get others who believe it’s a
small file with 20 lines of declarations, sat alongside a 30 line yaml file
that can provision all of your infrastructure instantly across any cloud
provider you choose.

------
mperham
I love these stories. I'm a one-person company too: contribsys.com.

My production server stack is Apache + some Ruby CGI scripts, to serve static
files and handle billing webhooks. I spend less than an hour per week on
devops maintenance.

KISS is the #1 principle when scaling a solo operation.

~~~
non-entity
> some Ruby CGI scripts

Didn't ruby remove its CGI libraries from their standard library somewhat
recently. I believe there were mostly helper libs, but I am curious how that
works.

~~~
zrail
CGI is just running a program in response to a request. Things about the
request are put into environment variables and POST/PUT bodies are on stdin.
Your program writes HTTP headers, two newlines, and the response body.

You don't need libraries. If you have reasonably low traffic CGI can get you
_really_ far.

~~~
yjftsjthsd-h
> If you have reasonably low traffic CGI can get you really far.

And even after that, I would expect that CGI augmented with some careful
caching (read: all static content and some dynamic content with sensible
expiration policies) will get you even farther without having to dramatically
change anything.

------
ademup
This seems super complex to me. I am a single dev that runs a $30k\mo software
based company off of PHP+MariaDB+bootstrap+jQuery+few other plugins. Hosted on
a managed HIPPA setup. The firewall+app+DB servers run me about $550\month and
I have excellent support. I spend effectively 100% of my time on business
logic\ui and zero time keeping up to date on infrastructure (and learning it).
Which means my customers benefit from me fixing problems and adding features.
Kudos to what works for you....super great... And, for me at least...it is
even more "boring" and awesome.

~~~
dtien
Do you mind sharing what the managed HIPPA setup is? What vendor do you go
with for that?

I've always wondered about how easy it would be to setup a SAAS that adheres
to HIPPA.

~~~
ademup
VMRacks (now hipaavault.com). I'm not affiliated, just a completely satisfied
customer. As to setting up the business, I would also recommend a HIPAA
auditing/hand-holding company. I use Compliancy Group ([https://compliancy-
group.com](https://compliancy-group.com)).

~~~
0b1010011010
Just finished my undergrad in cis, and have been grasping at the many services
in the industry. How did you find yourself in freelance within clients needing
HIPAA compliant?

~~~
ademup
I am surrounded by people in the primarily private-pay Mental Health space
because my (romantic) partner is a consultant in a tiny cottage industry. In
my case, it's 100% "people you know". Dealing in PII suuuuuuucks because I
constantly have an elevated anxiety about it. However, if it wasn't PII plus
the people I know and met......then I probably wouldn't have the opportunity I
have.

That said.....had I not done "this", then I probably would have done something
more lucrative and "easy". I see non-PII opportunities everywhere, and
(mostly) only hang around because what I do now pays the bills.

------
karambir
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 monitoring

\- Cloudflare for DNS

Some differences as I am working with a team:

\- We do use multiple branches and git tags for releases. Feature branches are
also common as multiple devs maybe working on different features.

\- We use Gitlab-CI a lot for testing and auto-deployment(ansible script can
be called from our machine as well)

\- Terraform for infrastructure provisioning. We have stopped provisioning any
AWS service by console. Once the service is provisioned by terraform, ansible
takes over.

I have tinkered with Docker, Hashicorp Packer but this setup has been dead
simple to reason and scale reasonably well.

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

~~~
jldugger
I don't think typing is the problem you make it out to be. You can specify
types in Python, and mypy will type check for you. And nothing about Python
means you'll have an unwieldy code base, I can only imagine you'd have the
same problems in Java.

The real reason to switch would be performance. The interpreted nature of
Python that makes things like Django and PyUnit possible also makes it kinda
slow. Some places choose to parcel out a few key services in a faster language
(C, Rust, Go) and use bindings to call out as needed.

~~~
octocode
Completely agree, and I'd like to add that it should only be broken out when
performance is actually a measurable issue and there's a good business case
for it.

A lot of people get caught up on "x is slow, y is fast" and try to over-
architect too early on, then end up focusing on the wrong parts of their
product, and sooner or later the project falls apart.

------
aprdm
That's awesome and it is a tech stack that I try to mirror and am confident
running myself as well!

It's incredible the amount of knowledge required for a single person tho when
you think about it eh? It's the full frontend (which I would have more trouble
with) + databases + caches + search engine + metrics + deployment + source
control + sysadmin all baked in a single person who is also trying to make it
a business!

Kudos for the effort and making it happen, one day I might be joining the same
journey with the same stack! Just gotta figure out what actually motivates me
to build a business on top of =)

~~~
mtnGoat
as someone who has only worked on small teams, i thought this was normal. My
current position is leading a small team, but we have interactions with a
number of teams inside of FANG companies and it's amazing the limited amount
of knowledge and access each position/person has. Most of my engineers can run
circles around our partners.

I always thought every engineer should know how to deploy a server, install
deps, understand caching, etc and setup an app... turns out, that is
apparently not even remotely expected at most companies. I guess the bigger
the company the more narrow the skillset required.

~~~
earthboundkid
And the thing is, generalists do better work. They do _less_ work overall
because there are fewer of them, but compare a typical enterprise 50 person
team to the output of a team of 5 generalists, hands down the generalists will
make a better product every time because there's no buck passing or shoulder
shrugging about problems.

~~~
caspar
IMO, the reduced output of a team of specialists vs a team of generalists has
less to do with generalists doing better work, and more to do with it being
impractical to hire specialists at lower levels of scale - and higher levels
of scale are less efficient.

A 3 person engineering team doesn't want to hire a specialist DB admin who
knows Postgres back to front but can't code. A company of 1000+ engineers
might, because they might have problems that require that expertise.

But any engineer working in a company of 1000+ engineers is also subject to
friction resulting from resource allocation inefficiencies, communication
overhead, regulatory compliance, etc: the reduced output from those factors
has little to do with the specialist engineers doing worse work, and more to
do with them working at the size of company that can afford to hire
specialists.

(You could make the case that buck passing is an example of resource
allocation inefficiencies, as it is often accidentally or purposely enabled by
company management, but nonetheless, that's not a generalist vs specialist
tradeoff.)

~~~
BigJono
Completely agree. IMO the optimal efficiency is easily a team of either 2 or
3, with one FE and one BE, and optionally someone doing dev-ops-y stuff for
both of them. After that point your 'output per man hours' can only really go
down.

~~~
vonseel
In economic terms, sounds like the marginal utility of adding an engineer goes
down significantly as companies get larger and past the start-up phase ;)

------
avip
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 running django in uwsgi behind self-managed nginx, and is guaranteed to
be more cost-effective for unpredicted load.

Same logic applies to the db servers - why not hosted?

And last - the inf is a good reminder that prefixing your api routes with _/
v1, /v2_ is always a good habit.

~~~
wenbin
Good point! For people who have tons of experience with serverless, serverless
is probably a better choice than running servers for some use cases.

As a small business owner, there are two types of cost that I need to
consider:

Time: the time I use to do A is the time I can't use to do B. Unfortunately I
haven't used serverless so far in my professional career -- in this sense, I'm
not full-stack enough :) It takes time for me to learn it, understand it,
operate it, and experience various outage scenarios to gain the true
learnings. It's more costly for me (probably not for others) to use serverless
than the things that I already understand. I'd rather spend more time on other
non-engineering things nowadays -- believe it or not, I spend 1/3 of my
working hours replying emails :)

Money: the money I spend on A is the money I can't spend on B. I decided not
to use api-gateway + lambda & hosted db servers, primarily because of $$$. I
actually did the pricing calculation a few times last year. In addition, api-
gateway + lambda also require some time for me to learn, which I should use to
talk to users, marketing, building new product feature, thinking (yep,
thinking also uses some time budget :)...

~~~
hbcondo714
> We need to track the API usage

Thank you for this excellent write-up. Monetizing APIs is always a great
topic; did you consider or will you consider using a 3rd party API management
service such as RapidAPI or Apigee to keep track and charge for API usage?

~~~
wenbin
Yes. I used rapidapi initially (v1) and built my own api gateway to replace it
(v2) earlier this year.

The api was launched in Dec 2017 right here on HN:
[https://news.ycombinator.com/item?id=15825900](https://news.ycombinator.com/item?id=15825900)

~~~
hbcondo714
I think your next project should be open source your api gateway so others can
monetize their apis too

------
tiborsaas
This is where I'd put a 10x developer :) Complete competency across the whole
stack with a solid understanding of a profitable operation.

~~~
john_moscow
Yep, learning how to run your own business is the only way to convert 10x
development aptitude to a 5-10x pay increase. Otherwise you get 1x pay, 10x
the expectations, upset colleagues that feel inferior in comparison, and very
little promotion chance because the company needs you right where you are.

------
baalimago
PostgreSQL, Redis, RabbitMQ, Elasticsearch, Django/Python3, uWSGI, Celery,
Celery Beat, Supervisord, Amazon S3, CloudFront, React, Ansible, Datadog,
Rollbar, Slack, Vagrant, VirtualBox, PyCharm, iTerm2, Notion, G Suite,
MailChimp, Amazon SES, Gusto, Upwork, Goodle Ads Manager, Carbon Ads,
BuySellAds, Cloudfare, Zapier, Trello, Godaddy, Namecheap, Stripe, Google
speech-to-text, Kaiser Permanente, Stripe Atlas, Clerky, Quickbooks,
1password, Brex.

Alright. Just make a "boring" website now, it's "easy".

If it's one thing i really dislike within both the scientific and the
technological sphere it's this arrogance disguised as common knowledge.
Because it's not. Articles like this is nothing but bragging. The author,
whoever it is, clearly has a very long time working in the field acquiring
this knowledge. Be humble.

~~~
Kovah
To be fair, half of the used services do not have anything to do with the
website itself but with the whole business around it. Also, most of the tools
do not require a PhD in computer science; neither Rollbar nor Cloudflare are
actually hard to set up. Still, you have a valid point. The setup described
here is not boring at all and not easy, I expected a one-root-server-for-
everything that runs some PHP and MySQL.

~~~
chii
anyone can build a house from scratch! just read the instruction manuals for
brick-laying, carpentry, electricals and plumbing. After all, none of these
require a PhD.

------
eruci
I'm a one-person company too ( geocode.xyz ). My tech stack is even more
boring than that. (Nginx, MariaDB, Perl on AWS Ec2 Linux instances. I don't
have an office either.

~~~
mzkply
Is your site down?

~~~
eruci
No.
[https://stats.uptimerobot.com/00vDQc3O7](https://stats.uptimerobot.com/00vDQc3O7)

------
aantix
Picking your stack/architecture based on team size is something most engineers
miss.

Microservices, great for companies with many teams. Not so much when it's
three people scrambling to create something meaningful. Monolith all the way.

~~~
eloff
It's funny because microservices are explicitly targeted at solving problems
for development with many teams, and lots of single team companies cargo cult
them. Did they miss the first paragraph when they were reading up on what
microservices are?

~~~
q3k
They also solve some other problems:

\- different SLA and scaling requirements per component/endpoint

\- different security domains per component/endpoint

\- different rollout strategies/policies per component/endpoint (no need to
restart your long-lived client TCP sessions in parallel to rolling out a
business logic fix)

\- ...

I've been happily developing and deploying microservices for small customers,
in teams of 1 to 10 people. But I also don't work with customers who just need
simple CRUD apps.

~~~
eloff
Everything depends on context, but I don't think microservices are the best
solution. I think in nearly every case there is an easier way to address those
problems.

------
goodroot
Whoa -- is that a boring stack nowadays? There are many great cutting edge
tools in use. Humble fella.

~~~
rhizome31
My thought exactly. I was expecting good ol'LAMP or something along these
lines. I think here "boring" means "has been released for more than a couple
of years".

------
tnr23
Is this seriously considered as being a boring stack nowadays?

~~~
meesterdude
was honestly expecting a stack along the line of yours - the one in the
article is actually fairly complex and not-boring.

~~~
fourseventy
my exact sentiments lol

------
halfjoking
That's not boring - it's a professional dev techstack.

Boring tech would be a million dollar business running on Wordpress.

~~~
chillfox
There is plenty of those, they just don't have anyone tech-savvy enough to be
on hacker news.

~~~
buboard
Every big company has interesting engineering stories. But i think sure HN
woulndt upvote tales from Automattic

~~~
chillfox
For sure, but the comment was about million dollar business which depending
upon geography would be classified as either micro or small.

[https://en.wikipedia.org/wiki/Small_and_medium-
sized_enterpr...](https://en.wikipedia.org/wiki/Small_and_medium-
sized_enterprises)

------
huangc10
TBH, this is more inspiring than I thought. I thought this would be some BS
article about promoting your company but turns out, it was a fun and inspiring
read.

My dream is to find a good idea and work solo. It is a little harder as a
mobile engineer but you're right as you mention in the blog. There are
technology nowadays that help me with backend/dev tools.

Cheers.

------
localhost
This looks like a great service; I just signed up for it and created my own
listen later playlist. I spend 6-8h a week on my mountain bike and I use most
of that time to listen to podcasts. The challenge with how I do it (using just
an Apple Watch) is curating my feed. This is an excellent tool and a far
better UI for curating a feed.

I also like the different and varied sources of income that you have, from the
transcription service to ads to your API. Seems like you've built a great
platform that you can use to experiment with different revenue models.

One additional question - your product is called Listen NOTES. Are you
planning on adding note taking functionality to it at some point? One thing
that I've always wanted to do was to jot down some set of notes to myself
(typically during one of my bike rides). I always imagined that being some
kind of voice activated thing, but I'd like that note sync'd to the spot
within the podcast that I was listening to (and perhaps transcribed as well).
Any thoughts about building something like this?

Thanks again for building this service!

~~~
agustif
You could use Airpods + Siri + Notes.app for that.

------
OJFord
> Wait, how about Docker / Kubernetes / serverless? Nope. As you gain
> experience, you know when not to over-engineer. I actually did some early
> Docker work for my previous employer back in 2014, which was good for a mid-
> sized billion-dollar startup but may be overkill for a one-person tiny
> startup.

I really think the key thing here is familiarity. K8s is a bit different, but
certainly in OP's position I (personally!) would be more comfortable with an
image for each component. Perhaps a machine image rather than docker, if each
component is going to be on its own machine as described, but something at
least semi-reproducible for sure.

When I'm working on something alone, and particularly if on and off and not
for several hours every day I need to be able to come back to it in a sort of
self-documented state that doesn't leave me scared to touch anything lest it
crumble.

~~~
geggam
Using containers without k8s is much much simpler if you need a container.

Learning system packaging and how to rebuild src packages is much much simpler
than managing a container ecosystem

Think about this... if it was so easy to manage containers why does redhat
still ship its operating system in packages ?

~~~
dfox
I think that one of the hidden points in there is that you do not really need
a container to deploy python wsgi application, you need an venv and few system
packages. Doing that by means of ansible playbook or even manually
preinstalled system image that you just clone and then just only use Python
packaging mechanisms is even somewhat simpler and faster than building
container that works (ie. take a VM, poke into it until it works and then just
clone it, deployment of your application is decoupled from the underlying OS)

------
rsp1984
A super interesting and refreshing read, especially since I am not very
knowledgeable about web technology and most of the talk these days is about
the latest fancy framework or database.

I am curious though, since I am using Google Cloud (App Engine in particular)
for most of my company's modest backend needs: Would Google AE be able to
handle all these backend requirements as well (but obviously without all the
configuration and setup required)? Or asked another way: When is the point
when you should move away from something easy and low-hassle such as GAE to
something more advanced that requires a bit more manual configuration like
setting up your own AWS servers?

Not trying to be critical, just honestly trying to learn from folks that know
better than I.

~~~
ericlavigne
The main idea of this article is to use what you already know and just get it
done, rather than experimenting with new tools. The author already knew how to
use most of these tools from a previous job. He stuck with the technology that
he already knew, so that he could focus more on business aspects rather than
new technology.

In that spirit, you should use the App Engine that you already know for as
long as it seems to be working well for you. When you run into a problem that
can't be solved in App Engine, that is the time to ask for advice on how to
solve your problem.

------
_august
Also running a solo company - [https://fitloop.co](https://fitloop.co)

I'm primarily a front-end dev so I keep things pretty simple on the back end
side.

Stack:

    
    
      Meteor, managed hosting on Galaxy
      MongoDB, hosted on Compose
      React
      GraphQL / Apollo API

~~~
stanislavb
Nice! I've bookmarked it on
[https://www.saashub.com](https://www.saashub.com). You should verify it there
:)

~~~
stanislavb
OK... that was quick!

~~~
_august
;)

------
baby_wipe
I use Lisntenotes API for my podcast app and Wenbin is an amazing dev to work
with. Highly recommended.

------
WheelsAtLarge
Well, I'm super impressed. I wish I could do half of what this guy can do.

But he needs to be careful not to overdo it. It's fun and exciting to get all
this tech up and running. But at some point, it becomes a drudge. And burnout
is right around the corner.

I would say that if he can farm out as much as possible and focus on marketing
and sales which are the drivers for most company's continued success. In a
sense, he has by using the cloud but what he's doing is way too much for one
person.

I used to be a laid back kind of guy and would get irritated when I was
hurried and clearly there was no impending death. But now I understand that
the limit lies within us. At some point, we all give up. There are those that
take a long time and there are those that give up relatively fast but giving
up is part of the process. So we are in a hurry to get as much done before we
decide to stop what has not been successful. By putting so much burden upon
your self you make it so much more likely that you will give up before you
find success.

~~~
wuliwong
>he's doing is way too much for one person

You have no clue what is "too much" for the author of this post.

------
sixstringtheory
Great writeup of the stack and process.

To all the people thinking “I couldn’t possibly do this myself” just look at
the mention of UpWork towards the bottom. Looks like the author has brought in
contractor help at some point.

------
yardie
This was really informative and delight to read. It's great to see developers
making a go at the bizdev side and actually being really successful at it.
Light on the heavy technical, light on the buzzwords, just the right amount of
information to say, "here, if you even use half my stack you're well on the
way to a viable product."

------
bsaul
This is one of the most important post i’ve seen on HN so far.

it teaches you that you don’t need all the fancy stuffs, but you may need
_some_ of them. That you don’t have to shoot for the unicorn project, that you
don’t have to build an A+ people team, etc.

It’s intelligent and gives all the interesting details to not give any kind of
false impression.

------
mattmar96
Just because I saw you (wenbin) in this thread I thought I'd be helpful:

On
[https://www.listennotes.com/api/pricing/](https://www.listennotes.com/api/pricing/)

There's a typo: "Instantly access to 771,769 podcasts"

Instantly -> Instant

Really enjoyed the post, thanks for sharing.

~~~
jbverschoor
That's not a typo. They are two different sentences with slightly different
meaning.

Access as a noun or access as a verb.

~~~
tobib
Out of curiosity and please forgive me as I'm leaning ESL, but shouldn't it be
either

"Instant access to x podcasts"

or

"Instantly access x podcasts"?

~~~
castwide
I agree. If "access" is a verb, the "to" is superfluous and awkward.

------
tyingq
Was interesting to read all the sort of "boring" back end pieces, then see
that he went with half-server and half-client rendered React for the front
end. Was expecting Angular or similar, given the pattern of the other picks.

~~~
eropple
React is "boring" now, too. (And good for it.)

------
AimForTheBushes
I really like the idea of monolithic repos but can see some downsides when
there is more than one person working on a project. It would be cool if there
was a simplified way to have an entire business operate under source control.

~~~
tobib
This interests me. Can you elaborate on what downsides you see? Even in a
small team we're often working within the same repo at the same time without
any issues.

~~~
AimForTheBushes
The glaring issue would be permissions ie who can see what. Pull requests
could get muddied up but that probably wouldn't be too much of a problem to
overcome. Some foundational git protocols would have to be adjusted, like
.gitignore.

I think it's a great way for start up to manage the business but as more
people get hired the organizational complexity might be too much to bear.

------
vinceguidry
An insight I've had recently is that the most _efficient_ way to implement
_architectural_ changes that are not _additive_ is to _rebuild_. Otherwise
you're trending inexorably towards the lava layer and accumulating tech debt
that you cannot track.

A useful direction to unpack is to define architecture. You cannot re-
architect a building after it has been built, you must only demolish or
rebuild elsewhere. This is why all architecture changes must be additive in
nature, otherwise you're pulling the foundation out from under the building.

Software _should be_ modern pyramids.

------
cagenut
key missing info though: does it make money? I checked the site and it looks
like a mix of ads (that are blocked of course) and a patreon with 5
supporters.

~~~
wenbin
I'm wenbin, the author of this blog post & I built Listen Notes. Thanks for
bringing up this question :)

Yes, Listen Notes is making some money - not a lot, but enough to cover all
the cost and bring in a bit profit as of today.

The basic idea is that Listen Notes should be free to 99% of users, while
making some money from 1% of super users.

We run ads (obviously) on the website and we provide API:
[https://www.listennotes.com/api/pricing/](https://www.listennotes.com/api/pricing/)
And I've been experimenting some paid features that are needed for
PR/marketing/journalists to do their job, e.g.,
[https://www.listennotes.com/datasets/](https://www.listennotes.com/datasets/)

And today is special, because on Sep 16, 2017 (Exactly 2 years ago today), I
started to work on Listen Notes full-time!

~~~
HillaryBriss
What are the pros and cons of charging a fee to transcribe someone else's
audio content? Does ListenNotes need a lawyer to deal with contracts or
problems related to original content creators?

~~~
theshadowmonkey
Looks like they're taking an approach to transcribe first and then deal with
it later. The transcription link has an FAQ asking them to contact them if
they think they dont want others to transcribe their episode.

------
ankit70
Wonderful stuff! I've been trying to learn programming and able to code the
CRUD apps for almost 6-7 years. 

I've tried to learn Rails (Ditched learning Rails because JS framework are all
the rage). Tried learning Flask/Django because it was considered easy. Ditched
it too cause internet people said it's slow.

I tried learning Go, Phoenix and jumping between what's considered cool in
last few years.

And here I am, no confidence to do a basic simple app. It's been an
interesting journey with no luck because of constant chasing of 'Exciting'
frameworks/Tools.

~~~
ryanolsonx
My advice would be to quit chasing exciting frameworks.

Pick something that has been around a while (Ruby on Rails, Python with
Django, Java Spring) and go with it.

Focus on performance once it becomes a problem. In python, you can rewrite
parts in C that need a speed improvement.

Otherwise, focus on making a great product that solves a problem for your
users.

------
alexbecker
I run a similar, maybe even more boring stack for my less-than-one-person
company [PyDist]([https://pydist.com](https://pydist.com)):

\- PostgreSQL database

\- Nginx proxy in front of Django apps for UI and API servers (I use gunicorn
instead of uWSGI though)

\- Cron jobs which invoke django-admin commands to keep the PyPI mirror in
sync

Perhaps the only place I'm any fancier than OP is that my deploy script is in
Python, not shell, since any time I try to write a shell script with even
slightly nontrivial logic it falls over and catches fire :)

~~~
welder
What's your experience with gunicorn instead of uWSGI? I'm using haproxy +
nginx + uWSGI but I'm wondering if gunicorn scales network more than uWSGI. My
bottleneck isn't CPU, it's the amount of open connections uWSGI can handle at
once.

Here's a trimmed down version of my web configs:
[https://wakatime.com/blog/23-how-to-scale-ssl-with-
haproxy-a...](https://wakatime.com/blog/23-how-to-scale-ssl-with-haproxy-and-
nginx)

------
wuliwong
Thanks for writing this article @webin. I'm about to launch a new startup
myself and it is VERY boring tech. :p I'm running Rails with Sidekiq on
Heroku, so I think I have you beat in the boring department. I do a lot of
fancier stuff at work but I just don't need it for this product (at least not
yet).

I am the only engineer but two non-technical friends (a designer and a
lawyer[0]) make up the rest of the company.

[0] the original idea was the lawyer's. :)

~~~
ultrasounder
Hi, I am currently getting started with the Rails stack to. What's your FE
stack look like?

thanks Ananth

------
ydnaclementine
Only question I can think of that I didn’t see an answer for is: is he running
one postgres db, which is shared between the web and api services? Multiple
services with only one db gets hairy fast with questions like: who owns the
migrations? does the migration owning service have to restart the other
service so the other service gets the new db column/table? etc

Unless the web also uses the API service to get its data. Really great article

~~~
aprdm
Likely the web app uses the API to get its data, it hints at it when he says
he uses the same APIs the customers do from his frontend.

------
rojcyk
Interesting, there seem to be lots of opinions about the chosen stack. But as
a designer, I have no idea what to make of it.

Recently I rode the Figma API release hype train, and I made a plugin which is
quite successful. Almost 10k active installs. It is basically a collection of
the most popular viewports and their market share. I also have a server where
I store the data. Every other day I run a script which updates the market
share and that is about it. To summarize it:

\- I have a client (react app written in typescript) which has a very simple
"caching" mechanism (if you asked the server for new data more then a day ago,
ask again) and which shows the data and nothing else. \- And I have a server
(express js) running on Heroku (where I also have the Postgres DB). The server
has a basic REST API and very default admin interface. But most of the time
the server is not doing anything.

It was something I was able to put together quite fast, but now reading all
the comments I'm thinking whether it isn't over-engineered and whether I
should go with serverless and possibly reduce the costs.

------
paxys
Are there no load balancer replicas? It looks like a single point of failure
for the entire service ( _and_ it runs Redis and RabbitMQ - yikes).

~~~
peterwwillis
The author can just run an Ansible job and recreate it instantly. It's a
stateless ec2 node. If they wanted to be super duper fancy they could make an
autoscaling group to destroy and recreate it if it went down. No need for a
replica. This probably isn't a lose-100K$-every-5-minutes-of-downtime
business.

~~~
paxys
I am all for simplicity, but if that results in a service outage whenever you
deploy new code, apply a security patch or reboot your VM, you need to rethink
the architecture.

~~~
aprdm
Why if a minute downtime on deployment doesn't impact revenue significantly ?

The frontend can even have some exponential cool down on requests when the
backend is down and the users who are online in that one minute window will
suffer just notice it being a bit slower.

He even mentioned his uptime in last years in the post.

------
Axsuul
Your mileage may vary but there’s a real opportunity for the latest
technologies to save you work and headache.

My own one-man startup Trunk[0] is very infrastructure heavy so I’m super
thankful for technologies like Docker. You don’t have to go full-blown
Kubernetes but there are various small wins you can still have. Need to
upgrade a piece of your stack? Just build a new container a deploy it! Need to
bring up all your services in development? `docker-compose up`! And with
Docker Swarm, it’s super easy to scale up background job and application
processes across multiple cloud instances. I can’t imagine doing this without
Docker.

When getting a business off the ground, it’s extremely important you do
customer development and not new technology development. When running a
business however, new technology can become a competitive advantage and help
you move faster. Just make sure it’s really doing that.

0\. [https://trunkinventory.com](https://trunkinventory.com)

------
imetatroll
These success stories always pain me a bit. I tried for some time to get my
own project going based on personal interest, but it never went anywhere. I
have people visit the site but retention and use is a problem.
[https://imetatroll.com](https://imetatroll.com)

\- golang, gopherjs, bootstrap, DO, and kubernetes.

~~~
fuball63
I think this looks cool, and I feel your pain on the retention/use problem as
I have also made a game that requires multiple people to use to create value.

I never found a way to promote it to groups of people instead of individuals.
Even in a meetups/expo setting it's hard to get critical mass and momentum.

------
abiro
Security concerns are always conspicuously lacking from this type of posts and
discussions. If you’re a solo dev looking to start a project, please don’t
take OP’s stack as a positive example. Use managed services whenever possible,
they will at least keep you patched and simplify intrusion detection when
configured correctly.

~~~
wolco
Don't throw your money away for that reason. Keeping upto date is easier than
ever.

------
aussieguy1234
Here's my boring technology.

I've built Libr ([https://librapp.com](https://librapp.com)), a full social
networking platform designed to fill the void Tumblr left behind.

The hosting is serverless for both the front end assets and back end no
servers to maintain and infinitely scalable.

Libr has a front end progressive web app built with VueJS hosted on S3 with
CloudFlare in front.

The back end API is hosted on Lambda. By using serverless framework things are
portable. I could easily migrate to another serverless provider or even host
my own.

Both the front and back end use the same programming language, TypeScript.

The database is Elasticsearch, just like WordPress.com (they don't use MySQL
for most things).

Each month, I receive a nice little invoice from AWS for under $1 for the
hosting. So far CloudFlare is free for me.

I built everything by myself, with no team. I have had input from Libr users
on feature requests and UI improvements.

~~~
ultrasounder
Is you site down? I am unable to access it right now.

~~~
aussieguy1234
It's up. Unless S3/CloudFlare go down, it shouldn't go down

------
riku_iki
> Kaiser Permanente for health insurance.

Super important part. Any details about how much it costs for single person
company? :-)

~~~
wenbin
Sure. It's around $700/month for me + my wife.

I wish I could've known more practical info about starting a company before I
quit my day job, e.g., how much for insurance, what company credit card to
use, how to pay tax, where to find lawyers... Online articles / advices are
mostly focused on big picture or very abstract concepts or fortune cookie type
words :(

~~~
samkxu
Could you perhaps write articles on these? I'd be super interested as someone
looking to know more about starting a solo company.

~~~
wenbin
Yes, will do.

Earlier this year I gave a talk to some college students, which has some more
practice info about starting a small internet company:

[https://broadcast.listennotes.com/good-enough-engineering-
to...](https://broadcast.listennotes.com/good-enough-engineering-to-start-an-
internet-company-f26be5b01025)

------
danmaz74
At this point, I would add Docker (without Kubernetes) to the "boring"
technologies that simplify your life. Having managed my own "server farm" of
20 machines on hetzner, with a very small startup, I found that abstracting
away the underlying OS removed a lot of friction.

------
rjurney
I've found the tradeoff is in favor of using ECS, Kubernetes or something
similar. The docs aren't too bad now. It is great to be able to build/deploy a
docker image and not worry about how it gets out there, and what might go
wrong with that system.

------
csdreamer7
> Basically, I have a wrapper script deploy.sh that is run on macOS:

I do the same thing on Linux.

build.sh, deploy.sh.

But, I also use a run.sh which runs tasks that I may not remember to run if I
come back to software after a while on a certain machine.

Like 'git pull' or 'bundle install'. Then ./dev-setup.sh or whatever for
starting up tasks.

I use multiple machines and having these two simple commands saves me so much
frustration.

You sit down to began work. You just run ./run.sh and it will setup a dev
instance for you. No sudden alerts that your gem is out of date... or worse...
no warnings at all and hard to diagnose sudden bugs that steals half a day
from you.

~~~
anaphor
I have a .vimrc like this in some of my projects

set makeprg=./build.sh

set autowrite

I've found trying to figure out complicated build tools to mostly be a waste
of time unless you really need them. It also encourages you to not do things
that would require very costly builds.

------
em-bee
the key for me is a backend-as-a-service platform that i can reuse over and
over. i used to be mainly a backend developer, but for more than 5 years now i
have barely touched the backend code because it was designed to be reusable.

i build SAP applications now because they make it easy to work with a reusable
backend.

for the rest of my system, i use basic LXC containers. no docker, or other
container management system.

deployment consists of setting up an instance of the backend, and generate the
frontend as static files that can be hosted whereever.

saltstack to control it all. done.

------
Scarblac
This is almost the exact stack
(Django/React/Postgres/Redis/Ubuntu/Ansible/...) I use at work, and I love it.
It's a great stack.

------
jblake
I'm surprised no one has mentioned Heroku yet. I'm a one man business too, and
90% of the details in this post I don't even have to worry about. Sure I pay a
pretty penny for it - at least a thousand a month - but it just works. Rails
and all of its beauties, postgres, redis, sidekiq, sendgrid, twilio, Scout,
Papertrail, and that's about it. Looking to add AppOptics soon for business
KPI / APM metrics.

------
jedberg
I'm impressed with the profit margins. It looks like one of the main sources
of revenue is transcription. From what I can tell the price seems to be about
$4/hr.

OP said they are AWS. If they're using Amazon Transcribe, the cost for that is
$1.44/hr.

A 150%+ profit margin is awesome! Well for that one piece of the service.
Obviously at least some of the cost of the website and database, etc must be
included, but still. Pretty amazing.

~~~
tudorpavel
The post mentions using Google speech-to-text for transcription which seems to
be even cheaper?

I'm not sure where you got the $4/hr price, but indeed kudos to OP for
building a business around reselling cloud services for profit.

~~~
HillaryBriss
I'm guessing the $4/hr price estimation is based on an average of the prices
ListenNotes actually charges to transcribe a podcast, as shown on
ListenNotes.com for various individual episodes.

~~~
jedberg
Yep exactly. I randomly sampled some podcasts and looked at the cost vs how
long they were.

------
thecodemonkey
Oh wow. This is scaringly close to how we run geocod.io - right down to the
ansible provisioning wrapper that I put together :)

    
    
      > ./provision
      provision usage:
      ./provision environment role [hostname]
    
      This script will provision the given role in the specified environment using Ansible
      If a hostname is specified, provisioning will be limited to that specific server

------
amanzi
I wouldn't call that boring, there's still a lot of new technology being used
in that stack. I'd also recommend some minor improvements to the workflow
(e.g. don't do development work on the master branch) that are easy to achieve
and provide big benefits. Also - no mention of backups or DR-planning -- I'd
be interested to know what's being used in this area?

------
amai
As soon as he has a bigger team of developers, some of his technology choices
might cause trouble. Especially not having a build server will cause chaos
very quickly, because nobody will know, who has deployed when and what. A good
deployment pipeline with a good test battery using a boring build server like
Jenkins can help a lot here.

------
iraldir
Okay that guy is just showing off, but rightfully, this is damn impressive.
Even if some of that is offloaded to contractors, he still needs to understand
most of it.

That's a proper full stack developer with a business mindset as well. Hope
I'll improve my backend / devops skill to that level at some point.

------
kyberias
This was the most inspiring piece of text I've read for a long while. Such
clarity of thinking and focus.

------
embit
Very inspiring article. And thanks for sharing a detailed tech stack write up.
Very inspiring for me as I am also a single person running a tech news
aggregator website but probably even more boring setup on AWS (php MySQL
Apache and some python ) embit.ca , running it alone but never lonely.

------
pythonist
The stack can be much boring, simple and easy to maintain. Golang helps a lot
for that.

For example [https://newreleases.io/](https://newreleases.io/)

\- Go with embedded databases for web services

\- Vue.js for frontend

\- Nginx just as there are other sites on the server

\- Prometheus/Grafana for monitoring

\- Gitea for code hosting and some automation

\- Bind9 for DNS

\- Debian

------
hacker-gene
Well, on frontend he uses React/Redux/Webpack, which is more of trendy,
latest/greatest. If he used Django templates + jQuery, that would have been
staid/boring tech. Great post though, aspirational for those of us who wish to
found their own startup one day.

~~~
dangoor
I disagree. React has been out _6 years_. It most definitely can prevent bugs
which were common with the jQuery approach.

------
sodafountan
How did you get started doing this? Did you have a lot of money saved up and
just decide to go for it for a certain length of time?

I've had an idea that I've been working on part-time but it really needs some
full-time love. At what point do you decide to go for it full-time?

------
vowelless
Wenbin, amazing article.

One question: what all do you use contractors for? How has your experience
been in managing them?

Thanks

~~~
wenbin
Some examples that I used help from contractors:

1\. Built some reusable ReactJs components. 2\. Design / illustrations 3\.
Proofread website copy / blog posts 4\. Built experimental app like this one
[https://itunes.apple.com/us/app/just-listen-simple-
podcast-a...](https://itunes.apple.com/us/app/just-listen-simple-podcast-
app/id1444970658?ls=1&mt=8)

(probably there were other random things... I got to look at the billing
history on my upwork :)

------
mattbillenstein
Great post - I'm running almost the same exact thing - Flask instead of
Django, Saltstack instead of Ansible, rq instead of celery - supervisord,
postgres, redis, ubuntu, nginx, aws (actually multicloud, BigQuery for data).

It's very good stuff!

------
nickjj
I like your Ansible / deploy script / "no fancy CI tools" combo. This is
exactly what I do too. Deploying is so painless and consistent.

To quote a line from an Elixir talk I recently watched: "it feels like
cheating".

------
marmaduke
This is exactly the stakc I worked with when contracting for another
startup/company. The degree of similarity is disturbing.

It mostly worked really well though, kudos to whoever figured it out. And you
could mock a dev setup right in PyCharm.

------
acejam
Great article. Are you using DataDog Synthetics for the DataDog response time
graph?

------
joexuyi
Very inspiring. As a coding newbie / wannabe entrepreneur, I will need some
time to understand what each part of your technology does though. I will start
using Listen Notes later today. Keep up the good work!

------
jxramos
> It’s absolutely okay to use the boring technology and start something simple
> (even ugly), as long as you actually solve problems.

Thank you! Let us solve problems and not chase ultra competitive expertise for
its own sake.

------
phalangion
I'd love to know how you're running Django and React together. I've been
trying to figure out how to make that combo work in a mono-repo, and I'm
definitely missing something. Any advice?

~~~
phy6
I just watched 8 hours of Django videos yesterday, and 4 hours of that was a
Django + React tutorial. It covers in great detail the CRU from a CRUD, but
you'll need additional videos to cover deployment on elastic beanstalk or
ec2+elb, etc.
[https://www.youtube.com/watch?v=AHhQRHE8IR8](https://www.youtube.com/watch?v=AHhQRHE8IR8)

~~~
phy6
Basically his tutorial was to put the react project inside the django project,
and depending on which parts you're modifying and how your testing, he has a
special static collection script that builds the react portion and copies the
static files up into the Django parent project folders.

------
fovc
wenbin, do you find it meaningfully superior to get Slack notifications vs.
just an email?

Also curious if you have a monitoring/recovery strategy for when you go
camping or on honeymoon and need to be offline.

------
passthejoe
Listen Notes is a nice service. I don't quite _understand_ how it works -- do
podcasts pay to be included in search results? It's a nice thing for the
listener, that is for sure.

------
poidos
As someone still in school, this type of article -- though inspiring-- kind of
scares me, to be honest. I don't think I could do any one of the things
mentioned in this article.

~~~
wenbin
Hello poidos,

(I'm the author of this blog post)

I couldn't do all these things when I was in school :) I worked in companies
for a few years and learned some engineering practices. Then I had basic
skills to prototype my own side projects. Then after working on many silly
side projects, I started Listen Notes.

And initially, Listen Notes was running on 3 tiny DigitalOcean servers
($5/month each?). I logged in each server to git pull to "deploy to
production". Then I added things little by little, day by day. It's a process.
The key is to get started. People say that showing up is 80% (or whatever
percentage) of success. I think this is very true. Just get started and you'll
figure out things along the way.

~~~
mypalmike
Thanks for the info. It's an interesting set of tools today, but it's helpful
to hear that it has evolved to that point in terms of automation and
infrastructure.

The first version of a web service can be as simple as flask app which you run
in a screen session somewhere. Better to start somewhere than get overwhelmed
and never do the thing at all.

------
dcsan
It seems wenbin is also the lead developer on ndkale,
[https://github.com/Nextdoor/ndkale/graphs/contributors](https://github.com/Nextdoor/ndkale/graphs/contributors)
so he would certainly be capable of using a more esoteric stack.

I wonder when developers are working for themselves / very early stage, if one
automatically becomes more conservative? If someone else is paying for your
time, it's nice to experiment and grow personally. When it's your own buck,
the focus is on pragmatic shipping and getting revenue coming in.

~~~
wolco
When you do it for yourself you choose a quick prototyping language like php
because you want to create a product.

When you work for someone and they pay you to learn something hot why not take
the opportunity as it will help with the resume.

As a small business no one pays you to learn.

------
posedge
Sad to hear that PyCharm is considered old school these days.

------
artur_makly
@wenbin - What would also be helpful is a P&L report on all of these expenses
- as that will also tell us a great story.. and it would make a nice Part Deux
;-)

------
arikr
People who upvoted this, what made you up vote it? It's much more popular than
I would've guessed when I first saw it on the homepage

------
PorterDuff
Very cool, I'm impressed. This guy knows how to do all the stuff I don't know
how to do and it actually works well.

------
ijustwanttovote
I bumped into listennotes about 6 months ago, because I was looking to solve
the same problem of discovering podcasts.

------
samkone
That's not boring. That's sane.

------
sealthedeal
Thats a ton of servers!

What is your monthly AWS spend?

------
skoocda
This is awesome.

Does the Google speech-to-text API work well for your needs? How often do you
use it?

------
jmchuster
Having experience in both realms, it seems kind of interesting that Docker is
considered overengineering while React + Redux + Webpack + ES is considered
natural and simple. I guess 50% of "overengineering" is really just "I'm not
familiar or comfortable with ths".

------
hinkley
I listened to an interview with DHH the other day and he was calling out that
one of the advantages of frameworks over libraries is that everything comes
wired up ready for production instead of you spending all your time writing
glue code and arguing about conventions.

I'm still not exactly certain where I fall on this topic. What I do know is
that I don't like frameworks that conceal the plumbing and leave you with
declarative bits that require memorization. Lack of discoverability is a huge
barrier to mastery. The best code invites you to determine why something is
happening.

What I've been thinking about lately that this article drew out for me again
was that it's a shame that so many tools and libraries come not ready for
production by default.

It would be nice to have some curated base file sets where insecure defaults
were overridden, and all of the metrics and logging logic were wired up. You
get the turn-key solution but you still have code that is more discoverable,
and you can veto a few choices without too much effort.

------
johnx123-up
@wenbin

What AWS EC2 instance types are you using? Can you please expand about your
AWS stack?

------
exabrial
Ok but look in 2012 they were running Java and still did key changes

------
amelius
Is this YouTube but for podcasts? Sounds like a good idea actually.

------
mac_was
Fantastic work!! So much knowledge and thanks for sharing with us!

------
IGotThroughIt
He says boring I say cool. I love the product so much.

------
treycopeland
How do you get all the podcasts audio and data?

------
reviel
great post, love the solo entrepreneur mindset

------
plexiglass
Such an inspirational post! Love Listennotes.

------
sabujp
what's monthly revenue?

------
umen
great read , say is your revenue is from ads only ?

------
croh
Boring is better.

------
rc_kas
This dude is my hero. Keeping it simple and functional.

------
m1ck
This is great! Thanks for sharing.

------
draw_down
Lots of stuff can stick a web form in front of Elastic/Postgres or similar.
Certainly nothing wrong with that.

Also doesn't mean that something quite so simple will work in every case. Not
everyone is wasting their employer's money to build their resume.

------
Stronico
Everyone should write something like this.

------
test2016
Satoshi Nakamoto was one person behind Bitcoin, similarly.

~~~
mullen
Technically, you don't know that since we don't know who Satoshi Nakamoto is.
Satoshi Nakamoto could really be 10 people and you nor I, would not know.

------
ccbn
When my website ([https://www.aedaily.net](https://www.aedaily.net)) has a
million of record, I had migrated Postgres to Mongodb because performance
issues. I'm using Django template to easy maintain, development and SEO.

------
czbond
As a software SaaS CISO, who also pentests and determines partner risk - I
take the approach of not sharing such in depth details. Articles like this are
fantastic fingerprinting recon for those that look to compromise sites.

~~~
quickthrower2
Security by obscurity?

~~~
imihai1988
Not a really good idea all by its own.

~~~
w8rbt
Absolutely, but a great idea when combined with other defensive tactics.
Obscurity is why armies use camouflage.

------
symlinkk
This is just a big ad for his website with no in-depth knowledge or insights
provided. Literally just a list of tech someone uses and 4 or 5 links to his
website. Is this what HN has become? I remember the content upvoted on this
site being much better a couple years ago.

