Ask HN: What did you learn the hard way? - <AUTHOR> <comment><USER3> Worse is better

Or, to put it a bit more optimistically - usable now is better than perfect later. I've found that, if I disappear behind a curtain and spend a long time trying to make something really well-polished and feature rich, that just gives the user a lot of time to build up their expectations, and also to get frustrated by the delay. By the time you ship, they'll be actively looking for ways to find fault. When I YAGNI my way into a 80% or 90% solution and turn it around quickly, though, more often than not, they'll initially just be impressed at how quickly I was able to help them. Requests for changes will come, but they're generally small, so it's usually relatively easy to turn those around quickly as well.

<comment><USER4> > Or, to put it a bit more optimistically - usable now is better than perfect > later.

This is the same principle of Minimum Viable Product. In MVP you launch the first version of your product with sufficient features, but not all, to early adopters so that you can get feedback from them.

MVP and the "Build Measure Learn" feedback loop, gives you important tools to leverage your product.

<comment><USER3> Yes, absolutely.

The language around MVPs tends to be couched in terms that pretty directly implies designing a product for external customers, though, so it tends to be harder to internalize for people who are doing in-house work, and even people who are somewhat removed from the product design process, such as many junior developers. What I've seen in is that it's common for people who are eager to impress their clients or teammates to want to say "yes" to everything. So, even if they like the idea of building MVPs in principle, in practice, their MVPs end up being pretty maximal.

Which is why I think there's value in framing the principle in terms of human- human relationships, and not just in terms of stuff like finding product- market fit. It's a more personal, relatable way of thinking about it.

The magic insight for me was when I finally realized that I could give people less than what they asked for, and they'd actually be _happier_ than if I tried to give them everything they wanted.

<comment><USER4> > The magic insight for me was when I finally realized that I could give > people less than what they asked for, and they'd actually be happier than if > I tried to give them everything they wanted.

I consider that a form of art/skill that we learn through multiple experiences (and errors too).

I work closely with developers and I observed that the majority try to implement always the perfect solution that normally comes with a high cost and time to develop. Clients normally prefer a solution that is quicker to implement but that responds to 80% of what he wants.

</comment></comment></comment></comment><comment><USER5> Great question!

1\. As a younger man I done a business deal on a handshake and then got ripped off after putting in a year of work - always get it in writing!

2\. Companies are not loyal to people, people may be loyal to people, but never think an organisation will be

3\. I ran up some debt as a student until I figured out personal finances, which boils down to; increase income, reduce expenditure, save and invest the rest, avoid liabilities as far as possible (e.g. do you really need a car on finance)

4\. Avoid getting drunk! Get tipsy, not drunk

5\. You'll always get over a breakup, no matter how difficult it seems at the time

6\. Sometimes you have to leave a group of friends, a partner, or even family behind, to grow into who you want to be

7\. Don't wait for other people to help you in your career or life, any help you get it a bonus and be grateful, but you're the captain of the ship - <USER2> yourself forward

8\. Be yourself

9\. You're better and more capable than you think

10\. Tell those you care about you how you feel, you never know when you might lose that chance

We live and learn!

<comment><USER6> > 3\. I ran up some debt as a student until I figured out personal finances, > which boils down to; increase income, reduce expenditure, save and invest > the rest, avoid liabilities as far as possible

I agree with but I'll be careful. When you are young (20-30), you are better off investing the money in yourself. So I say do spend reasonably but on things that might grow you. I learned the hard way that renting an expensive duplex with a garden did wonders to my mood and productivity. You might spend more but you get in returns.

Also don't be a cheap jerk with yourself. Nowadays, I value experiences more than gadgets (like I'd go on a trip to a close city than put 12 hundreds on an iphone) but do these things. When you are old, you can still do them but being young was different. Even when in budget.

So I say be careful but don't be greedy and while interest can pile up on money you save, that trip you have done or that money you spent to go to a conference might pay up x1000.

<comment><USER5> Fully agree, great point

</comment></comment></comment><comment><USER7> My "life lesson" happened when I was about 18. I was running a game server hosting company, everything was organic and I took it from 1 physical 1U server which I owned and co-located to about 10 servers, before I made a catastrophic mistake.

Anyway, I reached a point where my colocation fees were about 1.2k per month, I had been with my supplier from the very beginning, so from 1 server... At the peak I was grossing about 4-5k per month but generally monthly lows were about 2k, and everything had been organic, so I had no debts, and was just pumping everything back into the business. What happened was my provider offered to sell me his business for about 12k. You gotta keep in mind I was 18 at this time.

I took out a loan (my Dad was guarantor) and purchased his business. The aim was to, acquire his contracts for colocation with the datacenter and I was expecting to inherit an operating business which was turning in about 2-3k per month in normal "web hosting" businesses. All the sites were spread across about 30 servers, all of them _really really old_.

So, things went sour literally from day one. It turns out that he either fudged all of the sites on the billing software or they decided to just exodus on day one of me taking over. I ended up going from having healthy profit each month to operating at a deficit. Long story short it destroyed my business and nearly caused me to lose my degree at Uni from the stress of hacking away trying to save a failing business and continue with my degree.

Anyway, what did I learn?

Due diligence. Don't rush things. Don't trust people. You can really summarise this as a life lesson where I essentially ended up gifting someone 12k for "my patronage". It quickly became apparent I was his only customer and my success kept him just about ticking over, so I ended up "buying myself". I was pretty bitter about it for a long time, but I think I was just angry at myself for being so childishly naive to think someone I trusted wouldn't screw me over cause it suited him.

<comment><USER8> > So, things went sour literally from day one. It turns out that he either > fudged all of the sites on the billing software or they decided to just > exodus on day one of me taking over.

I don't really understand the issue. Didn't you buy a bunch of prepaid servers and server administration software for just 12k?

<comment><USER7> Nah, I already had all of the infrastructure and technology. I can't even remember the software I used for game hosting[1] , but they were the largest paid technology that provided this kind of thing at the time.

I bought him with the intention of moving into "web hosting", since at that time my business was entirely focused ONLY on providing services such as "teamspeak", "battlefield 2" hosting, GMod, Call of Duty etc, I thought I needed to diversify, because when I started "1 slot" was about 1.50-2.00 per user. Then it just started being cut throat and I ended up overselling to keep up with the competition's lower prices.

I ended up inheritting bills I could not pay at the datacenter. Old servers that weren't worth the scrap metal and obviously a loan... I started to struggle to cover the loan and ran into huge/unbearable stress from my mistakes. It was just a series of rushed decisions, head down, plough through a purchase because I thought it would help me grow, when it was the complete opposite.

I can't even remember what the billing software was, but it was something off the shelf... and was for an industry (web hosting) I really didn't know much about. Not that that mattered since I never had to support any of the customers...

Update: [1]: I researched it for my curiosity.. It was called TCAdmin. Was pretty critical to my early success, without it I wouldn't have had a clue what I was doing.

<comment><USER9> Wow that's quite the story, are you still in the hosting business?

<comment><USER7> Yes and no...

Now I help run a vacation rental/holiday rental software company -- so instead we help host people. We provide management/distribution for agencies. The original product was to just focus on a web marketing front-end software (so I suppose a little bit of "hosting" through our SaaS product). I started that business a few years after the above story.

</comment></comment></comment></comment></comment><comment><USER10> Life, by default, is suffering.

The surprise is not the fact that there is suffering around the world, but how we managed to achieve the level of prolonged peaceful co-existence that we have today.

We should act in such a way that suffering or chaos is reduced---however small such reduction may be.

Suppose you had a choice between watching T.V. and washing the dishes. Watching T.V. means, perhaps, that your spouse will need to do the dishes. You can reduce overall suffering by choosing to do the dishes instead of watching T.V.

Given that the default path of most processes is chaos, we should always act in a way that prevents this.

<comment><USER11> Speaking of dishwashing and life lessons. When I was in college (20 years ago) and sharing an apartment with 3 colleagues, the guys were leaving their dishes unwashed in the kitchen sink. Initially I washed my _own_ dishes after finising a meal, only to find out the colleagues happily used _my_ clean dishes then let them dirty in the sink. I realized I'm washing them twice: once when picking them dirty from the sink, washing them so I can eat and secondly after I finished eating. So I optimized: only washed them once like all folks do: _before_ eating.

Lesson: when in Rome, do like the Romans.

And P.S: no, you can't argue with the Romans and make 'em wash their dishes _after_ eating.

<comment> your-nanny no but you can do like the Romans and break all their plates.

<comment><USER12> I just kept mine in my room

</comment></comment></comment></comment><comment><USER13> I learned the value of patience and moving slowly through many mistakes where I moved too quickly.

In the startup world, the default is to move as fast as you can, and it's often easy to mistake a maxim for product development as a maxim for _life_. The problem is that it's not good advice for many things in life. Examples:

1\. Shopping. Especially big ticket items like cars and places to live. Urgency favors the seller because you don't do diligence well and you don't shop around for better deals when you're in a rush.

2\. In a similar vein, negotiating. I got screwed on deals because I felt too much in a hurry to bring up issues I had. The important point here is that I could afford to wait, but I didn't want to, and that worked against me.

3\. Job searching. Taking the time to line up offers will pay returns on your salary and happiness, even if in the moment you really just want the job search over with.

4\. Managing people. I've had people who work for me ask "how am I doing", and in my urge to avoid the awkwardness of the conversation, I would answer some variation of "fine" even if in my mind I knew there were problems. The problem is that answers like those are very hard to take back once you give them (and especially hard to take back during performance reviews). So instead of trying to get rid of the problem fast, I eventually learned to step back and say "let me think about this, and let's talk about it tomorrow."

5\. Relationships. If your goal is to find a life partner, you have a lot of diligence to do. Enjoy the honeymoon period, but don't mistake that for deeper compatibility. That comes from spending time together and requires getting through rough patches together as well.

6\. Professional relationships too: on the one hand, you can't be passive in developing your professional relationships, but you can't rush them either. Respect is earned over time, so you have to play the long game.

When it comes to building products, then yeah, moving fast is an asset, but many things in life and career are marathons, not sprints, and you're just hurting your future self if you outrun your own pace.

<comment><USER14> 1\. Shopping. Especially big ticket items like cars and places to live. Urgency favors the buyer because you don't do diligence well and you don't shop around for better deals when you're in a rush.

I assume you mean urgency favors the seller (unless you're urgently trying to sell, of course).

Or, in general: (s)he who has the greater time constraint has the disadvantage.

<comment><USER13> Good catch, thanks!

</comment></comment></comment><comment><USER15> If the ship is sinking, don't bail harder, get your butt onto a ship that _isn't_ sinking ASAP. It's much better for your mental health, and it's the logical free market thing to do....reallocating resources to more effective companies.

<comment><USER16> It's shocking how tightly scoped one's mindset gets in these situations. The hull of the boat so easily becomes the bounds of the world. Every time I jump ship, I'm shocked by how quickly and painlessly the things I once thought were life-or-death fall away.

</comment></comment><comment><USER17> A few things:

1) People's words are like deep water. Pay careful attention to what people say--it's profoundly revealing (more than they realize). By listening, I've been able to identify people who intended to trouble me in some way. It's incredible, they just can't keep it inside even when pretending to be nice.

2) Actions speak louder than words (given #1, this is really saying something). Don't look for people to be who you _want_ them to be; wait long enough for them to _show themselves_. And they will. ETA: You may occasionally encounter someone who is able to fool you for extended periods of time, like years. But even then they often leave useful clues as to their agenda.

3) If the product is free, the product is me!

<comment><USER18> Could you expound on (1). I have been toyed around by my former Co founder who sweet talked me into believing him. I still think I suck at understanding human behaviour and nature. Are there any telling signs that help you?

<comment><USER19> Most often I've seen it in the form of jokes. You're in the final stretches of negotiating a deal with someone you consider a friend and they make some joke about how now they're going to stop showing up to work. Red flag. You might think "why would someone say something like that?" I was negotiating a deal where the other party was guaranteed 7.5MM over the next 5 years. They made the joke because they thought they already had me wrapped up in the deal. I walked away based on that joke alone. The logic is that at some level they're trying to prepare you for what you're in for. Everyone's armor has chinks. As the deal gets closer to being done you see the real person on the other side of the table.

Another red flag is if you put something in email and they call you to respond on the phone. I treat email almost entirely defensively now. It's simply a record of things I'm comfortable being read aloud in court and a memorialization of what was agreed to in conversation. If I'm not comfortable with it being read in court it's discussed on the phone or in person.

</comment></comment></comment><comment><USER20> Personal finance.

I never took a budgeting class in high school and college, my parents lived paycheck to paycheck (still do), when I earned my first internship I was making over $1000 per pay period, that was a lot of money for someone who had only worked part time jobs for $10/hr before hand.

By the time I got my second internship I earned more than my mother, who was the breadwinner. Once I was converted to full time I had more money than I knew what to do with. It took a few months to stop making stupid purchases, learn how to budget, save, and invest. Painful lesson.

<comment><USER21> Any particular advice on managing your finances that you're willing to share?

<comment><USER22> If you want to buy something and it will require you to run monthly balance on your credit card, you can't afford it. On the flip side, credit cards are a very powerful tool that should not be ignored.

</comment></comment></comment><comment><USER23> Sadly, after more than 20 years building software, _NEVER_ trust a business person. My faith in humanity had to have me bitten by this the hard way more than once.

<comment><USER24> Yeah, I'm surprised that they trust each other at all. What keeps them from bashing each other with sticks?

When I see business people smile at each other and shaking hands, I cannot make sense of this in my mind. What's the point of smiling when both people couldn't care less if the other person dropped dead on the spot.

<comment><USER25> They care whether they can get some use out of the other before either drops dead

</comment></comment></comment><comment><USER26> If you're a dev, don't work for a company where software development is viewed as a cost center--you want your work to be viewed as something that brings in revenue.

(Learned the hard way when I worked at a large bank.)

<comment><USER27> I agree with this full-heartedly I work for a company where my boss told me a couple months in having a dev department was a waste of money for the company, and we were lucky to have a job. The company bread and butter was software that transcribe medical records from paper to digital. What the CEO and sale force didn't tell anyone it was actually a cubical farm of humans transcribing it all since the software was horrible. The environment was so horrible every worth while dev/IT person regularly drop out as soon as there contract was over or till they just didn't show up one day. The only reason the company even keep "functioning" was out sourcing everything to India. There database was duck tape and string together in ways that only the elders understood how to pull things out of it.

If you walk into any company where different departments get praise more then others it is a sign to walk out. You will always get treated like a second rate employee in those environments.

<comment><USER28> Sounds awful! I've been working my butt off with some friends on a system to extract data out of scanned forms and documents (incl. handwriting) and I'd really appreciate hearing your thoughts about it. Couldn't find your contact deetz so please send me an email - address in my profile :)

</comment></comment></comment><comment><USER29> When you tutor someone, don't tell them what to do step by step. When they ask you how to solve a problem, don't solve it for them.

It's tempting to explain in minute detail something you are good at, but if you always tell people how to do their job, they will become dependent on you.

Let them figure it out on their own.

When there's a bug in their code, point it out, but don't tell them how to fix it.

If you alwaystell people how to do stuff, they will never learn to think for themselves.

<comment><USER30> > When there's a bug in their code, point it out, but don't tell them how to > fix it.

It's funny, I've learned the opposite lesson the hard way.

I used to just point out bugs, like I was a tutor hoping they'd realize the problem on their own and fix it correctly.

Unless it was an obvious brain-o (i.e. the developer knew what they were doing and just flubbed), this resulted unerringly in a "fix" that (a) didn't solve the problem, and (b) created another. I would end up coming off as a nitpicking asshole trying to guide the developer into writing correct code.

So now I just reply, in detail, with exactly what fix to apply, often including code verbatim. Call me jaded, but it works, and I've realized it's not my job to get people to learn to think for themselves. Those that want to already know how.

Related: never post example code you wouldn't want to see copy+pasted verbatim into the codebase. I can't count the number of times I've said "fix it using code like this" only to get a complaint a week later that the fix doesn't work, and seeing my pseudocode complete with foos, bars, and made up meta syntax copy+pasted verbatim.

<comment><USER29> The problem with this is:

a) it doesn't scale

(you are now doing the other devs' job)

b) it only works if you are infallible

(if there's a bug in your fix the other dev is going to say "colanderman told me to do it this way")

I know that it is tempting to just tell people what to do, but it's not a long term solution.

<comment><USER30> > it doesn't scale

It's strictly better than repeatedly pointing out the same, but slightly different, bug, in a series of incorrect fixes, before being forced to spell out the solution upon realization that the dev isn't going to get it on their own. Just skip to the end.

> if there's a bug in your fix the other dev is going to say "colanderman told > me to do it this way"

So?

</comment></comment></comment></comment><comment><USER31> HR is there to protect the company, not you.

<comment><USER32> My SO is a HR Manager. I hear the constant drama first hand over dinner. My take: HR are angels after hiring and during onboarding. After that, any correspondence will be kept to an absolute minimum.

<comment><USER31> Who benefits the most from the work your SO does... employees or the corporation? As others point out, they are to be avoided at all costs! And usually play a really bad gate-keeping role when it comes to IT hiring. It's a hard thing to learn early in your career.

<comment><USER32> Are you actually asking? If so, I think you misinterpreted my post. Please re- read, we agree. If HR has anything to do with any part of the technical interviewing process, the company is already misplacing their use. I won't touch HR with a ten foot pole unless absolutely necessary.

</comment></comment></comment></comment><comment><USER33> Start each day with the thought: "if I got fired today do I have what it takes to bridge it through to the next opportunity, and would there be companies out there in need and willing to hire me".

If you can't honestly answer that with "yes" you are either accommodated, or running risks higher than you realize.

<comment><USER34> I agree 100% with this. Especially if one is the software industry, it is a top priority to keep up with the new tech.

</comment></comment><comment><USER35> The people you spend the most time with affect how you think and what you do.

<comment><USER36> I originally posted this separately, but then saw your post and am adding it here. What you said and the below were some of the most profound realizations for me, even though it seems so obvious, but the extremely high degree to which this is true isn't that obvious.

\---

People are incredibly hard to change.

Spent half a year teaching someone programming. They told me they wanted to learn, etc. Ended up doing most of the bootcamp work for them so I could explain it to them, etc. This person had 5 day breaks where they didn't study a single thing. This also goes with "look at what people do, not what they say, or how they present themselves."

That also comes down to "don't waste time on shitty people." I used to spend time with everyone because of naivety, then I realized just how precious that time is and a lot of people just waste it.

<comment><USER16> Absolutely agree. One phrasing I heard that changed my mind a lot was "It's hard work keeping your own life afloat. Be careful who you tie yourself to. They are as likely to pull you down as you are to lift them up".

In one interpretation, that's a scary thought encouraging selfishness. In my view, it's a pragmatic description of reality, encouraging judiciousness. I still find great joy in helping others, sometimes at some expense to myself, but I now feel a lot less bad about making value judgements before deciding if such a thing is worthwhile, rather than feeling obligated to help everyone that might want it.

</comment></comment></comment><comment><USER37> How to run..

After I first started running and losing some weight, I became enthusiastic about it. Then with the notions of 'more is better' and 'no pain, no gain', I cranked up the mileage and pushed through the pain. But I learned a hard lesson when I tore a calf muscle.

Since then I've learned that form and technique, consistent and gradually harder practice, and getting expert help are necessary to really learn something. Ten years later, and over 18k miles logged, I can say I know how to run.

<comment><USER38> I have to say the same. Especially when it comes to weight training and running. I've developed some issues with my hip and I suspect it's due to running (badly). Bad weight training pretty much wrecked my upper body. How long did it take you to recover from your torn calf muscle? That sounds intense.

<comment><USER36> Tight IT band + weak glutes = culprit for a lot of hip injuries.

<comment><USER37> Tight IT band is an indication of bad form.

<comment><USER39> Not necessarily. It also tends to go along with tight hamstring which everyone who sits 10h a day is going to have without a lot of work.

<comment><USER37> True, tight hamstrings are a contributing factor, but not the sole reason for IT band issues. If rolling out your IT band is a painful experience, it's an indication that you're improperly loading your legs when running—it's a form issue.

<comment><USER39> Or it is an indication that you need to foam roll more, and perhaps work on some quad strength such as squats ;)

Running is one of those sports that people tend to think the 1 thing that worked for them is the answer for everyone. It's not that simple. People have hips with different shapes. People have legs of different lengths. People have ankle damage from previous sprains. Good form helps for sure, but if you want to claim that all running issues are related to form - I have a bridge to sell you.

</comment></comment></comment></comment></comment></comment></comment><comment><USER40> That working in a big government setting just isn't for me. Doing data/reporting stuff in healthcare, to be more precise.

After 4 long, long years drifting around in my job, crumbled self-esteem, some mild-ish depression, I finally found another job and got out.

After a few months I realized that I was just 100% incompatible for the job I was in — not that I was unqualified or any of those other words that could also be true. I was simply incompatible.

I've learned to look at things a little better/clearer since then — evaluating things through the lens of my core values and how I feel rather than through the lens of imposter syndrome.

Maybe this is useful, maybe not :^)

<comment><USER41> Could you elucidate the differences in the dynamics? I'm currently working with a company that works for the government, and I'm experiencing a lot of the same symptoms, so I'm wondering what the differences are that you see.

</comment></comment><comment><USER42> Fix the problem you can see then deal with what's left

I was working for a company that made lighting equipment for touring bands. One band had decided they wanted the biggest lighting desk in the world (this was in the early 80's). We cobbled together two of the company's latest digital desks as master-slave, and it nearly worked. Two problems remained as we got really close to the band's tour starting: a weird flickering in some of the indicator LEDs in the slave, and the output level (controlling the lights on stage) would sometimes wander around unpredictably.

We had a quick look and decided that the output level thing was a major issue which had to be dealt with first. The LED flickering problem was a) minor, and b) caused by a simple clocking problem which we could deal with later. We spent 48 hours or more with no sleep, trying to fix the output level thing. Got it just about useable, but not perfect.

The tour was due to start the next day so we decided to give up on the output level problem and fix the LED flickering, so that there was only one issue, albeit a bad one. Spent an hour fixing the clocking issue so that the LED's were OK, and lo, the output problem was sorted.

If only we'd dealt with the simple problem first, then we'd have managed to get some sleep!

And before you say that was a one off and bad luck or bad triaging or something, I've used the same heuristic more than once and it's always paid

</comment><comment><USER43> I was 14, just released my first text based game (think simple travian) to the world via national aggregation site (reddit of my nation at the time) got few thousands sign ups and few active players.

I hosted the project on some PHP hosting who's owner was a guy I met while playing online games. I edited and worked on the game live through some editor that offered FTP connections.

Because I was 14 I didn't have a card and I had to go to the post office to make a payment I missed it once and the dude shut my site off immediately & deleted everything. No backups. Since I was editing remotely I didn't have recent backup I had some old copy of the codebase. I never manually backed up the database, I didn't even know what backup was probably... So a game died 2 months after it was launched :(

related memory: I didn't know how to configure a cron job so I asked the dude if he can host me 1 machine open Opera on some url, right click and set "Refresh every 60 seconds" (Versions before 12.00 had that)

<comment><USER44> On the story of backups, I bought a webcam when I was young and started doing sketchs with my friends. We recorded so many videos, created our own tv shows acted like hosts and so on. later, my computer was not working well with some games, so I asked the place where I bought it to take a look. I came back a few days ago and they told me they had formatted the hard drive. I was like what? All my stuff was on there. I cried so much. Childhood trauma right here. Now I have multiple backups of everything.

</comment></comment><comment><USER45> That mysqldump adds "DROP TABLE IF EXISTS" by default. So if you want to backup and restore several rows, you are in trouble.

Not really the hard way because DROP TABLE isn't instantaneous on big tables. So I managed to kill the query before the table was gone.

</comment><comment><USER46> Never write something in e-mail that you wouldn't be happy seeing forwarded to the person you're talking about.

Always keep records of what you've said and agreed, people will have a different recollection of events down the line, and a written record is very handy at that point.

<comment><USER47> I have a good one:

Give negative feedback in private email, then it gets forwarded to multiple layers of management behind your back, then a single quote from this email out of context is cut-n-pasted into your perf review few months later by management. (Happened in big advertising company that also runs search engine).

<comment><USER47> The lesson of course is not to lie in emails, but not to work with asshole managers.

</comment></comment></comment><comment><USER48> A company is a company, not a family. It's about making money, not about relationships. For better or worse, it's never really personal.

<comment><USER49> My late realisation (and at a cost) may be related to yours - your coworker is not your friend, better keep it that way.

<comment><USER50> Another related one: having friends become colleagues can be challenging.

</comment></comment></comment><comment><USER51> Before you get into a business partnership, while everyone is smiling and optimistic, put in writing how the two of you will end this partnership should the time ever come.

Things happen. They aren't who you think they are. Or maybe they suddenly decide they don't want to lift a finger, but they still get 1/2 the profits. And since it is a 50/50 partnership you can't even insist they let you buy them out.

Or maybe they are a great partner but they die in a car wreck and their spouse is a nightmare who just wants the business sold, now. Even if it wrecks your life. Be very wary of 50/50 partnerships without clear escape clauses.

</comment><comment><USER52> Sales. You know, as probably every programmer out there you finish your product and you think that clients will start flocking in because you've build such a fucking great service. And then reality hits you in the face and you realize that the hard work just started. You have to go and talk face to face, listen to their needs, adjust your service accordingly, pamper them because they can't understand half of what you're saying, publish and then repeat.

The good thing is that once you get the grip of it you feel invincible. All the fear and the doubt you used to have while building a product disappear because now you know how to approach clients, and if you're smart enough you won't even start building a product without first having some feedback from potential clients.

</comment><comment><USER53> Documentation is like sex. If it is good, it is good. If it is bad it is good

<comment><USER54> "Our code is self-documenting. If you need documentation then the code isn't written well enough"

-Assholes who don't know what it is like to work with mature code bases.

<comment><USER55>
        "Our code is self-documenting. If you need documentation then the code isn't written well enough"

        -Assholes who don't know what it is like to work with mature code bases.

\- People who don't know how to write clean code

<comment><USER56>
            "Our code is self-documenting. If you need documentation then the code isn't written well enough"

            -Assholes who don't know what it is like to work with mature code bases.

        - People who don't know how to write clean code

\- People who think that not only they figured out what 'clean code' even means, but that everyone else will agree, thus single-handedly ending some 50+ years of heated industry-wide debate, numerous billion-dollar attempts by some of the most talented people in the world, and troves of 8-dimensional mental gymnastics about design patterns by way of a $21 ebook, a code review and some blog posts

<comment><USER54> Not to mention thinking that clean sensible code is always an option. There will always be something. It could be a kernel bug, it could be a quirk of an external library, it could be just to get the bloody thing to link against static libraries, but there will always eventually be an issue that requires a workaround that doesn't make sense without context.

</comment></comment></comment></comment></comment><comment><USER57> Being in a leadership position in a software org usually involves going to meetings all day and telling people bad news.

</comment><comment><USER58> Get everything in writing. EVERYTHING.

<comment><USER59> Ha, I've learned the hard way that: By the time you invoke a contract, the relationship is already in trouble.

<comment><USER60> This is usually true. There's two saving graces, though:

1) Just having the contract sometimes gives people pause about what boundaries they're willing to cross.

2) A contract can help you salvage things that are not the relationship once the relationship has gone south if you choose too.

<comment><USER61> Keep in mind that #1 works, even if what's in the contract is unenforceable. Companies use this to their advantage a lot.

</comment></comment></comment></comment><comment><USER62> 1\. Not to naively trust others so very easily.

Which leads to... drastic change in your personality and that leads to..

2\. Being very assertive, dominant, outgoing, life of the party, charisma, worldy wise etc.

I wish I was the same idealistic person I once was. I am definitely enjoying life way better than ever before but I no longer am naive.

<comment><USER63> Can you please expand on your transition? Was it something that felt like acting at first? Did you give up "neediness"?

</comment></comment><comment><USER64> Always make backups. The little bit of time it takes will be a life saver if anything transpires unexpected. Oh and don't deploy on Fridays.

<comment><USER65> On this same note, _test_ your backups occasionally.

Untested backups are worse than no backups.

<comment><USER66> Disaster recovery is hard. For startups, I finally learned to do this drill: Restore the entire business to fully operational status on clean computers from offsite backups in under 24 hours. You always hope you won't need it, but...

</comment></comment></comment><comment><USER67> You can never get back the time you waste. I'm talking on the years scale.

The fact that it's never too late to make positive change in your life doesn't mitigate that.

<comment><USER68> Time is the ultimate luxury.

</comment></comment><comment><USER69> Accept all negative criticism advice as well as you possibly can. If it's just someone being an asshole it's very easy to know that and just ignore, but if it's real it's the most valuable feedback you can get.

<comment> java-man This is not going to go well in the US or the British culture...

<comment><USER70> I'm an American and consider myself good at accepting criticism and using it to better myself. I'm not sure what you're trying to say, could you explain?

</comment></comment></comment><comment><USER71> I learned programming the hard way—by starting with imperative programming.

(Of course this doesn't apply to everyone, as I'm already a pretty mathematical person, and functional programming just immediately clicked and made sense. YMMV. In contrast, the first time I learned quicksort I spent an entire afternoon before I made sense of all the swapping and increment/decrement of array indices. In a way, I really hoped I hoped I would be introduced to programming with a better textbook, say SICP, which doesn't talk about assignment until one third into the book. It just suits my style so much more.)

</comment><comment><USER72> Know when it's time to quit, and when to accept failure.

Putting hours, effort, and emotion into a person/project won't save it from inevitable collapse if that's the direction it's headed in. Set a timeline, create metrics, and if you aren't on a positive trending track, quit, otherwise you'll just keep chasing something that will lead at best to mediocrity.

</comment><comment><USER73> Don't read the marketing department's descriptions of the product. "Its an AI driven, machines learning tuned, blockchain, smart contract jamboree!" (ok, I added the jamboree part). News to me. Also, don't go on the the business trip sales pitches. They literally just make up promises without asking the devs the difficulty/time line.

</comment><comment><USER74> Business decisions are financial decisions but the narrative you will be fed will be personal.

Open office plans, culture fits, promotions, etc. are disguised financial terms made by someone in business. Open office means they're trying to save money, culture fit means "how often will you listen to me" and promotion means "up or out"

The quickest way to shut someone up or shut someone down, is to provide them with numbers and facts corroborate by 2+ other people.

</comment><comment><USER75> There's a limit to grinding it out alone. To grow as fast as possible, you need to learn from those who have already walked your path - you need mentors and good guidance. In both academics and business, social skills and gymming - to go fast, go alone, and to go far, go together.

</comment><comment><USER76> 1\. Unit test everything, document everything, it is ALWAYS worth the cost (at least for a minimal test + mini design/spec/javadocs and the likes)

2\. Don't do premature optimizations / Measure before optimizing

3\. Keep your cool when asked for estimates for something with unknown requirements / unknown team. Losing your mind or temper is never worth it.

4\. Beware of the silver bullet new framework, right tool for the right job, avoid they hype on one hand and learn to move on when a technology dies out. (Hi Flash/VB/Cobol/Mainframe developers, I know you still have job security for a few years... but not forever...)

</comment><comment><USER19> Either I'm your customer or you're my customer. All transactions with another business should be buy/sell.

<comment><USER77> This one is great; easier to understand than the often quoted one. I shall steal!

</comment></comment><comment><USER78> "You are not that special." Can be a shock to the ego when you leave a top school, but if you take it the right way, it takes some pressure off.

</comment><comment><USER79> Always roll up your window when driving past the archery range.

<comment><USER80> I really need to know the story behind this.

</comment></comment><comment><USER81> The need for exponential back off when retrying a connection to a server. Learned _after_ deploying to millions of client devices :)

<comment><USER82> Exponential back-off is one of my favorite simple algorithms. Just remember to set a sane upper limit, you don't need them to wait hours between tries.

I will sometimes use a "pseudo exponential" like 1,3,5,10,25,50,100 and hold there. Of course, if you're trying to avoid collisions on a shared resource, the classic algorithm is pretty good.

</comment></comment><comment><USER83> That all my conventional-sounding musical ideas are easily captured by basic music theory. Even though banging your head against the wall has been useful in developing the ear, avoiding music theory doesn't make any sense since you keep repeating those well-known patterns, and in the end you have to start developing that pattern against pattern type of thinking instead of composing note against note & note after note.

Edit: "in favor of" -> "instead of"

<comment><USER84> > in the end you have to start developing that pattern against pattern type of > thinking in favor of composing note against note & note after note.

I think there is a typo, or this is ambiguous. Are you saying you _should_ use "pattern against pattern type of thinking" (and what is that?) or that you shouldn't? You _should_ use "note against note & note after note" or you shouldn't?

<comment><USER83> Sorry, meant to say "instead of" not "in favor of". I'll edit.

What I meant to say that if you haven't learned the proper classification system that we now have in general music theory (dominant & tonic chords, sus chords, and let's say basic modulation principles), you might walk a long time in the dark looking for "that feeling" or "that continuation".

</comment></comment></comment><comment> xkcd-sucks Corporate politics is just as much a thing in startups as it is in large companies, and owners are just as likely to screw over their employees (or more likely, when it comes to equity).

Kind of like politics and petty concerns are a big thing in academia too.

</comment><comment><USER85> There are (at least) 3 sides to exercise: Strength, Cardio, and Stretching. They are each at least as important as the others.

Go to the dentist. Even if you have great teeth.

<comment><USER86> Stretching is probably mostly hype. E.g., [https://www.painscience.com/articles/stretching.php](https://www.painscience.com/articles/stretching.php)

<comment><USER36> Tell that to gymnasts and martial artists. I have seen the "science" of this over the years, but I have also seen the practical fact that it's absolutely unavoidable.

<comment><USER87> Gymnasts, martial artists, ballet dancers and some athlets (e.g. javelin throwers) stretch to increase their range of motion because the latter is beneficial for their activities. The effect is temporary (+) unless you start at a young age and ruin your joints (-> China). If you don't belong to those groups, stretching doesn't do much for you, as has been repeatedly pointed out in various publications. The other benefits attributed to stretching, e.g. a lower risk for injuries, are actually caused by the warming-up effect of the stretching movements and can be also achieved, in a much safer way!, by some simple exercises.

(Side note: When talking about the benefits of stretching, some people also mention Yoga, but that's a different story and 99.999% of Yoga teachers and practitioner don't have the slightest idea what they are doing.)

(+) That's the reason why you have the impression that you are stiff when you skip stretching for one or two days.

<comment><USER36> Try squatting deep without being flexible. Squatting --> strength --> better posture, metabolism, & bone density.

</comment></comment></comment></comment></comment><comment><USER88> Make things pretty.

No amount of hard work and usefulness can amount to a beautiful product.

I have strong feelings about Lean Startup who told me to create a MVP, which made me look like an amateur.

So, listen to the marketing people and wait to release a beautiful finished product.

<comment><USER89> As a user I beg of you not to sacrifice usefulness and features for Pretty.

Seen way too may times where stuff was rewritten to look better but usability suffered.

Case in point: Walmart recently redid their self checkouts. The new system looks a lot better and I like it if it did not take 3 times as long to pay. It even took forever compared to the old one to register cash being inserted. And there were several complete lockups.

Recently it seems better so I believe they have been working on the back end but for a while I would not even touch them

<comment><USER32> Waitmart takes even longer with these systems? I generally always go to cashiers for that reason. I feel like I'm becoming the minority who would rather deal with an actual person than an automated system most of the time, and I develop automated software.

<comment><USER90> I avoid the self-checkout because I don't appreciate the (perceived) atmosphere of suspicion that you're trying to steal something.

</comment></comment></comment></comment><comment> rm_-rf_slash Math.

Multivariable calculus and differential equations weren't a part of my undergraduate CS curriculum. Now that I'm doing an MEng in AI, I have to learn the hard math I skirted by before.

I don't have the time or money to take the proper math classes so I'm learning everything myself. I have to figure out my own structure and timeline.

Without the math, I wouldn't be much more than a technician when it comes to AI. It's worth the work.

</comment><comment><USER91> It doesn't matter if they have money. It doesn't matter if they espouse religion or any other outward signs of honesty. It doesn't matter what they say. If you have any reason to believe they can't be trusted, even if it is a silly gut feeling, then they can't be trusted. Nor can you give them any possible wiggle room, like payment terms.

<comment> your-nanny except that some people have great difficulty ever trusting again, particularly after trauma. What then?

<comment><USER91> You put a big moat around things. IE: stronger, more painful contractural terms. Cash up front payment terms. Process and procedure that make sure you never get screwed again.

</comment></comment></comment><comment><USER92> When one of your children's behavior abruptly goes from more-or-less normal to almost completely out of control, do your best to _find out why_ , rather than just trying to manage the situation.

</comment><comment><USER93> How to successfully roll out a product/site.

Released "Version 2" which was an entire newly built system that we worked on for an entire year (we also thought we were "agile" btw). This completely crashed and around 10K users were unable to use the product for almost 2 weeks. We did plenty of things right but we also failed.

Biggest Lessons learned: 1\. Release features and changes in manageable incremental chunks 2\. Load test, load test, load test - just do it! Yeah, sure, your app worked with your one user when there is 1kb of data in your datastore - what about 5000 users accessing it with 10GB in your data store? 3\. Get and use an APM - when it feels like everything is on fire you'll need to know where the fire is coming from 4\. One way changes that can't be rolled back are the devil. Take the time needed to make sure you can roll back - manageable incremental changes help with that.

<comment><USER94> What is an APM in this context? Google just tells me about Alternative Payment Methods.

<comment><USER95> Application Performance Management/Monitoring.

New Relic, AppDynamics, and DynaTrace are a few vendors in this area.

</comment></comment></comment><comment><USER96> Start a company with a friend will bite you back one day (for me 20 years after the company starts !)

<comment><USER97> A 20 years partner is a great partner.

<comment><USER98> 25 years after, definitely. 20 years after it might be brutal and personal.

</comment></comment></comment><comment><USER69> When coding, learn to type fast and not use autofill. Your code will be better and you will retain the code in your mind it much, much longer.

</comment><comment><USER99> Playing with stocks. I decided to try to win big in the market. Took my IRA money out of index funds, and started trying to play some stocks. Lost big on one, panicked, and got out. My timing was awful. That stock eventually recovered to my purchase point after six months, but I put my money into another sure thing based on my research. Lost more. At least this time I did not panic. Now I'm trying to make up for it by playing the long term on a stock that should bounce back, but I'm content if it doesn't. Maybe it'll take a year or two, but I should at least be back to where I was. Then I'll be moving back into index funds.

</comment><comment><USER100> Anything dealing with date/time will take 4 times longer than you expect and involve 10 times as many discussions as anything else.

</comment><comment><USER101> Never move from a neighborhood you like to one you don't like, because you'll never be able to get back in.

</comment><comment><USER102> Make sure you put a tax distribution requirement in our LLC's operating agreement if you have a partner. I'm on the hook for a huge amount of revenue with no money from the company to pay the IRS.

</comment><comment><USER103> Unless you're a founder or you personally know and trust the capability of the founder(s) recruiting you, max out cash and ignore options.

Also, unless you've been especially good at proving your value to people (either through credentialing or having worked with someone directly or with someone they trust), no one is going to come to you with an offer to hop aboard a rocketship. Assume by default that any offer made to you is unfair and skewed to favor the person making it. Negotiate accordingly.

</comment><comment><USER104> If you're going to hop a fence to take a shortcut to your friend's house to play Mario Party after your last winter exam, check how deep the snow on the other side is first.

</comment><comment><USER105> I learned the hard way that sociopaths and psychopaths are real, they're not all monstrous murderers, and some of them you may even call friend or family.

<comment><USER106> Amen to that. And some of them are super good at appearing normal even charming.

<comment><USER105> Most of them! That is their deadliest trait. They've a lifetime of experience trying to disguise themselves among normal people. Their ability to cloak themselves is how they prey on you.

</comment></comment></comment><comment><USER107> I learned the hard way than using a Macbook Air 11" for 10 hours a day during 1 year was a bad idea. I now have a small myopia and have to wear glasses.

</comment><comment><USER65> The importance of having a plan and smart [0] goals. This has manifested itself over and over in my life.

Take more time to plan up front, save yourself a lot of time and effort wasted if you don't.

[0] [https://www.mindtools.com/pages/article/smart- goals.htm](https://www.mindtools.com/pages/article/smart-goals.htm)

</comment><comment><USER108> No matter what you do, you will end up p*ssing off someone. No matter what.

<comment><USER105> Corollary: stop caring what other people think. The sooner you manage that, the better off you'll be.

</comment></comment><comment><USER109> That end to end tests for critical business functions will save your ass the moment you, your team, or your test suite fails to spot a bug.

I once added a line of code that did not execute in test environments because it involved a request to hosts that were only available on staging and production. So the tests were obviously fine but shit went south in production.

</comment><comment><USER110> Hell hath no fury like a woman scorned (with legal representation).

</comment><comment><USER111> You are the only person who will recognize and value your own overachievements. Prevailingly, others will view your efforts and either think nothing of them or wonder why anyone would go to such lengths.

If you're going to go above and beyond, you should seriously question why you are doing so. When in doubt, do it for yourself.

</comment><comment><USER112> 1\. Delegate

2\. You can't help everyone

3\. When you fail, let it go and move on

<comment><USER112> 4\. Don't be afraid

</comment></comment><comment> yc-kraln How to be a good husband.

It took pushing my marriage to nearly the point of breaking to realize that my obsession with work, lack of participation in the house, and aggressive/demanding interpersonal communications was only leading to a dead end.

</comment><comment><USER113> You don't have to be nice to everyone all the time. It's better to be grumpy, opinionated and even a nay sayer sometimes than to fake smile through everything.

Because doing the later can give you physical symptoms like real back pain and migraines (collectively known as TMS) and millions of people suffer from it, get surgeries, medicine yet don't know that their persona is the cause of their physical pains.

This is what I learned the hard way after suffering from such aches and pains daily for nearly two decades and geting better quickly by just understanding the most basic thing about how our mind and body works.

<comment><USER114> Could you elaborate how being nice can cause a physical pain?

<comment><USER113> It's all there in the amazing book by Dr. John Sarno called the divided mind which I wrote about here (1).

It's the clash between id and the super-ego that causes it and there are thousand (if not more) people who got better from this pain.

If you search google for "TMS pain personality" you will find thousands of articles but this seems like a good start as any (2).

Unfortunately it's not for everyone because you really need to have an open mind (it's okay if you're a skeptical though) to unlearn your pain.

(1) [https://news.ycombinator.com/item?id=17980964](https://news.ycombinator.com/item?id=17980964)

(2) [http://www.tmswiki.org/ppd/TMS_Personality_Traits](http://www.tmswiki.org/ppd/TMS_Personality_Traits)

</comment></comment></comment><comment><USER115> Trading and to an extent, savings.

Bought Bitcoin worth about $30k over time which turned into $120k after a bull run after a awhile and I put my foot into leverage trading without knowing what I was doing. Kept losing and got margin called until I emptied myself. If I had kept it without a single trading, it would've been around $300k today.

That gave me a pretty bad blow when my company went into not so good state and my income took a hit, I no longer had any spare money and I've learned to trade after I know what I'm doing and split your savings instead of going all on your single favorite financial vehicle.

</comment><comment><USER116> 1\. question everything.

2\. trust no one, not even yourself.

3\. hard work, is money in the bank.

4\. with two paths in the road... take the scarier one.

5\. pay off your debts faster than expected.

6\. give more than you get.

7\. listen more than you speak.

8\. always be prepared, to find another job.

9\. love unconditionally.

10\. try not to think in absolute terms.

11\. everyone has a story

edit: format

</comment><comment><USER117> tl;dr _always_ make production setup the same as staging.

We once had a production-only crash inside our Elasticsearch setup (we had written plugins). On preproduction it was fine, development fine, etc. But on production it would crash with NoSuchMethodError coming from the Jackson library (I think it was floatValue()). After several hours and rolling back/forward, I took a shot that there was something clashing with the class in the JVM (which I didn't know was possible at the time as I was a fresh dev). After backtracing for a while, it turned out that our production ES environment had some AWS autodiscovery plugin installed. This plugin depended on the AWS SDK, which depended an AWS common library, which depended on a Jackson version _just_ old enough to not have floatValue(). It appears that this was being loaded first, causing our plugin to crash because we were calling a method which didn't exist in their version.

Turns out that I actually filed a ticket for the SDK to update ([https://github.com/aws/aws-sdk-java/issues/411](https://github.com/aws/aws- sdk-java/issues/411)) but I think we ended up just migrating away from floatValue() altogether. As a younger developer, this definitely opened my eyes to the need to ensure parity across test environments (I remember this happened whilst I was on a tz that had me trying to debug this at 4am).

</comment><comment><USER118> Grokking is not enough, go through the details. Spent weeks debugging a silent memory corruption on an 8-bit processor due to the incorrect usage of strtok in an SCPI parser.

<comment><USER119> ?

Have you read Stranger in a Strange Land? I suspect someone else has taught you that word and they did it badly. To grok is to understand something at a profound, visceral level.

</comment></comment><comment><USER98> Management can be nice. As a dedicated coder, in depth, work hard and lean code better, going into management can give you the levers to bring others what you wanted to have and just be meta. But don't stop coding just do it meta. You can be a hacker and just manage people to do what's needed. Not all managers are assholes. Be prepared to talk more and understand more.

</comment><comment><USER16> The danger of overly ambitious goals is their brittleness, and when they break, they break all the way. Much like "the best camera is the one you have", the best diet is the one you keep, and the best course is the one you'll attend. It's better to set yourself up for modest success than spectacular failure.

\</comment><comment>-

Community matters. Relationships with other people matter. When I thought strong work would scratch my every itch, it's because I'd yet to discover the contours of other ways of life one might have. I was fine being an antisocial workaholic at 20. As I approached 30, my face went white as some unspoken emotional thing in me began to realize what I'd missed. But you can come back from that, and it's very worth it. If you're willing to suss out the rules of engagement and play it straight, the world is happy to have you.

\</comment><comment>-

Western religion and American conservatism (archetypically, not the current implementations) have interesting and important insights about society and conduct, and they're things that off-the-shelf liberal culture suppresses or misunderstands, not from raw malice, but from calcified disinterest.

Revisiting the bible and last-generation conservative ideology with the idea that it might be an imperfect set of abstractions with something to teach rather than a guidebook for cruelty to be read literally led to a lot of personal growth, since the stories are archetypes about different types of conduct and their potential consequences. These stories aren't always right, and aren't always useful, but they were a second voice that, living in a coastal/liberal/progressive filter bubble, I had never heard. Seeing and understanding the "best" of what the right thinks, instead of the most "otherizing", led me to a worldview that feels more balanced, more centrist, and less polarized. It makes me assume positive intent in more people, and pick sides and fight less often.

I credit Jordan Peterson's lecture courses for packing these in a way that my progressive athiest self didn't immediately reject.

\</comment><comment>-

[https://www.kalzumeus.com/2012/01/23/salary- negotiation/](https://www.kalzumeus.com/2012/01/23/salary-negotiation/)

Everything @Patio11 says about salary is true. I missed out on gigantic sums of money, but later got them back on the table. The mental models in the article have, on a 5 year timeline, resulted in serious earning growth with absolutely no negative consequences.

<comment><USER120> I think the calcified disinterest in some of us comes from being raised in (and eventually leaving) a Western religious and conservative environment.

<comment><USER16> Certainly true. The pointed rejection of all forms of religion after having been wronged by it is common, and Slate Star Codex makes mention of it in a note that's somewhat relevant to this topic.

My personal hunch is that it mirrors an experience my friends have described about sushi and coffee, neither of which I enjoy. Apparently, bad versions of those things are unpalatable if you don't know what would make them good. If you start there, you wonder "why the hell does anyone consume this". But once you've had the very good versions, you "get it" and know what you should be experiencing when you go back to the lesser versions, and more easily "forgive" their imperfect representations of a thing you enjoy.

I've definitely had that experience with religion. I grew up in a family that was ambivalent to such things, failing to understand why anyone would care at all. Then as an adolescent I saw all the horror, at home and abroad, wrought by religion, and rejected it as superstitious mumbo-jumbo at best, and a pretense for violence, bigotry, and a return to the stone-age at worst. When I finally managed to encounter a packaging that let me see what might be good about it, I was grateful to finally understand what the fuss was about, even if I'm not all the way bought in.

I now have approximately the view that Sam Harris[1] does:

"I still considered the world's religions to be mere intellectual ruins, maintained at enormous economic and social cost, but I now understood that important psychological truths could be found in the rubble."

[0] [http://slatestarcodex.com/2013/06/09/all-debates-are- bravery...](http://slatestarcodex.com/2013/06/09/all-debates-are-bravery- debates/)

[1] [https://samharris.org/podcasts/chapter- one/](https://samharris.org/podcasts/chapter-one/)

<comment><USER120> Yeah, I don't disagree- but I do sometimes wonder if those same psychological truths could have been derived without said religions. That said, I did read Harris' book Waking Up and thought it was interesting and his thought was that Buddhism did provide some specific/keen insights on psychology and the mind that we really haven't encountered or arrived at anywhere else, at least not before Buddhism did. So I think my stance would be near the statement you quoted too.

I do have a passing interest in Buddhism (but not as an adherent, though I do meditate, read about, and appreciate some of it) though both Buddhism and the better forms of Christianity I still don't think are for me (nor is any organized religion) but I can appreciate parts of them from a distance and those that are still adherents, if their actions follow positive paths from them. I think I've matured since my journey out of the faith began, so it's easier now to be a bit more measured (yet still firm) in my rejection of it.

</comment></comment></comment></comment><comment><USER121> That I typically only learn the hard way.

</comment><comment><USER122> Respect that stress is a real thing. Don't stress yourself too much. It will fuck you up in the long run

</comment><comment><USER123> Most of us will be extremely handsomely rewarded to carefully build something that will be torn down within a few years and replaced with something new. Usually because someone made a PowerPoint where a made up number was smaller than a different, slightly less, made up number.

</comment><comment><USER124> Chesapeake Bay is not in a costal county list of hurricane zones because it isn't in a county.

</comment><comment><USER125> Do not get blinded by enthusiasm. Think on your own.

I had a startup, co-founder persistet on bad tech, never stood up to him. Startup failed - and all for the wrong reason. I basicly had two choices: speak up or leave and I did neither, dragging along. I will never do that again!

</comment><comment><USER126> That sometimes, there's nothing to learn, only the obligation to make either bad choice 1 or bad choice 2. Both will bring regrets and negative consequences of their own for a long time, if you're lucky, longer if you're not.

</comment><comment><USER127> 1\. Never combine invoices - accounting bugs are difficult to spot and even harder to agree on. 2\. Eye contact and thanking people mean more than you might think 3\. Be wary of sales/persuasion people with good peripheral vision

<comment><USER92> Could you explain #3?

<comment><USER127> It's just something I've noticed over the years. Personal charisma as it relates to sales/persuasion/compliance correlates with peripheral vision.

I went through a period in 2012 where I did more negotiating (car buying and lots of contract negotiations) than I've ever done before and noticed that the more personally charismatic they were the greater the ability to focus on me while being visually aware of what was going on around them.

I don't know of any greater meaning behind it but I've noticed a correlation then and since.

<comment><USER127> And to clarify the "wary" part - the higher the charisma the less skeptical you will be of the person you're negotiating with.

</comment></comment></comment></comment><comment><USER128> Burnout is a real thing.

One round of SSRIs later I now know how to handle my stress levels and say no.

</comment><comment><USER129> Always read the fine print before you sign.

This has bitten me so many times. The last I could recall was a car lease where the salesman has told me the overage cost on miles was 10 cents a mile. Turned out it was 20 cents a mile.

</comment><comment><USER130> The closer you get to death:

\- you care less about work and money

\- you care more about family and relationships

<comment> your-nanny I've injured myself before, so that I was relatively helpless, and found that to be true. Maybe because I accepted that I had nowhere to go nothing to do except to let my kids sit on my back watching perp and the big wide world.

</comment></comment><comment><USER131> Always have a exit plan before you begin.

This sounds like commonsense for most people. But I learnt this the hard way while drifting through my 20's in a mediocre career. Still rebuilding after going back to college.

</comment><comment><USER32> When asked for a time estimate, give 2-3x longer, possibly more if you can.

</comment><comment><USER132> How not to run a contract development business during a recession. :)

</comment><comment><USER133> Make sure sales compensation is very closely tied to performance, i.e. don't put salespeople on a vesting schedule tied only to time passing.

</comment><comment><USER134> The only useful policy is the one that is followed

</comment><comment><USER135> Choosing a spouse or life partner is a major decision. Don't rush into it. If you did, have the strength to end it.

</comment><comment><USER136> Your reach should exceed your grasp. Bigger dreams, bigger goals, bigger risks, bigger wins.

</comment><comment><USER137> Keeping high quality in a code base either requires dedicated person/team.

<comment><USER98> And management. Look for quality management.

<comment> ju-st The best direct manager is of little use when all the levels above him/her are garbage.

<comment><USER98> N levels or garbage and 1 good level is not quality management.

</comment></comment></comment></comment><comment><USER138> PHP. I'm refactoring something I wrote a 13 years ago and it's hell.

</comment><comment><USER59> Don't fish without a license

<comment><USER16> I'm really curious about this story.

<comment><USER91> I don't know johnwheeler's story, but I got talking to an Oregon game warden a couple weeks back. His story was that the state is handing out jail time and big fines in certain circumstances. What he described was work parties (large families, for example) coming from as far away as Seattle to pick up clams on the Columbia river. This particular type of clam is in vast numbers, but it is an invasive species. So you would think the state would be thankful to have them gone, right? What he described though is that the state is concerned about the spread to other bodies of water - so they want them left right there, rather than transported and potentially dumped somewhere else to spread. Given that these groups are collecting them for restaurant sales, I suspect that is an unlikely scenario, but there you have it. He said the biggest ticket he'd written was on the order of tens-of-thousands of dollars. So apparently this can be a hard lesson to learn.

</comment></comment></comment><comment><USER139> Why are there so many duplicate responses in this thread?

<comment><USER16> Because we all want to reject a lot of the same inconvenient truths of the world, and when we finally stop, it makes such an impact that we're excited to share. If 100 people instead of 2 tell me the same thing is important, I think that's more exciting than redundant.

<comment><USER139> I understand that but I meant there are a lot of the same accounts making multiple of the same/slightly altered comment.

</comment></comment></comment><comment><USER140> C Programming. Did it on the CLI while there were IDEs.

</comment><comment><USER141> Don't build rocket fuel in your house.

</comment><comment><USER142> Quantity has a quality all of its own.

</comment><comment><USER143> zope, the zca and plone. But so happy to jad discovered these awesome tools :)

</comment><comment><USER144> Everything worth learning.

</comment><comment><USER145> Python.

</comment><comment><USER146> C.

</comment><comment><USER147> It isn't the most capable person who gets promoted. It's the person who can make their superiors believe they're the most capable.

<comment><USER16> I've got a slightly different take, though I think they have some overlap:

Capability for a job is more than raw competence, which is why most people reject the Brilliant Asshole, even when that person is genuinely brilliant.

I've seen some inarguably mediocre workers get some great roles – and I've worked alongside of some of them. And I loved every minute. If you're cranking out 65% of the work and make the team 400% more enjoyable to be on, that's a worthy form of force-multiplication.

The best teambuilders wield this principle smartly instead of meritocratically rejecting its existence.

This is a great thing to know in job interviews, and lots of otherwise irrational-looking hiring behavior becomes sane when viewed through this lens.

<comment><USER21> You're both right. A person can be a force multiplier for the team even if their direct output is low. But I've also seen people simply bullshitting their way into better projects and positions.

</comment></comment></comment><comment><USER36> Someone told me something along the lines of "Every event in your life can change your life entirely - you get into Harvard or you don't, you get the job or you don't, you win the tournament and go on to become a champion, or you give up on the sport when you lose. Every little decision can be a fork in your life, though most aren't."

Sure, it's oversimplified, sure some "bad-seeming" things are good in the long run, etc. But I find the fork part interesting to thing about - the fact that one little thing can spiral your life of in a completely different direction.

<comment><USER125> I see this more clearly in hindsight. By pure accident I ended up in software development: My mother found this university, I did not have anything else on my mind at the time, just started studying, graduated and here I am 10+ years later professional sw dev. In school I was much more into arts and crafts so I never really anticipated that I would end up. All because of a small decision back then... ridiculous really ;) Some people really think they are in control of their lives ...

</comment></comment><comment><USER148> Agreed. Some advice from Mr. Peterson: [https://www.youtube.com/watch?v=wLvd_ZbX1w0](https://www.youtube.com/watch?v=wLvd_ZbX1w0)

<comment><USER36> The fact that you are calling him "Mr" Peterson says a lot of depressing things about you.

<comment><USER25> What is the context of this comment? I don't know who Jordan Peterson is or what he's done.

<comment><USER149> There's a video from the Munk Institute where Jordan Peterson, Stephen Fry and two other people debate whether political correctness is good or bad.

[https://www.munkdebates.com/The-Debates/Political- Correctnes...](https://www.munkdebates.com/The-Debates/Political-Correctness)</comment></comment></comment></comment>


Leading the Organization: Gotchas - <AUTHOR> https://medium.com/@joshuamabina/leading-the-organization-gotchas-35d548e3a3de <comment><AUTHOR> My takeaways on the fundamentals of leading an organization; a course offered by edX, The University of Queensland.</comment>


Ask HN: YouTube's storage system - <AUTHOR>

Does anyone know how YouTube stores all their videos? Do they use a distributed file system spread across clusters? Or do they just use MySQL and store them as long blobs (< 4.2GB per blob)? <comment><USER2> The most details I've seen are summarized here:

<http://highscalability.com/youtube-architecture>

<comment><AUTHOR> thank you!</comment></comment>


Netflix, Long an AWS Customer, Tests Waters on Google Cloud - <AUTHOR> https://www.theinformation.com/articles/netflix-long-an-aws-customer-tests-waters-on-google-cloud <comment><USER3> Netflix has been "testing the waters" at GCP for years. And as their infrastructure grows, relying on a single cloud provider would be a silly limitation to put on themselves. Disaster-recovery/failover is a very natural use case for multi-cloud deployments. Not to mention that for certain workloads and patterns, GCP is cheaper and better. Netflix operates at a scale well beyond what most AWS managed services can really address, and broad cloud patterns like object storage, function-as-a-service, VMs, and networks, can be abstracted away given enough resources, which Netflix surely has. Not to mention that at Netflix's scale they have real leverage over cloud providers and what services they offer. They would be stupid _not_ to be playing AWS and GCP against each other for pricing (on which they already get a huge discount) and features.

I'm guessing there's some project getting underway to move/duplicate some subset of resources hosted in AWS on GCP. It's likely a huge project that dwarfs most corporations entire cloud presence, but I'm guessing for Netflix it's a small piece of a giant puzzle, and that the vast majority of their operations are still centered at AWS and will be for years and years to come.

<comment><USER4> You don't have to be Netflix to get AWS, GCP and MS to play against each on pricing. I've seen a number of my clients build a prototype on each platforms, and then use it to make final decision. Part of that final decision is having the cloud vendors compete on price.

I personally haven't seen any massive price breaks, but there definitely is room the margins.

<comment><USER5> Really playing these companies against each other would mean dynamically balancing your services across the providers based on pricing

<comment><USER4> I've love to see some open source tools that manage this automagically for me. :-)

It would also require an architecture that supports multiple interfaces. Totally doable (the facade pattern comes to mind) but you'd want to calculate the TCO to see it works out financially.

<comment><USER6> Shameless plug: we have an open source tool you can build stuff like this on. It'll run any logic you can implement in JavaScript, we have people doing things like "send traffic to backend with lowest latency" already, it'd be pretty easy to pull in some API data to pick based on cost.

[https://github.com/superfly/fly](https://github.com/superfly/fly)

</comment></comment></comment></comment></comment><comment><USER7> Firstly: not very new. Hasn't Netflix been at this for a long time?

Secondly, everyone should be checking. Not only is Google doing a lot of subsidization, but their services are really really good. My current employer ended up being unable to use them but it's I acutely regret every day I'm forced to build out things Google already has or deal with Amazon's frustratingly antiquated ELB infrastructure.

<comment><USER8> AWS's ELB/ALB have been rock solid for us. Not sure what you are referring to when you say 'antiquated infrastructure'?

<comment><USER9> Antiquated doesn't mean unstable or unusable. It means old fashioned. It's not the new hotness.

<comment><USER7> I see such intense benefits from HTTP/2 end to end, I'm quite happy to be called a shiny-chaser when my 50th and 99th drops so sharply.

Also, prefetch is absolutely incredible for webapps and I'm trying to get my peers at my current employer to embrace it even if it's not well supported in AWS.

<comment><USER10> Have you tried termination at ELB with TCP to backend, or just plain TCP passthrough all the way?

Also as mentioned elsewhere, ALB or NLB might do what you want, either working the same way as regular ELB or via the same workarounds.

</comment></comment></comment></comment></comment><comment><USER11> There are a lot of comments saying that Netflix should run its own datacenter.

Adrian Cockcraft helped lead Netflix's effort to move to AWS and now is a VP at AWS

[https://www.linkedin.com/in/adriancockcroft/](https://www.linkedin.com/in/adriancockcroft/)

He did an interview with Software Engineering Radio back in 2014 explaining their motivation.

[http://www.se-radio.net/2014/12/episode-216-adrian- cockcroft...](http://www.se-radio.net/2014/12/episode-216-adrian-cockcroft-on- the-modern-cloud-based-platform/)

<comment><USER12> > Adrian Cockcraft helped lead Netflix's effort to move to AWS and now is a VP > at AWS.

I always get a bad taste in my mouth when I read things like that. Was it really an objective choice, or was this AWS' way of saying "thank you" ?

<comment><USER13> You're ignoring the fact that he spent a few years at Battery Ventures in between Netflix and AWS. Adrian is a well respected professional in his field, has been around for decades, and nobody holds any negative perceptions of him.

He wasn't hired by AWS because he migrated datacenters to the cloud. He was hired by AWS because he created this: [https://netflix.github.io/](https://netflix.github.io/) \- Netflix's OSS, which has allowed them to attract so much great talent, was a direct result of Adrian's passionate open source advocacy. He's doing the same thing at AWS now, and has already accomplished great things like open sourcing all of the AWS documentation.

Disclaimer: work at AWS.

</comment></comment></comment><comment><USER14> A lot of this article isn't that surprising -- especially the part where they're keeping "Business Critical" data on GCP. Of course they are! Every company needs a disaster recovery plan and in general shouldn't put their eggs in one basket.

I'd be interested to see where the AI/ML frameworks differ though, and what additional value one can extract using GCP versus AWS and at what cost/presumptions.

</comment><comment><USER15> My prediction is that by 2020 Netflix will move a significant portion of their IT to Google Cloud.

Why? Most of their architecture is microservices / linux containers / serverless, and Google is simply way better positioned there (with Kubernetes as their crown jewel). They will eventually win.

Source: no source, just my "expert" opinion (6 years at AWS, 2 at VMware's cloud, currently CEO at a startup).

<comment><USER16> Isn't Netflix invested heavily on Mesos than k8s for their container orchestration? for example Titus [https://medium.com/netflix- techblog/tagged/titus](https://medium.com/netflix-techblog/tagged/titus) Fenzo [https://github.com/Netflix/Fenzo](https://github.com/Netflix/Fenzo)

<comment><USER12> While that might be the case, I wouldn't be surprised if they let teams play with k8s as well. Besides, one should always look at these choices objectively; if Google + k8s is a better deal overall than AWS & Mesos, then you shouldnt let your earlier investments cloud your judgement.

</comment></comment></comment><comment><USER17> I think long term, Netflix needs redundancy, especially when the primary supplier is a competitor in the same space.

<comment><USER18> And the standing problem now is that their secondary supplier they're considering is also a competitor in the same space. It's a wonder Netflix isn't testing the waters against Azure, since Microsoft just closed their video sales offerings down.

<comment><USER19> Microsoft pulled out of the music space, they're still selling & renting movies/shows and content services are a core feature of azure. Netflix uses its own POPS for of its content delivery.

<comment><USER18> Ah yes, I mixed that up. :/ Though who rents movies from Microsoft? And they don't have a subscription-based service for it, like both Amazon and Google do.

<comment><USER19> I rent movies and tv shows from Microsoft all the time. They have some great sales.

</comment></comment></comment></comment></comment><comment><USER20> I just got back from NAB and one thing clear was that Google is aggressively trying to get into the broadcast video space with their Cloud Offering.

</comment><comment> forgot-my-pw I would think if a business use more than 500 servers, it would make sense to start considering having your own datacenter?

<comment><USER19> I wouldn't do my own datacenter as in build out a building, but I would certainly lease a cage and build out my own infrastructure at probably half that count.

As far as I know, Netflix has POP's for content delivery in many carrier facilities so it's not a pure cloud player by any means.

For the cost of 1 year for a single cloud server you can buy a 52 core dell with 256gb ram and a few SSD's and have price/performance ratios that heavily scale in your favor and with a scheduler like marathon, k8s, nomad you can easily achieve elasticity in a private colo to a large degree without also marrying yourself to cloud specifics and nothing would stop you from peering with major cloud providers for seasonal elastic needs.

<comment><USER14> That's a good distinction. CoLo providers are pretty reasonably priced and most of the larger ones are good at what they do.

There's a HUGE scale difference between a CoLo and your own -- as soon as you start having to negotiate diesel supply contracts yourself things get crazy fast.

<comment><USER19> I would never roll my own unless I was of facebook/google size. Colo space is abundant and affordable.

</comment></comment></comment></comment><comment><USER21> I'm surprised they have thought to move some of their infrastructure in house. The clearly have the scale where this would make sense, but it may be that AWS and GCP provide them with such low special prices that it doesn't make sense...

<comment><USER22> Their CDN is in-house [1]. They use cloud services for general computing.

[1] [https://media.netflix.com/en/company-blog/how-netflix- works-...](https://media.netflix.com/en/company-blog/how-netflix-works-with- isps-around-the-globe-to-deliver-a-great-viewing-experience)

</comment></comment><comment><USER23> This is natural commodification of compute, especially with such large deployments where there will be a lot of in-house tooling and apps that just need raw compute and storage to run, no matter where it comes from.

The rise of containers and Kubernetes makes this even easier now. It'll be interesting to see how the clouds differentiate beyond this as most managed services are still rather underwhelming compared to the hype and are also often beat by Kubernetes deployments if available.

</comment><comment><USER24> Looks like this is paywalled.

 _Edit_ : Since this is being downvoted, here is the proof: [https://screenshots.firefox.com/bgD6FxWvQS4e0sB2/www.theinfo...](https://screenshots.firefox.com/bgD6FxWvQS4e0sB2/www.theinformation.com)

I have no issue with paywalled-content, it should just be noted that this is, at least for some readers.

<comment><USER25> I agree. If putting [video] on video links is a thing here, so should [paywall] or similar since it's even more annoying than videos.

However, I'm a subscriber to The Information so here's a share link: [https://go.theinformation.com/f2b133baedc57a8c](https://go.theinformation.com/f2b133baedc57a8c) \- I think it requres an email, alas, but it's something if people are desperate to read the story.

</comment></comment><comment><USER26> lol, This a "press release" written by a PR firm employed by google

etflix, one of Amazon Web Services' biggest customers, is expanding its use of Google Cloud, AWS's biggest rival, according to two people with knowledge of the matter. The move, which hasn't previously been reported, could portend a shift in the balance of power in the cloud computing market

</comment><comment><USER27> This could also be titled "Netflix Ensures its AWS Discounts Continue"

AWS sales teams are quite responsive to threats of moving in terms of continuing discounts. I've drawn up migration plans solely to use as leverage against AWS for deep discounts in the past.

<comment><USER28> Just curious: Can you state a range of possible discounts against list price? The stuff I deal with is small fry but I always wonder how much cheaper the big guys get their cloud services compared to us.

<comment><USER27> Third hand knowledge - since I was not a part of the negotiations - <USER2> warning. The company I worked for was getting discounts in the 40-50% range. It was the only way they could afford to use AWS, frankly, since it was all static provisioning (i.e. no elasticity in the workload). They were also approaching a petabyte of data stored in S3.

</comment></comment></comment><comment><USER29> This is one reason you don't want to go with specialized databases or queues. If you used a managed Queue or Database, make sure you can get that same exact Queue or Database on another cloud provider.

</comment><comment><USER30> If more people start using GCP, then in the near future, GCP's prices will go up. In contrast, AWS prices may come down to compete with GCP. And when they reach close parity, things will begin to commoditize and get even cheaper across the board. I see this being a good thing overall as an industry.

<comment><USER23> Why would GCP prices go up?

</comment></comment><comment><USER31> We might have bigger problems if AWS goes down

</comment><comment><USER32> Really surprised this has not happen earlier.

</comment><comment><USER33> This is off topic, but the mention of my data going onto Google cloud made me wonder: does Netflix share viewing histories?

I read their privacy policy but it was so mealy mouthed it's hard to make heads or tails of to a non-lawyer.

<comment><USER34> Disclosure: I work at Google Cloud on Kubeflow

I can't speak for Netflix's privacy policy, but, if your concern is with Google, we never ever ever ever mix/merge Google customer data with customer data. Like ever ever ever.

FWIW, we STRONGLY suggest (just to be doubly sure) that you encrypt at rest and/or offer the option to use Customer Supplied Keys. Encrypt all the things! [https://cloud.google.com/security/encryption-at- rest/](https://cloud.google.com/security/encryption-at-rest/)</comment></comment>


The newsonomics of "Little Data," data scientists, and conversion specialists - <AUTHOR> http://www.niemanlab.org/2013/10/the-newsonomics-of-little-data-data-scientists-and-conversion-specialists/

<comment><USER2> This headline made me chuckle. One of my biggest disappointments while working at NYT Digital in the late 00s was that there were so many engineers. To organize them all, technologies and staff were piled into silos (eg the database team, the platform team, the frontend team), requiring painfully complicated communication for significant projects. Things moved very slowly there.

It was so bad that my department director jokingly recommended hastening a small, public-facing project by using Google Spreadsheets as a datastore, rather than deal with the overhead of involving the database team. I took his advice at face value and shipped the app quickly. He grinned, and said in a congratulatory tone, "you actually used Google Spreadsheets!" It was like a subversive victory.

<comment><USER3> This is also the origin of millions of buggy-VBA stuffed Excel spreadsheets that are running tons of fortune 500 companies.

</comment></comment><comment><USER4> Fat chance. If the NYTimes had hired more engineers, those engineers would have told management they needed to innovate to survive, just like everyone else was telling them. And management still wouldn't have listened.

<comment> brown9-2 Don't you think every single employee at NYTimes Co knows that?

<comment><USER5> Not really. I believe there is still a big divide between the content providers and the content distributors. Most dinosaur publications are not innovating enough to keep up with new media. One reason why Bezos bought Wash Post.

</comment></comment></comment><comment><USER6> What a surprise: a media dinosaur dismissing new technologies before it was too late.

Also, how about appropriately titling the link instead of paraphrasing the opening line?

<comment><USER7> I hope you're not suggesting that "The newsonomics of "Little Data," data scientists, and conversion specialists" would be a better submission title...

<comment><USER8> In your face!

</comment></comment></comment><comment><USER9> They hired some very good ones. Jeremy Ashkenas (Backbone, Underscore, Coffeescript) and Sam Clay (NewsBlur, DocumentCloud) were both there.

</comment><comment><USER10> To be fair, the NYT did hire, among many other technical talents, both Jeremy Ashkenas (Backbone/CoffeeScript) and Mike Bostock (D3), who may not be engineers by training, but are at the forefront of web and interaction technology.

But the problem isn't just number and/or quality of engineers. It's about top- down leadership and mindsets that encourage and cultivate engineer-led innovation. Sure, some of Google's early employees invented some huge projects with their 20% time, but that's because that was an engineering company that geared itself towards such projects. Media companies were huge money makers in the 90s and early 2000s. The money that spawns massive startups today would've been pocket change for them back then.

<comment><USER11> Mike Bostock just finished his Ph.D. in Computer Science (in the School of Engineering) at Stanford, so I would argue he is the definition of an engineer by training.

Also note the article says that the NYTimes didn't hire enough "engineers and data scientists", which apparently got cut off in the title here.

</comment></comment><comment><USER12> I can think of several other news agencies - other than NYT - who still haven't taken analytics seriously. This could be a blueprint for how to build the case.</comment>


Ask HN: Is it common to run anti-malware on production linux boxes? - <AUTHOR> A few enterprise customers have started asking / requiring anti-malware on all "computing devices" and periodic scanning.<p>I haven't encountered the idea of anti-malware on e.g. Ubuntu before, and this seems like an absurd idea. However, it could just be my inexperience showing, so - is anti-malware a common practice? What are the industry-standard products for anti-malware? Is the footprint ever a concern? <comment><USER2> Yes, this is a silly upstairs corporate requirement on the part of your enterprise customers. Slap ClamAV ([http://www.clamav.net/](http://www.clamav.net/)) on it and call it good.

One place where this sort of thing can be useful is when running a file or mail server to help stop you from spreading malware to users, but to do it as a way to prevent infection on the box itself? Worthless.

<comment><USER3> I agree. But on development boxes in mixed Linux/Windows/OSX environments, it's prudent.

</comment></comment><comment><USER4> Having done some sysadmin for unix/linux, I haven't run into too many anti- malware programs for unix/linux or actual uses for them.

Kernel/userland hardening is a thing, however, and is arguably more effective.

<comment><USER5> > Kernel/userland hardening is a thing

[forgive me if I misunderstood the topic] If you're running a server, then you really should keep the Web side of things in an even more restricted zone than normal Users. I create extremely limited accounts for each domain or large App being hosted. Each such account can access only those resources it's supposed to be able to.

<comment><USER4> > [forgive me if I misunderstood the topic]

You didn't misunderstand at all! When I stated that, I mean two different things:

\- Kernel hardening

Kernel hardening is when you take the kernel and add patches/configure it to be more secure, like grsecurity.

\- Userland hardening This is when you do exactly what you're talking about: you restrict what the userland can do and configure _userland_ programs to be more secure (ie turning off insecure Apache options). This could also mean jailing or containerizing them.

</comment></comment></comment><comment><USER6> Ten years ago, I ran an email antivirus on a Linux box. Not for linux users (only root), and neither for the MacOSX users on the LAN, but for the people external to the organization who were sending MS-Word documents full of malware, that were forwarded back to them. Internally the viruses were ineffective, but it affected external correspondants, so we filtered them.

Nowadays, there are a few MacOSX and Linux malware, so it could be useful if you are a high visibility potential target, to have such filters.

</comment><comment><USER7> I run fail2ban on anything that can be reached from the Internet. I would most likely run a virus software if i would run mail servers or some kind of public file hosting, but i don't.</comment>