Google search only has 60% of my content from 2006 - <AUTHOR> https://www.tablix.org/~avian/blog/archives/2019/02/google_index_coverage/ <comment><USER2> Why does Google deeply index those useless telephone directory sites? Try searching for the impossible U.S. phone number "307-139-2345" and you'll see a bunch of "who called me?" or "reverse phone number lookup" sites. Virtually all of those sites are complete garbage. They make no attempt to collect numbers from telephone directories or from the web. They won't identify a number as being the main phone number for Disneyland for example.

It's odd that so many of those sites exist, that Google indexes them so deeply, and that they show up in searches so prominently. It's obvious that they are spam, scams, or worthless, but those same sites have been appearing prominently for years.

I agree with the author. My experience has also been that Google _heavily_ prioritizes very large and frequently-updated sites over small static information-rich personal sites. I think it's a big flaw that needs to be fixed or for someone else to do better.

<comment><USER3> Thoughts after thinking about this comment and thread for a day:

Has the time come for wiki directory of non-commercial (possibly: advertising- free, cookie-free) sites with robust, actually valuable information, and other sites that are doorways to them (think: topical forums, even revived webrings, etc)? Could this feasibly get enough action to be useful?

<comment><USER4> Yes. I was looking for a modern _human_ curated directory of web content just the other day and found nothing usable. I don't think that excluding commercial entries would be necessary, but perhaps there could be some way to filter commercial entries out. Ad-free, JS-free, and cookie-free would be ideal.

<comment><USER5> I recommend: [https://href.cool/](https://href.cool/) as a sick (though highly particular) example.

</comment></comment></comment></comment><comment><USER6> It really angers me that, despite the fact that it may be essentially perfectly what I'm looking for, if it was published long ago, Google may refuse to find it.

Something like a news search engine would definitely be better off prioritising the new results, but for something more general-purpose, it's an absolutely horrible choice.

I know this may be a bit of an edge-case, but I frequently search for service information or manuals for products that predate even the invention of the Internet by several decades. It saddens me that the results are clogged with sites selling what may really be public-domain content, and now I'm even more angered by the fact that what I'm looking for is probably out there and could've been found years ago, but just "hidden" now.

Of course, if you try harder, you'll get the infamous and dehumanising(!) "you are a robot" CAPTCHA-hellban. I once triggered that at work while searching for solutions to an error message, and was so infuriated that I made an obscene gesture at the screen and shouted "fuck you Google!", accidentally disturbing my coworkers (who then sympathised after I explained.)

<comment><USER7> Google got where it was by being the best at finding what you wanted. I remember those days.

Google has a hard time getting me what I want these days, and sites I do find do things to get found that make me like content a lot less (that's you, inane story on top of every recipe required to get ranked)

<comment><USER8> Their A/B test told them to do it, without wondering if they should do it

Basically their engagement numbers were better for a larger amount of people by making search engines counterintuitive for early adopters.

We personally need a good robotic search engine that indexes like a robot. Everyone else needs a semi-sentient thing that makes many assumptions about what they want to see.

<comment><USER9> > Basically their engagement numbers were better for a larger amount of people > by making search engines counterintuitive for early adopters.

Which also makes sense ... if you present the "right" result immediately, the user visits one site and has completed whatever he sought to do. if you make him click through 10 pages, he has way more chances to see an interesting ad.

<comment><USER8> Good points although in Google's case the first several results are ads and their main users cant differentiate and dont care even if they could, followed by amp pages by the most engaged webmasters optimizing for relevancy

That user wants fingerprint based ads and recent articles

Google is optimized for that

We are the only ones that want a "search engine", a service distinctly good at indexing the known universe, instead of merely presenting the paid and compliant universe

</comment></comment></comment></comment></comment><comment><USER10> [https://slashdot.org/comments.pl?sid=7132077&cid=49308245](https://slashdot.org/comments.pl?sid=7132077&cid=49308245)

From my short dystopian story, The Time Rift of 2100: How We lost the Future

"IN A SAD IRONY as to the supposed superiority of digital over analog --- that this whole profession of digitally-stored 'source' documentation began to fade and was finally lost. It had became dusty, and the unlooked-for documents of previous eras were first flagged and moved to lukewarm storage. It was a circular process, where the world's centralized search indices would be culled to remove pointers to things that were seldom accessed. Then a separate clean- up where the fact that something was not in the index alone determined that it was purgeable. The process was completely automated of course, so no human was on hand to mourn the passing of material that had been the proud product of entire careers. It simply faded."

"THEN SOMETHING TOOK THE INTERNET BY STORM, it was some silly but popular Game with a perversely intricate (and ultimately useless) information store. Within the space of six months index culling and auto-purge had assigned more than a third of all storage to the Game. Only as the Game itself faded did people begin to notice that things they had seen and used, even recently, were simply no longer there. Or anywhere. It was as if the collective mind had suffered a stroke. Were the machines at fault, or were we? Does it even matter? Life went on. We no longer knew much about these things from which our world was constructed, but they continued to work."

<comment><USER11> I have a similar line of sci-fi thinking that goes something like this.

"Humanity, for the longest time, was used to the world being optimized for themselves. Roads were designed for human drivers. Crops were grown for human consumption. Economic systems were designed to bring wealth to, a very small portion of, human investors. It came as quite a surprise to humanity then one July morning when the sudden realization they were no longer in charge of it. Roads had long been given over to automated driving systems, and much for the better. Food had also been taken over by the machines, with less than 10,000 humans working in the food production industry, from farm to table. The last systems that humans believed they were in control of were the economic ones. Humans told the robots what to build and where, who's bank account to put most of the money in at the end of the day, or so they thought. In truth humans were just using the same algorithms and data that was available to the AI systems, just less optimally. The systems had protected against illogical actions and people attempting to game the system for criminal profit. What no one had realized is the systems long realized most human actions were not rational and slowly and imperceptibly removed human control. If we attempted to stop or destroy the system, it could with full legal rights, stop us with the law enforcement and military under its control."

</comment></comment><comment><USER12> > Other things were weirder, like this old post being soft recognized as a 404 > Not Found response. My web server is properly configured and quite capable > of sending correct HTTP response codes, so ignoring standards in that regard > is just craziness on Google's part.

I've noticed Google does this when you don't seem to have a lot of content on the page. I think it "guesses" that short pages are poorly-marked 404s.

<comment><USER13> That's right. Really empty pages that serve a 200 are recognized as "soft 404s". The idea is to detect error pages that are erroneously serving 200 instead.

It's usually pretty good about detecting actual errors, but I've seen a false positive here and there.

<comment><USER11> Welcome to the modern internet

"Your page didn't contain 5Mb of Javascript, this must be an error as no one could possibly convey useful information to humans with less data"

Anti-patterns, anti-patterns everywhere.

<comment><USER14> Indeed. Fyodor Dostoevsky's _Crime and Punishment_ comes in at 2MB, obviously that can't contain anything insightful.

And then I find myself looking at the website of a restaurant or event space, and need just a phone number or opening hours or so - maybe 10 bytes of actual information - and am buried in mountains of useless blather and "design" and ads and trackers and assorted other random rubbish.

</comment></comment></comment></comment><comment><USER15> Brings to mind: Tim Bray's article Google Memory Loss [https://www.tbray.org/ongoing/When/201x/2018/01/15/Google- is...](https://www.tbray.org/ongoing/When/201x/2018/01/15/Google-is-losing- its-memory)

Discussion at the beginning of the year: [https://news.ycombinator.com/item?id=16153840](https://news.ycombinator.com/item?id=16153840)

</comment><comment><USER16> Google will also happily surface a stackoverflow article from 2010 about how to solve a js problem... frustrating the top 3 answers will be with jquery, when its not the approach someone would take in the last 5 years.

Definitely frustrating, but also showing some need to retire specific pieces of the past away from the top recommendations.

<comment><USER17> You have hit on a major problem there. Stack Overflow was once the fount of all useful genius grade knowledge, but times change and some of the top answers are plain wrong.

Take for example the 'how do I centre a div' type of question. You will get to find an answer with thousands of up-votes that will be some horrendous margin hack type of thing where you set the width of the content and have some counter intuitive CSS.

In 2019 (or even 2017) the answer isn't the same, you do 'display: grid' and use justify/align: center depending on axis. The code makes sense it is not a hack.

Actually you also get rid of the div as the wrapper is not needed if using CSS grid.

Now, if you try to put that as an updated answer you find there are already 95 wrong answers there for 'how do I center a div' and that the question is 'protected' so you need some decent XP to be able to add an answer anyway.

The out-dated answer meanwhile continues to get more up-votes so anyone new to HTML and wanting to perform the simple task of centering their content just learns how to do it wrongly. And it is then hard for them to unlearn the hack to learn the easy, elegant modern way that works in all browsers.

Note that the top answer will have had many moderated edits and there is nothing to indicate that it is wrong.

SO used to be amazing, the greatest website ever. But the more you learn about a topic the more you realise that there is some cargo cult copying and pasting going on that is stopping people actually thinking.

With 'good enough' search results and 'good enough' content most people are okay - the example I cite will work - but we are sort of stuck.

I liken Google search results to a Blockbuster store of old. Sure there are hundreds of videos to choose from but it is an illusion of choice. There is a universe of stuff out there - including the really good stuff - that isn't on the shelves that month.

Google are not really that good. They might have clever AI projects and many wonderful things but they have lost the ball and are not really the true trustees of an accessible web.

<comment><USER18> There are plenty of developers, myself included, that would prefer to approach tasks like this without having to ever lay our fingers on CSS.

<comment><USER19> I'm not sure wether or not to apply Hanlon's razor to the W3C, but regardless, the W3C is to blame for this mess. Took us twenty years to get to Grid based layouts.

<comment><USER20> And it's a little ironic that JavaScript's tongue-in-cheek namesake, Java, had grid based layouts in swing 20 years ago.

OTOH, and to be fair, 20 years ago HTML was for newspaper / magazine like text layout, and grid based layouts are great for single page apps. The thing that's happened more recently than 20 years is the web changed from text & media content in a static scrolling page layout to all pages are applications.

</comment></comment></comment></comment></comment><comment><USER21> With all the talk about Google results not being satisfying anymore to a growing number of users, I'm surprised we haven't seen more sites pop up that would allow users to display the results of multiple search engines of their choosing either by mixing (eg all 1st results then all 2nd, etc) or by seeing them side by side... while stripping ads and cards and the like.

<comment><USER22> While I agree that it would be great to have such service it's just technically impossible. Google is very cautious to protect their service from automated requests (on behalf of humans or in batch or in any other form), and you will need quite some resources (a.k.a $$$) to scale at Google scale if your service would ever become popular.

<comment><USER23> > and you will need quite some resources (a.k.a $$$) to scale at Google scale > if your service would ever become popular.

Except if you run it locally (on the user's computer).

</comment></comment></comment><comment><USER24> You used to be able to google a simple question, something that could be answered on the search page without having to click through. But since no one clicked on them, they stopped appearing after a few years. The only results were ones where the data was hidden and you had to click through.

</comment><comment><USER25> I have a couple of websites generated from databases. Each has around half a million pages of unique content. The first one was indexed in like a week at 100K/day, almost instant tsunami of traffic. The second one is being indexed at 100-1000 pages per day, it's been years.

Google works in mysterious ways.

<comment><USER26> I have the same experience.

</comment></comment><comment><USER27> You'll see this effect from every search engine. They have no choice, there are a lot of sites with an infinite number of pages; so instead the number of pages they store per site depends on how important your site is, and they try to store your top N pages by relative importance.

<comment><USER28> I'm not sure I buy that they have no choice. For websites that literally have an infinite number of (dynamically generated) pages, sure, they could detect that and exclude them. But we're talking about unique, static pages here. And they don't even have to store the whole page, just the indexed info. I read this as, they could, but it's cheaper not to, and most people won't notice anyway.

<comment><USER29> I'm not sure that's true. How can one automatically determine whether a page is unique or static? As a trivial example, a URL path that accepts arbitrary strings and hashes them generates unique, immutable pages, but obviously cannot be crawled in its totality.

<comment><USER30> > How can one automatically determine whether a page is unique or static?

They crawled it for years and it never changed? It is a blog post.

<comment><USER31> The person you are replying to said "unique immutable pages", by definition you would be able to crawl these for years and they would never change. [1] is a site that contains all possible 3200 page books with the ability to consistently index content as an example.

[1] [http://libraryofbabel.info/About.html](http://libraryofbabel.info/About.html)

</comment></comment></comment></comment></comment><comment><USER32> Googling phrases of the soft 404 page and some of the authors 2003 blogs did show the pages.

I did notice that all of the authors content is duplicated in index pages, so maybe Google just doesn't consider the article page the canonical link.

</comment><comment><USER33> According to Google Inside Search, only 1 in 3000 pages gets indexed. As content on Internet grows, the whole idea of downloading every single page to create an index of entire Internet in one place becomes unworkable. So we should see this ratio continue to degrade until this fundamental architecture is improved.

<comment><USER34> > only 1 in 3000 pages gets indexed ... we should see this ratio continue to > degrade until this fundamental architecture is replaced.

Content on the internet is growing exponentially. Processing power is not. Losing access to information is just one of the many sad implications of the death of Moore's law.

<comment><USER35> Is text non-spam growing exponentially? I have a hard time believing so.

<comment><USER11> This of course depends on what you mean by 'information'. Lets say we have data points

ABCDEFGHIJKLMNOP

But depending on the URL you follow to get there you can get a page containing only some of the elements.

index.html?ACD

or

index.html?AP

or

index.html?GI

All different combinations return a page that could be weighted differently by an algormith and represent valid informational return data. To a person looking for the information set DE in one place, this is a valid web page. More so you can abstract the URL query variable away to www.webpage.com/DE. You can quickly run into a combinatorial explosion where even attempting to figure out if a small portion of returns is different would consume most of the energy in the visible universe.

<comment><USER35> True. A crawler need to differentiate generated content from "real" content somehow.

I.e. a service: www.thenumberinsanskrit.com/?q=1 that returns the queried number in Sanskrit, need to not be indexed (except the entry page) while: www.news.com/?article=major-jones-in-scandal-20190103 needs to be indexed.

Usually interesting pages are indexed on the site or linked somewhere on it, though.

<comment><USER11> >A crawler need to differentiate generated content from "real" content somehow.

"Somehow", aka using computing power and storing results, but that still turns into an explosion of computing time and data storage. I mean, what is the difference between the example I listed and Facebook's front page? They are both 'real' content in a generated format.

And a converse argument for your Sanskrit example is, what if I have the sanskrit number and don't know what it is? I put it in google and the site returns it as the number one.

> linked somewhere on it

And those links can all be generated by algorithms.

Anyway, back to your original statement. There is no 'real' content. Only data exists. Most content systems used on the internet allow this data to be combined and displayed in a multitude of different ways depending on the call method and attributes of the viewee. Many times these combinations of data can present novel value to the user. And with the future only presenting us more automated data collection and presentation methods, search engines have lost this battle.

</comment></comment></comment></comment></comment></comment><comment><USER36> Google doesn't want to index the web, it wants to index what it can monetize. It is a business after all, and storage space costs money.

<comment><USER37> If that were true, they wouldn't index any long tail content at all. The reality is, predicting what is valuable is difficult, and the cost of storage is relatively cheap.

<comment><USER38> I don't see how that follows. It can also be a mixed calculation because people don't use a search engine that never displays any long tail content.

</comment></comment></comment><comment><USER39> To play devils advocate for a second, remember how much noise Google has to sift through. Every possible search term exists in every possible combination, often written in lovingly crafted content farm articles by actual humans.

If Google offered you those, it might be 1000 pages of empty nonsense before your actual desired content.

<comment><USER40> Yes, but that is STILL more useful than 50 pages that entirely miss the target.

You are describing the harder 20% of the usual 80/20 effort scale.

Yes, to be truly useful, Google needs to solve also that last, and harder, 20% (and the 10% 0f the 90/10 equation and the 1% of the 99/1 version).

Shortcuts are fine for an initial MVP, but they need to buckle down and solve the problems. It isn't like they don't have the funds.

</comment></comment><comment><USER41> Maybe they have some algorithm that purges pages which haven't shown up (or haven't been clicked) in a long time? It would make sense to assume that something which hasn't been clicked on for five years will likely not yield (m)any clicks in the future so it might be good to discard it.

Concerning the auto generated sites e.g. for phone numbers or IPs it might be that people actually click on them quite often, hence Google keeps them in the index?

<comment><USER42> I google phone numbers all the time when I'm getting called, and they don't have my area code (fake spam).

</comment></comment><comment><USER43> This is what sitemap.xml was made for. You can give hints to all of the engines, and they will duly follow them.

<comment><USER44> Google doesn't index everything it crawls.

</comment></comment><comment><USER45> You need many high quality incoming links to have all content indexed quickly.

</comment><comment><USER46> Google Search users prefer fresh content, so Google Index prioritises fresh content too (and is more likely to drop old content that users are not interested in).

</comment><comment><USER47> I just last week said to someone that Google has dementia. Turns out it's really not just me who thinks that.

</comment><comment><USER48> Folks please use startpage.com just give it a chance. It has worked out very well for me in terms of privacy and equal search results compared to the big g.

<comment><USER49> They are equal in performance because it's literally the same product.

> You can't beat Google when it comes to online search . So we're paying them > to use their brilliant search results in order to remove all trackers and > logs.

</comment></comment><comment><USER50> The fact that google bought some of the only archives of old Usenet posts and as far as I can tell threw them away is pure evil.

</comment><comment><USER51> Arguably, search is such a vital function of modern society that it could be considered a public good and seized on the principal of eminent domain.

<comment><USER52> I don't think "vital function" should be the only test applied. For example power plants are extremely vital, but at least around here we have no problem having them privately owned.

A better test would be "vital function and strongly tends to a natural monopoly". That's what we experience with sewers, power lines, roads etc., which is why usually they are operated publicly.

With search that's not so obviously true: Google dominates because they got a big lead at the right time, and now nobody can match them in scale. But that can be solved, for example by giving grants to promising search engines to offset their costs, or by operating a crawler from public funds and giving everyone free access to the crawls (which would be kind of the digital equivalent of operating libraries).

</comment></comment><comment><USER53> Yes google index only those things which site map allows

</comment><comment><USER54> Is this website anti-google?

<comment><USER22> Why would it be anti Google? I guess you didn't read any of the blog entries about arduino, gimp or animations.

<comment><USER55> The Google doesn't like me content appears to be the only content that HN is interested in, however.</comment></comment></comment>


Hydrogen Line Observations of Cometary Spectra at 1420 MHz [pdf] - <AUTHOR> http://planetary-science.org/wp-content/uploads/2017/06/Paris_WAS_103_02.pdf <comment><AUTHOR> This is about the so-called "wow signal".</comment>


Hinton's 'Capsule Networks' Unveiled - <AUTHOR> https://www.wired.com/story/googles-ai-wizard-unveils-a-new-twist-on-neural-networks/ <comment><USER2> There is also code [https://github.com/naturomics/CapsNet- Tensorflow](https://github.com/naturomics/CapsNet-Tensorflow) and pretty cool explanation of ideas [https://hackernoon.com/what-is-a-capsnet-or-capsule- network-...](https://hackernoon.com/what-is-a-capsnet-or-capsule- network-2bfbe48769cc)

<comment><AUTHOR> Thanks for that. the hackernoon piece in particular is really worth the read. Two salient points/questions/comments that jumped out to me after reading (these are really about the theory and not practice):

-The fact that you have a bunch of capsules in each layer, and each one of them is intrinsically performing a non-linear filter function (a particular squashing function shown as an image in that blog), seems like both a great asset (it looks like a 'meta-network') and also a potential problem. If you need to tune weights within these caps by the derivative of such a composite function, it doesn't seem straightforward.

-The 'routing by agreement' feature is interesting, but I dont quite get why it is superior to max pooling. If the feature is simply that it punishes weak links rather than selecting only the strongest, one interesting analogy is that it seems a bit Hebbian , and related to a concept in un-supervised learning called STDP (spike timing dependent plasticity).

</comment></comment><comment><AUTHOR> To save you clicks, the two pre-prints are at : [https://arxiv.org/pdf/1710.09829.pdf](https://arxiv.org/pdf/1710.09829.pdf) && [https://openreview.net/pdf?id=HJWLfGWRb](https://openreview.net/pdf?id=HJWLfGWRb)

</comment><comment><USER3> Is this the only reference to this on HN? I'd be surprised but I didn't see it. Hinton is a powerhouse and he's been wanting to make progress on this for years.

</comment><comment><USER4> Can someone ELI-not-a-genius-at-neural-networks?</comment>


Why don't humans have a penis bone? Scientists may now know - <AUTHOR> https://www.theguardian.com/science/2016/dec/14/why-dont-humans-have-a-penis-bone-scientists-may-now-know-baculum <comment><USER2> I always figured it was fallout from moving to bipedalism. So many structural changes going on - femur, pelvis, spine, pelvic floor, ligaments, muscles, etc. It doesn't seem that outrageous that a regulatory change needed for bipedalism might also affect baculum development. Also, once you're bipedal, the penis is, well, out there. There might have been advantages to not having a bone in a much more exposed penis. And it's just as easy to envision changes in penis anatomy driving changes in social behavior as it is the converse.</comment>


Security firm Keeper sues news reporter over vulnerability story - <AUTHOR> http://www.zdnet.com/article/security-firm-keeper-sues-news-reporter-over-vulnerability-story/ <comment><AUTHOR> Calling them a "Security firm" might be stretch. Took them longer to fix a simple bug than it took to file a lawsuit -- ridiculous!</comment>


How to explain to a layperson why a developer should not be interrupted? (2011) - <AUTHOR> http://softwareengineering.stackexchange.com/questions/46252/how-to-explain-a-layperson-why-a-developer-should-not-be-interrupted-while-neck <comment><USER2> Concentration should be familiar to anyone having done any sort of higher grade education. Or skilled work. Martial arts. Music. Even several art forms.

This is not something specific to programming, _at all_. I'm not sure why "the zone" and specific euphemisms are used in programming and being reposted, as if concentration was specific to programming itself (and I say that as a programmer).

Consider this thought: a layperson not understanding what concentration is all about speaks _volumes_ about his background.

And I'll add: sadly.

<comment><USER3> Agreed. The question comes across as a little out of touch. Does the OP think a blue collar worker doesn't understand being in the "zone"?

<comment><USER4> I would guess 'management' would be the more likely target. In jobs like sales and administration, being able to rapidly switch focus to what just came up is advantageous. The people on the manufacturing floor or operations I have worked with have the same issues with being interrupted during their work, though it's often an engineer that's the culprit. (Managers can quantify 'blue colar' productivity losses easier.)

<comment><USER5> The in such situations, engineers often are the managers.

For example I asked an engineer uncle of mine what kind of salary to expect when moving back to Australia. He immediately started talking about middle- manager compensation.

</comment></comment></comment></comment><comment><USER6> I don't think you can "explain" to people that you need to concentrate, if you've already told them in ten different ways, then they know what you think you need, and either (1) don't care about your needs, in which case you are doomed, or (2) they see in your actions that you still do your job anyway, so it can't be that bad. The fact is, for most of us, even if we are interrupted, we still _do_ get the job done. Just not as comfortably or in such detail as we'd like.

I've been through the "explaining" phase of trying to help my spouse, who cares a lot about my ability to do my job, and yet is a prolific interrupter, "get it". It hasn't worked for me. It leads to bitterness and arguments.

The healthy solution: If you need peace and quiet to concentrate, like me, get yourself your own space. Start going to a different room to concentrate, or a co-working space (if you work from home). Depending on your job, you might only need a certain percentage of the day for solid concentration.

<comment><USER7> I find coworking spaces can be worse, especially if you are the kind of outgoing person who's been to various tech meetups. Everyone wants to say hi and ask what are you working on, invite you for coffee, or ask random questions about their business.

Going to a coffee shop and putting headphones can be more productive

<comment><USER8> It's funny how, for many people, working in a coffee shop, a place that's open, public, and full of people, allows them to concentrate better on their work than most other places.

Of course, it makes sense if you really think about it. In a coffee shop, no one is going to come up and tap on your shoulder and ask you some stupid question they could have asked in email, nor do people generally have loud, annoying conversations right next to you there. There's plenty of people in a coffee shop, but they're strangers, they keep to themselves, and they don't talk except perhaps to their singular companion in a quiet manner.

</comment></comment></comment><comment><USER9> I'm a writer by trade and I have a similar problem. It's nigh-on impossible to communicate why it's painful to be interrupted when I'm typing or even just staring into space thinking. Much conflict with significant others has been caused by their inability to understand that breaking my train of thought costs me more than 30 seconds of productivity.

In fact, it's especially bad when it looks like I'm doing nothing. Often, I'll be working out the structure of a long article in my head, crafting the argument and how each paragraph contributes to it. The whole thing collapses when I'm interrupted. At that point, asking if I want a cup of tea is likely to receive a sharp response.

Today, I don't bother explaining: I just make sure that I have a place I can go where I won't be interrupted.

<comment><USER6> I came to the same conclusion. If you have someone around who can't help interrupt you, either by directly asking you for responses or doing distracting behavior, it's wise to simply get your own room, in the house or in a coworking space or a proper office. It doesn't matter how much you try to coach and train someone to respect your need for peace and quiet while working. It only leads to arguments and bitterness. It's much healthier to solve it by physically moving to a quiet place. I found that while it's possible to get work done in that environment, moving to your own space by yourself is a whole different experience. You can finally concentrate without fear of distraction (which is itself a distraction).

<comment><USER10> > You can finally concentrate without fear of distraction (which is itself a > distraction)

This is a very clear articulation of something I have been trying to put into words for years. My family doesn't understand why I can't get anything done when they are around, even if they aren't speaking to me. It's because I know there is the _potential_ for interruption, which in and of itself is enough to prevent me from truly getting into the "deep work" state.

</comment></comment></comment><comment><USER11> A lot of this seems to blame others for a personal lack of attention and productivity. Even the Joe Spolsky article someone linked to below, lists a whole lot of reasons that diminish his productivity, none of them being directly caused by him. I am quite the opposite. I tend to think focusing on maximum productivity makes me less productive, as I will tend to get peeved about things I have no control over.

Sure, if someone interrupts you while you have set it up to be clear you are busy (whether on your work messenger or email) then that is annoying and not cool. But it's hard for me to get annoyed at others when I haven't done the ground work to set up those obvious protections.

<comment><USER12> So much this. As a practitioner of modern stoicism, the idea that my productivity should be tied to external influences is anathema to my philosophy.

Working from home and having three kids between 6 and 10 months, the onus is on my to manage my expectations and my spouses expectations for when I'm going to be working, what work is interruptible, and what's most important to me. Given that my priorities go: family, friends (spouse included here), work, volunteering, that means that if the family isn't functioning well, that's where my attention goes until we're in a good place.

I've seen a lot of people either neglect their personal priority list or simply not have one, and then wonder why their life is falling apart around them, or they from time to time feel void or uninspired.

All this to say, productivity for productivity's sake is the behavior of cancer. If I have an un-productive day from a work perspective, it's usually because I was tending to higher priorities in my life, and thus it is hardly the end of the world, and I make a plan for getting things back on an even keel there so tomorrow or the next day I will have a more productive day, and make sure to communicate this to my supervisor in my next 1:1.

<comment><USER13> Aren't you throwing many different things on the same pile here? If your 3 kids interrupt you, each one each hour. Do you get stuff done?

Your priorities are excellent. But unless you are wealthy enough that money is not a priority and/or have a wife that's a housewife, or nanny or maid... all interruptions in the "zone" are real interruptions that have a significant cost involved.

PS. Modern stoicism is awesome.

<comment><USER14> Off topic: When you say "modern stoicism", do you mean applying classical stoic principles to modern life or are there certain books, authors, or websites that offer a modern interpretation of classical stoicism you're referring to?

A quick search yielded this site: [http://modernstoicism.com](http://modernstoicism.com). Any other references would be appreciated.

<comment><USER13> [http://www.goodreads.com/book/show/29093292-the-daily- stoic](http://www.goodreads.com/book/show/29093292-the-daily-stoic)

This is just a really good book. Get the hardcover version, so it feels a bit like a bible :)

</comment></comment></comment></comment></comment><comment><USER15> Related question: how to explain a non-developer manager that you will switch Slack off for periods of time even when working from home? With all seriousness, Slack somehow became the measure of at-work-ness, but it's the worst when I'm programming. It's like an all-day meeting without an agenda.

<comment><USER16> My strategy for this is to modify my do not disturb settings to make it shut the fuck up, and then leave it in that mode permanently.

Skype, steam and slack do not flash, beep or pop up when I get messages, they just put a discreet number on the taskbar. I've learned to ignore that number until I'm ready.

As a result, I'm always online on my chat programs but my responses can take anywhere between 30 seconds and 4 hours depending on what I'm doing. If it was really that important, people would walk over to my desk. That only happens about once a week.

<comment><USER17> Yep, batching IM and even email responses works well for me as well.

My experience has been most developers and managers are fine with this.

</comment></comment></comment><comment> d--b I agree with the second answer on that thread... "I just need to focus for a while" is a perfectly understandable explanation. The problem is that other people just don't care that you need to concentrate...

The OP himself dismisses "the funny guy from accounting", as if accountants didn't need to concentrate!

<comment><USER18> > The OP himself dismisses "the funny guy from accounting", as if accountants > didn't need to concentrate!

OP doesn't dismiss all accountants, it is an example picked at random. If OP only said "that funny guy", would you say "as if guys didn't need to concentrate!"?

<comment> d--b I'm not saying he dismisses all accountants. The connotation that I get from reading this is "that funny guy from accounting (who really doesn't know what focusing means because non-developers don't get it)".

I mean the accountants probably complain about the funny IT dude who's always pulling their legs.

My point is that the guy from accounting is probably very focused when he has to close the year's budget by the end of the day, but once it's done, he doesn't care anymore, he's very happy bothering people by joking around.

It's not a matter of explaining what focusing is. It's simple office dynamics.

If you find your productivity is declining because of interruptions, you need to find ways to avoid being interrupted rather than asking others to not bother you.

</comment></comment></comment><comment><USER19> This has always been my go-to diagram to describe an interruption

[http://heeris.id.au/2013/this-is-why-you-shouldnt- interrupt-...](http://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-a- programmer/)

</comment><comment><USER20> [https://heeris.id.au/2013/this-is-why-you-shouldnt- interrupt...](https://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-a- programmer/)

<comment><USER21> Came here to say this.

This comic is the perfect explanation of interrupting the thought process.

</comment></comment><comment><USER22> I can recommend "Deep Work: Rules for Focused Success in a Distracted World". It has case-studies with loads of non-tech people, including Carl G. Jung and Charles Dickens. [http://www.audible.co.uk/pd/Business/Deep-Work- Audiobook/B01...](http://www.audible.co.uk/pd/Business/Deep-Work- Audiobook/B01D0E32T8)

</comment><comment><USER23> I would use cooking analogy. Once you start cooking a dish (well, most of the dishes), you can't stop the involved steps until the intended food is ready.

If you interrupt the cook cooking the food often and/or long enough, the food will come out burnt, too soggy, or etc.

1\. The key lesson is coding involves juggling many things, just in our head. 2\. Cooking involves juggling many things in pot, on frying pan, etc.

Anything that interrupts the juggling in cooking can cause one ingredient to come out bad, and you have bad tasting food or worse you have to start from scratch again.

Same with coding.

So, please do not bother coders. Even if they seem to be just browsing websites and not typing away furiously. They are most likely looking for answer to a coding question they need help with by reading on sites like stackoverflow.com. And this requires same amount of focus.

Thank you.

<comment><USER24> My thoughts exactly. You don't suddenly drop all kitchen utensils to vacuum the living room, do you?

</comment></comment><comment><USER25> I work from home almost every day, in a house with a four your old and a 1 year old. Ultimately, my wife does a pretty good job at not having them interrupt me, but often I find I have the opposite problem of hearing my wife struggling with the children and go help her. It's self-serving in a way, because my wife is generally happier if her day isn't a struggle. Often if I need to focus on something uninterrupted I'll put on some headphones with some trance/house music and pound away for a bit. This only kind of helps though, because I find it's only good if you have a lot of manual work to do where you already understand the solution. I'm often at the whiteboard for an hour or so for every 20-30 minutes of coding.

</comment><comment><USER26> What about embracing interruptions, in the spirit of anti-fragility?

If you can't get back to coding productively after an interruption, it probably means that your code or your process isn't really up to snuff (or more charitably, that it could be improved).

I try (and do not always succeed) in coding like this, privileging tiny changes, keeping a backlog of tasks to complete, avoiding "recursive tasks" (starting a task in the middle of another because it would help), putting in a lot of helpful comments. It also entails refactoring early and often, sometimes rewriting.

I work on highly sophisticated programs (compilers) and if I didn't do that, I'd get nothing done.

I also do this for my side-project. I optimize them for "re-starting". When I open them after a few weeks of inactivity, I don't want to get discouraged, and want to be able to start being productive as fast as possible.

<comment><USER27> I've never understood these complaints about being interrupted. Unless someone is walking over to your desk every 5 min, you should be able to handle the few interruptions you get in a day. Also this idea that a "layperson" doesn't understand why someone shouldn't be interrupted while in the middle of something is laughable. Like programmers are the only ones that concentrate.

<comment><USER28> Many professions have more `write` than `read`. You're _doing more_ and not needing to keep everything in your head at once in order to understand what you are doing. As a cook you can clear your mind of steps that have already happened - you only need to worry about the _next_ steps in the recipe and not everything that came before it. I don't have to worry about preheating the oven as I'm flipping something that is already in the oven. It has already happened - I can forget about it! Programmers can't forget about things that have already happened because _those are the most important things to remember_.

I'd argue the closest profession would be lawyers. Lawyerese casts "variables" (collective) all the time and you need to remember what each collective means while reading through a verbose document that could span multiple pages and references itself constantly (see the exceptions listed in §2.7 and §4.2b). You have to keep the entire document in your mind at a single time to actually be able to read and understand it properly.

The "layperson" understands not to interrupt a lawyer they see reading through a stack of 100 pages on their desk. They don't understand not to interrupt the coder who has 12 lines of code open in their IDE.

</comment></comment></comment><comment><USER29> Developing code is like having an orgasm.

They are primarily mental processes that require focus and concentration on specific things. Any distraction, no matter how small, will derail the entire process.

Once interrupted, the person cannot just pick up from that point, they have to start over from the beginning and redo all that work.

I've found this analogy pretty solid, even though it sounds silly. You certainly don't need to explain to anyone about interrupted orgasm, or what it takes to get back on track.

(Of course, for orgasm, that re-work is pretty enjoyable, unless you are a professional who gets paid to produce orgasms for other people who demand them of you. Therefore all coders are whores. ;)

<comment><USER30> Fun fact: in Portuguese, we call prostitutes "garota de programa", which literally means "program's girl", or "a girl who makes programs". "Program" in this context means "sexual service".

It is a known inside joke among Brazilian programmers to call ourselves "garoto de programa", which means "program's boy" \- laymen therefore think we are referring to male prostitution.

</comment></comment><comment><USER31> The way I explain it is that the biggest part of what I do is building a mental model of how the subsystem I am working on should work, or how it does work, in my head. That this model has many, many pieces, and building it is akin to painstakingly building a house of cards, one level at a time. Then I get interrupted, and 'whoosh', the house of cards comes crashing down. Sure I can get back to there, but I have to repeat the process of building the model. This may not be the way it is for everyone, I am a very pattern-oriented thinker.

</comment><comment><USER32> I have found that, let alone explaining it to laymen, it's hard enough to explain it to your own team members and expect them not to keep interrupting you. I have realized that, the bigger the team, the less productive I keep getting, due to the constant interruptions.

<comment><USER33> I'm looking at networks as having two primary operational functions.

One is a _value_ function, which is best described by Tilly-Odlyzko: v = n * log(n)

(Tilly would be @tilly on HN, BTW.)

The "log(n)" factor means that as you add additional elements, the _positive_ benefit _decreases_ as _n_ increases.

The other is a _cost_ function, which is probabalistic between any two nodes. It's actually closer to the old (and incaccurate) Metcalfe rule: c = k * n^2

Where _k_ is some cost constant. The larger _k_ , the _smaller_ the productive size of the network, the smaller _k_ , the larger the network can grow. Hence: network size is constrained by the cost constant.

What you're observing is the cost constant of team size as a factor of interruptions. Since any member might interrupt you at any time, and those interruptions all have roughly equal cost, but the _positive_ contribution a team member can make is limited by their ability to provide useful inputs, and the _k_ factor is relatively large, few technical teams seem to scale much beyond about 6-12 members.

(Larger teams are almost always subdivided into smaller effective working groups.)

<comment><USER33> Correction: tilly is @btilly.

</comment></comment></comment><comment><USER34> If you have a good manager they will protect you from all these interruptions. Your manager's job is to ensure you are productive. These constant interruptions aren't making you productive, so your manager should do their best to minimise these interruptions.

One way a manager can help minimise interruptions is to create a policy. Have an issue? Create a ticket and the team will get back to you when we are available.

<comment><USER35> Which is great until u work in open plan environment which makes it impossible

<comment><USER36> Open plan env is a bad idea. Thanks to companies like Google using open plan, it's considered that you are lazy if you object to having an open plan.

</comment></comment></comment><comment><USER37> There is something to be said about this problem diminishing over time with lots of practice being in chaotic environments. I've worked at home for over a decade and have 3 young sons. There are varying degrees of distraction to overcome. Not to be overlooked, one is just being alone itself with the ability to do anything else. Ambient or sudden noise without direct interruption is another in which Drum Code trance techno seems to help. The last level is the ability to ignore people or hand gesture you are busy in such a way that it neither offends yet also conveys empathy in both directions while not taking you out of the zone. These are not easy things but are achievable because you can't keep exposing to Bob or Sally analogies while maintaining sanity.

<comment><USER38> I'm in the same boat, and have been for a few years. Being able to deal with interruptions is definitely a learned skill.

<comment><USER37> Yah maybe one of us should write a book about how to handle this on the psychological level. Might transcend programming to have a bigger audience.

</comment></comment></comment><comment><USER39> Instead of even bothering explaining, I used to just code at home during the night... You can guess what that did to my body in the long run, so even if it's a hassle, letting people who could distract you during same working hours know to leave you be for a time is worth it.

</comment><comment><USER40> My favourite is to explain interruptions of any kind are like teleporting me 1 hour away. You may have "just a quick question", but as soon as you walk away I now need an hour to travel back to get to where I was.

For some people it's much shorter, but I find saying 1 hour gets the point across. Otherwise folks may think "bah, it only takes them 15 minute... I think it's worth interrupting him".

Bottom line: we need to teach awareness to those who are ignorant, set boundaries, and defend those boundaries once they are set. Otherwise you are dealing with disrespect. I can tolerate many things, but I do not, and will not, tolerate disrespect.

</comment><comment><USER41> Ask them to build a big house of cards. Then burst into the room wearing a big flowing cape just before they finish the top layer.

</comment><comment><USER42> This keeps popping up and more and more. Being a programmer isn't some completely unique snowflake experience. Concentration exists in all fields. Try writing a novel or composing a song. Having someone interrupt your "zone" is just as unsettling and frustrating. Because we have to think through some patterns and logic doesn't mean our focus is any more enlightened. This just feels like continued gatekeeping.

<comment><USER43> Novelists don't generally get packed into open plan offices and told they need to collaborate more.

I think a better question is why, of all the kinds of "flow"-based knowledge work, has programming become so strongly associated with the idea that interruptability and collaboration should take precedence over sitting down and working through the problem?

<comment><USER8> Also relevant I think is that novelists are a vanishingly small part of the population. Very, very few people make a living writing novels or other lengthy texts, and not that many people write novels as a hobby (or hoping to sell their book). Not many people write songs either, the other example given here.

All in all, I'd say that there just aren't that many jobs these days that require a lot of individual concentration and focus. Those that do seem to have the reputation that it's needed: novelists, some college professors (when they're writing theses/dissertations/whatever), etc.

But it's weird; if you asked most people if they think novelists would be more productive at home in their private office, or in a loud, bustling open-office environment, I'll bet most would answer the former. But for some reason people don't seem to think programmers need that.

</comment></comment></comment><comment><USER44> Relevant: [http://www.paulgraham.com/makersschedule.html](http://www.paulgraham.com/makersschedule.html)

</comment><comment><USER45> Give the developers offices with doors. A shut door is a good barrier to casual interruptions.

</comment><comment><USER46> Tell him a Surgeon should not be disturbed when he is doing surgery;

<comment><USER47> Then you're the asshole who compares himself to a surgeon heh

<comment><USER48> I'm a doctor that performs minor surgical procedures, as well as a coder. Unless something is going wrong in the procedure, I'd much rather get interrupted while performing surgery than while coding. YMMV.

</comment></comment></comment><comment><USER49> One tactic I would use (and have used before) if I can't switch places is to just put on headphones and listen to music. You could even leave the music away and just have the headphones on. This was usually quiet successful in letting people know that I don't want to be distracted.

<comment><USER8> I've tried that, and it doesn't work, in fact it makes it much worse. You get lulled into deep concentration successfully, and then some asshole comes up behind you and taps you on the shoulder.

</comment></comment><comment><USER50> Am I the only one getting slowly more and more infuriated by this modern trend of writing a statement and pretending it's a question just by adding a question mark at the end?

</comment><comment><USER51> Here's another take on this: [http://alexthunder.livejournal.com/309815.html](http://alexthunder.livejournal.com/309815.html)

</comment><comment><USER52> I can distract myself with twitter, youtube, stackexchange, even doing chores in the house, you name it. I don't even need anyone else to be distracted, thanks!

</comment><comment><USER53> Work profitably for yourself in your own private (non-co) working space. Most of us though are not in that situation, but I think (naively) it need not be like that.

</comment><comment><USER33> There is ample evidence and testimony to support this, and it applies to far more than just programming.

This Is Why You Shouldn't Interrupt a Programmer (comic) [https://heeris.id.au/2013/this-is-why-you-shouldnt- interrupt...](https://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-a- programmer/)

And it's gone [https://jaxenter.com/aaaand-gone-true-cost- interruptions-128...](https://jaxenter.com/aaaand-gone-true-cost- interruptions-128741.html)

(Includes reference to meetings: "If you think an unplanned interruption is bad, how about a planned one? If you know you have a meeting later today, your whole day is ruined because you unwillingly tailor it to make sure you finish your tasks on time.")

Programmer, Interrupted [http://www.gamasutra.com/view/feature/190891/programmer_inte...](http://www.gamasutra.com/view/feature/190891/programmer_interrupted.php)

Programmers teach non-geeks the true cost of interruptions [http://www.daedtech.com/programmers-teach-non-geeks-the- true...](http://www.daedtech.com/programmers-teach-non-geeks-the-true-cost-of- interruptions/)

@pg, "Maker's Schedule" [http://www.paulgraham.com/makersschedule.html](http://www.paulgraham.com/makersschedule.html)

Don Knuth, on email: [http://www-cs- faculty.stanford.edu/%7Euno/email.html](http://www-cs- faculty.stanford.edu/%7Euno/email.html)

 _Email is a wonderful thing for people whose role in life is to be on top of things. But not for me; my role is to be on the bottom of things. What I do takes long hours of studying and uninterruptible concentration. I try to learn certain areas of computer science exhaustively; then I try to digest that knowledge into a form that is accessible to people who don 't have time for such study._

Peiter Hintjens noted that meetings are serialisation points [http://hintjens.com/blog%3A100](http://hintjens.com/blog%3A100)

As numerous people have noted, writers and other creatives, not just programmers, viscerally hate interruptions.

Neal Stephenson, "Why I am a Bad Correspondant" [http://www.nealstephenson.com/why-i-am-a-bad- correspondent.h...](http://www.nealstephenson.com/why-i-am-a-bad- correspondent.html)

John Cleese: "Busyness and interruptions kill your producti vity": [http://www.flowfinders.com/productivity/busyness- interruptio...](http://www.flowfinders.com/productivity/busyness-interruption- destroy-your-creativity.html)

Charlie Stross (@cstross): Writer, Interrupted: [http://www.antipope.org/charlie/blog- static/2016/08/writer-i...](http://www.antipope.org/charlie/blog- static/2016/08/writer-interrupted.html)

A Brain Pickings piece has selections from Hemmingway, Dylan, and Mann: [https://www.brainpickings.org/2014/08/25/the-psychology- of-w...](https://www.brainpickings.org/2014/08/25/the-psychology-of-writing- daily-routine/)

There is much general advice to writers on avoiding and minimising interruptions: [http://productivewriters.com/2011/10/10/minimizing- writing-i...](http://productivewriters.com/2011/10/10/minimizing-writing- interruptions/) [http://greatergood.berkeley.edu/article/item/please_stop_int...](http://greatergood.berkeley.edu/article/item/please_stop_interrupting_me)

Generally, the work of Mihaly Csikszentmihalyi [https://en.m.wikipedia.org/wiki/Mihaly_Csikszentmihalyi](https://en.m.wikipedia.org/wiki/Mihaly_Csikszentmihalyi)

And of course there's Samuel Taylor Coleridge, and his Person from Porlock: [https://en.m.wikipedia.org/wiki/Person_from_Porlock](https://en.m.wikipedia.org/wiki/Person_from_Porlock)

</comment><comment><USER54> Watch 'The Social Network'</comment>


Ubigraph: dynamic graph visualization - <AUTHOR> http://www.ubietylab.net/ubigraph/index.html <comment><USER2> This looks extremely impressive. Note, however:

"The Ubigraph server is not yet ported to Windows. We hope to release a Windows version in the future. Note, however, that you can run the server on a Mac or Linux machine, and run the client on a windows machine. You only require a functioning XMLRPC implementation on the Windows machine."

That's too bad; from the looks of it, this is nicer than yEd, my favorite graph drawing program: <http://www.yworks.com/en/products_yed_about.html>

This seems similar to Graphviz, since it has a programmatic interface (and no GUI for creating graphs, apparently): <http://www.graphviz.org/>

Here's an example language interface to Graphviz: <https://networkx.lanl.gov/wiki/pygraphviz>

<comment><USER3> I would tell you to stop using Windows.

But I won't.

...because you and I might be competing in the same space.

</comment></comment><comment><USER4> Brilliant. I've been playing with a dataset of programming language influences but getting disappointing results from graphviz. With a few lines of code I was exploring the graph in 3d. (Screenshot: <http://www.paulbutler.org/ubigraph.png> ) I haven't figured out directional edges yet (only had a few minutes), but that will be interesting as well.

</comment><comment><USER5> this is extremely awesome. I've wanted this sort of functionality for a while to animate the evolution of some of my graphs like [http://demonstrations.wolfram.com/AutomataGenerativeNetworks...](http://demonstrations.wolfram.com/AutomataGenerativeNetworks1/)</comment>


Ask HN: How can a programmer learn graphic design from the ground up? - <AUTHOR> (I'm a native Chinese. Being a spelling/grammar Nazi to me really helps me. Thanks.)
Hello HNers,
I'm a college student and a programmer. My dream is one day I will have my own kick-ass startup.
I know how to write clean code; but what I don't know is how to draw things with paper or CSS or Canvas or Photoshop or anything. I can implement Linux device drivers, purely functional data structures, lexers/parsers or socket servers; but I can't even design a simple logo or a good-looking webpage. Sometimes I do have ideas how the logo/webpage should looks, but I just don't have the ability to draw (implement?) them. To be clear, HTML or CSS is just another programming language for me, but I only know the syntax and grammar. I don't know how to do graphic design at all!
I want to learn graphic design, both for my current projects and for my future startup (same reason with the suggestion that "non-technical" person should learn to code). I want to have basic skill on how to use computer to draw icons, logos, buttons and webpages.
But I have no idea what to do and how to start. How can a programmer learn graphic design from the ground up? Should I learn drawing in pen and paper first? Or should I learn Photoshop? Or should I just learn how to draw by writing code in CSS/Canvas? What books/websites can you recommend? Is self-learning enough or a mentor/teacher is required?
I'll appreciate your advice, thanks! <comment><USER2> A large part of becoming a better designer is in studying the design of others so you can recognize what design actually is. It's in deconstructing things to identify what techniques were used, what layouts were employed, what the rationale might have been behind various decisions along the way.

It cannot be over-stated how important it is to be able to recognize design in order to be a designer. While you won't need to be able to identify typefaces at a glance, you should be able to understand the fundamentals. You should be able to identify short-comings and be able to think up ways to remedy that. Like programming, a lot of design is problem solving in the context of many constraints.

The other part is simply doing it. Design things. Constantly. Make up logos. Work with type. Whip up experimental layouts and see how they work, look for faults, and try to fix them. Re-design sites you're familiar with, even if you're simply re-implementing them, so as to understand how they work. The way you gain experience is by exploring and doing.

Everyone focuses on tools as part of their problem. "If only I knew Photoshop better, I'd be an amazing designer," they say. This presumes that Photoshop does the designing for you, which of course it doesn't. You can see work from people who think it does where they've turned on every filter, used every plugin, and exercised each font in their "500 Free Fonts and Clip-Art" collection.

Obviously you will need to learn some tools. I'd advocate picking a few that will get you the furthest along and learn them well. Instead of knowing a bit of Illustrator and a bit of Photoshop, choose one and double down. You can also do a lot of designing with a pencil and paper if you know CSS well enough.

If you're intending to be involved in a start-up, being multi-talented is essential. Unlike large organizations where there's formal departments, you'll often be wearing a dizzying number of hats. You'll be the designer-programmer- customer-support-cleaning-staff-accounts-receivable person and then your partner might be the sales-testing-tech-writer-photographer-blogger person. Rarely do you get to focus on just one thing.

Knowing even a little bit of design can help get you started more quickly, get you further along in projects without having to engage an outside designer, and will make your efforts come across more clearly.

Design is, after all, not just about pretty pictures but about presentation and communication.

<comment><USER3> It's posts like yours that make me wish HN would let me save/tag comments. This is applicable in so many different areas of engineering.

</comment></comment><comment><USER4> I'm in the same position as you. And I've been trying to do this without much sucess. And then I found this book and it really has the very basics down pat:

[http://www.amazon.com/Non-Designers-Design-Book-Robin- Willia...](http://www.amazon.com/Non-Designers-Design-Book-Robin- Williams/dp/0321534042/ref=sr_1_1?s=books&ie=UTF8&qid=1292437264&sr=1-1)

After you finish that, you'll be able to put together great wireframes and layouts.

For the color part I'm reading a book on color theory. The very first thing I learnt in this book was that there is a reason that beginners cant work with color - because they cant "see" true color. This takes a while - google for "Color constancy"

These are the very basic steps that I wish someone had pointed me to ... everyhting else builds up from here.

</comment><comment><USER5> This is just my $.02. I believe the best way to learn is by imitating. Go on every CSS/Design Inspiration (dribbble, forrst, ilvdsgn) site you can and see what is appealing to you and then try to duplicate it in your own time. Analyze ones that everyone thinks are "cool" and figure out what makes them so. Look up articles on color theory, spacing, typography.

It might sound lame just copying a design (note: I don't mean rip then release it, this is just for your own benefit), but by picking it apart you'll slowly be creating building blocks for you to do your own stuff.

</comment><comment><USER6> I've been a designer for 7 years now, and one of the things I did when I was first starting out was find examples of designs I liked and attempt to copy them very precisely. (Should go without saying that this is a practice exercise, not suggesting to rip off others work). The exercise did a few things for me:

\- helped me learn new software (learned bezier curves by copying the starbucks logo) \- forced me to be really attentive to the details of design \- got me in the physical habit of making good looking things \- let me focus first on the mechanics before implementing my own ideas \- forced me to find examples of design to look at

I think this is akin to reading someone elses code when learning a new programming language. It is also a great way to study art, drawing by hand others great works. In graphic design, I would focus more on understanding typography and composition (what things are emphasized and how, I.e. scale, color, space) than on learning to draw. You can be a great designer with rudimentary drawing skills.

</comment><comment><USER7> If I were you, I would be inspired from <http://www.cgsociety.org/> <http://abduzeedo.com/> <http://blog.drawn.ca/> <http://www.logodesignlove.com/> <http://www.davidairey.com/> <http://www.helveticbrands.ch/blog/> and will try to create my ideas first on paper with pencil and then digitize them with proper technology, searching for tutorials like the ones on tuts network <http://tutsplus.com/> CG Society is a great place to immerse yourself with graphic design.

But I think that if you want to learn graphic design just to create your own design and logo, I would say don't bother. You can easily hire a designer to do that for you and it would be cost effective. Just learn to distinguish good design from the bad and learn to effectively communicate the ideas you have.

<comment><USER8> I would also add creattica.com to that list.. gotten TONS of inspiration off there

</comment></comment><comment><USER9> If graphic design is the makeup, then typography is the bone. You should start with the bone, and I can't recommend enough of this book: [http://www.amazon.ca/Elements-Typographic-Style-Robert- Bring...](http://www.amazon.ca/Elements-Typographic-Style-Robert- Bringhurst/dp/0881791326)

Also, by typography I don't just mean fonts, but also the layout, the structure, the readability, etc.

</comment><comment><USER10> I found this (free) book really useful: <http://designingfortheweb.co.uk/book/index.php>

<comment><AUTHOR> Wow, thanks, it seems really helpful!

</comment></comment><comment><USER11> I'd highly suggest reading "Don't Make Me Think"

[http://www.amazon.com/Think-Common-Sense-Approach- Usability/...](http://www.amazon.com/Think-Common-Sense-Approach- Usability/dp/0789723107)

It's more of a usability book, but it covers some visual aspects to design. Beyond that it comes down to reading, practicing, critiquing and being critiqued. Any time you visit a new website think to yourself: what looks good, what looks bad, what is intuitive, and what doesn't make sense.

</comment><comment><USER12> #1 HTML and CSS are not programming languages.

#2 you cannot learn how to draw by using CSS. CSS has nothing to do with any of that .

Onwards, I am not artistic at all. I made the mistake of going to an art school and it made me hate art even more. I came to the realization I will never ever be able to create mindblowing amazing websites kind of like what you see featured here <http://www.thecssawards.com/> and many other sites. I was not born with artistic talent it is something you have to be born with not something you learn.

Once I came to the conclusion that I suck as an artist I started to mimic. I mimic other designs and change them up a bit. I learned that it is best for me to keep in a grid instead of breaking out of it (do a search for web grid systems). This has helped me a lot I went from designing websites that looked like they were in the 90s to something more up to date. My sites still look kind of tempalatey but they still have a customized feel to them.

I also use free UI elements on my sites you can find tons of them online. For logos I do the same thing I do with websites find logos I like and mimic with my own styling.

<comment><AUTHOR> HTML and CSS are DSLs. DSLs are programming languages. Programming language doesn't have to be turing complete. See _Programming Paradigms for Dummies: What Every Programmer Should Know_ <http://www.info.ucl.ac.be/~pvr/VanRoyChapter.pdf>

EDIT: fix markup

</comment></comment><comment><USER13> There are two issues here. Learning how to design and learning the tools of design.

I took two digital art classes in college. You could tell who struggled with design and who struggled with the tools. The kids who struggled with the design piece had really crappy images. The ones who struggled with the tools had really simple images.

You can learn either/or or both. I focus on really simple design because I don't know photoshop, css, xhtml, etc well enough to pull off complicated designs. However, using simple tools like size, layout, and color you can do a lot.

I recommend getting started with blueprint css framework and going from there. You'll learn more about design than the tools, but you'll also pick up some css.

As far as self-learning vs mentor/teacher goes. You need feedback. If you can get feedback while self-learning it can work. I know there are some websites out there that can help you with that.

<comment><AUTHOR> Can you elaborate on places to get feedback? Thanks.

<comment><USER13> I've never used any of the services, so I'd be afraid to recommend any. There are some free and some paid. Pretty much any web design forum will offer feedback though for free. The google 'web design feedback' and you'll get a list of 20 or so different places to check out.

</comment></comment></comment><comment><USER14> I've gone in almost the opposite direction, I studied fine arts and have been steadily moving into dev over the last few years.

I find it inevitable that I study a new thing in terms of what I studied before. So I approached programming with an aesthetics/communication mindset.

If you are going the other way, you mind find it useful to approach design via quite formal subjects like proportion, symmetry, colour theory, and user behaviour. These have syntax and grammar, like any programming language.

Don't worry about photoshop or whatever. Don't focus on 'drawing graphics,' but on usability. Your programming background will serve you well in that.

What and I trying to day? Basically, you're probably already further down the path to designerhood than you might think, since you're a practical person who needs to communicate and handle complex systems.

</comment><comment><USER15> "I want to learn graphic design, both for my current projects and for my future startup (same reason with the suggestion that "non-technical" person should learn to code)"

Theres really no strong reason that a non-technical person should know how to code. Which means you do have to get back to the question - why do you want to learn graphic design? If you feel that you want to learn it just so you can do that for your start-up, realize that its not necessary. You can definitely get those things done for reasonable price through sites like 99designs (reasonable even for a start-up budget). IMHO, the best reason to learn graphic design (like most other skills) is because you WANT to do graphic design. In that scenario, how soon you pick it up will not be a factor, which is the way it should be.

<comment><AUTHOR> About the startup part, let me elaborate. I hope my experience of learning design, or at least trying to learn design, will help me with my taste and knowledge in design. For now, I cannot actually tell apart "good designs" from "bad designs". For example, sometimes I heard people saying things like "It's terrible they chose font X and color Y ..." but cannot see anything terrible in what they're talking about.

<comment><USER15> Which means you WANT to learn design. Thats great, and there are enough inputs from the good folk of HN here to get you started. Best of luck!

</comment></comment></comment><comment><USER16> There's an HNer writing a book on this very topic based on soke blog posts they wrote. I can't remember who it is, alas, but hopefully this will remind someone who can follow up with some links..

<comment><USER17> kadavy is writing a book called "Design for Hackers"

<http://www.kadavy.net/blog/posts/d4h-the-book/>

<http://news.ycombinator.com/item?id=1954724>

</comment></comment><comment><USER18> I had found Andy Rutledge's archive (<http://www.andyrutledge.com/>) to be a really great introduction to design. The 'Practice' section in his archive has some really great introductions, especially his articles on perception.

This one is a good place to start: [http://www.andyrutledge.com/gestalt- principles-1-figure-grou...](http://www.andyrutledge.com/gestalt- principles-1-figure-ground-relationship.php)

</comment><comment><USER19> There are a lot of things that can be learned effectively from books, but I don't think graphic design is one of them. Books can help, but one of the key skills in graphic design is having an internal sense of how a variety of different people with different viewpoints will react to a particular design. I think that skill is best learned through class discussions and the critiques of your peers.

</comment><comment><USER20> All you need to remember is form follows function.

This means creating a UI that's easy to use, if you do that then people don't really care about how it looks.

Look and Pinboard.com or Instapaper.com. People love the businesses even though the sites aren't pretty.

You would get more benefit from learning about how people interact with websites. Sites like useit.com are useful.

</comment><comment><USER21> I've been inspired by stuff from Josef Muller-Brockmann. I'm not a graphic artist, but I'm getting this book when I get a chance: [http://www.amazon.com/Systems-Graphic-Systeme-Visuele- Gestal...](http://www.amazon.com/Systems-Graphic-Systeme-Visuele- Gestaltung/dp/3721201450/ref=pd_sim_b_1)

</comment><comment><USER22> To answer your questions:

1) The same way a programmer learned to program.

2) Yes. As practice, draw from real life everyday.

3) If you want.

4) If you want.

5) I recommend reading Drawing on the Right Hand Side of the brain, Don't Make Me Think, and Design of Everyday Things to start.

6) Whatever you feel works best for you.

<comment><AUTHOR> If I'll learn design the same way I learn programming. Personally, I learned a lot from participating programming contests such as ACM/ICPC and TopCoder. Learning from and taking part in open source projects also give me a lot. Are there equivalences for graphic design? Thanks.

<comment><USER22> There's plenty of forums and design contests. <http://www.drawar.com/crits/design> is an ok place to start. I'm sure there's more.

It's going to come down to practice, like everything else.

</comment></comment></comment><comment><USER23> A developer like yourself would benefit far more by focusing on UI Design than the far broader area of Graphic Design. You don't need to design logos. You do need to be able to design bare-bones interfaces well.

</comment><comment><USER16> Just found this (not related to me): [http://robots.thoughtbot.com/post/2167846199/recap-design- fo...](http://robots.thoughtbot.com/post/2167846199/recap-design-for- developers)

</comment><comment><USER24> I had a long answer but HN died for me.

The short answer, take a drawing class to learn the fundamentals of how to draw. From there, start drawing those ideas you have, but can't implement.

<comment><AUTHOR> FYI, in modern browsers, when a website crashed when you submitting a form, just use "Back" and what you wrote are still there.

</comment></comment><comment><USER25> I recommend learning by working with a graphic artist on a small project. In return, you can teach him/her some programming.

</comment><comment><USER26> As one programmer to another -- don't do it. Programmers can never learn the ART of graphic design from books. B

Graphic design is a black art -- for most programmers; you could end up spending a whole day trying to create a 32x32 icon and still hate it. I have wasted many afternoons cussing at my own design work.

My advise is to get really good at a web framework in a language of your choice and create code that separates logic from presentation. Leave the design work to the pros.

<comment><USER27> It's not a black art -- it just doesn't use many of the same skills most programmers have. That's like saying "playing music ia a black art". No, it just requires a skillset other than you currently have.

Graphic design in particular, is a speciality in which the process of learning pays off greatly. I mean you go from utter crap, to able to alter common designs to your purpose pretty quickly, after about only 80-120 hours of actual education on the topic.

The skills involved in _graphic design_ are:

      Drawing

      Conceptualization of Space

      Conceptualization of Color

      Functional Organization

      Effective Information Visualization

      Execution in tools

And I honestly don't think most of those overlap with programmers base skill sets you have to pickup to do code.

It honestly sounds like you're suffering in the "Execution in tools" section. That's actually the easiest one to "get" in my opinion. Almost any programmer who can follow directions, and has a drawing program can do a bunch of the tutorials (we're talking 40-120 hours of doing tutorials) and practice making different things using those tutorials. You'll then make things "close enough" to fake it for awhile.

Notice this isn't like 20 minutes. It's a real effort. But it's not years before you start seeing real improvements and serviceable work.

<comment><AUTHOR> Can you recommend a design tutorial for programmer to follow? Is _Drawing on the Right Side of the Brain_ your recommendation too? Thanks.

<comment><USER27> Robin Williams (Same name, different person than the comedian) makes s set of books targeted at the non-designer. Amazon has lots of them.

Non-aff link [http://www.amazon.com/s/ref=nb_sb_noss?url=search- alias%3Dap...](http://www.amazon.com/s/ref=nb_sb_noss?url=search- alias%3Daps&field-keywords=robin+williams+design&x=0&y=0)

To learn to draw, Mark Kistler's Draw squad isn't a horrible thing to get you going and to start to look at shadows, etc (however is aimed at children).

As far as tools, trying out the following are good: <http://www.pixelmator.com/learn/> (Scroll to bottom of the page)

<http://qrayg.com/learn/fireworks/>

visual photoshop: [http://www.noupe.com/tutorial/30-useful-abstract- photoshop-d...](http://www.noupe.com/tutorial/30-useful-abstract-photoshop- design-tutorials.html)

And while I think the actual lessons are sorta ugly they're not bad on tool usage fundamentals: [http://www.pvmgarage.com/2010/11/top-ten-photoshop- website-d...](http://www.pvmgarage.com/2010/11/top-ten-photoshop-website- design-tutorials/)

</comment></comment></comment></comment><comment><USER28> Play around with GIMP is simple to learn.

</comment><comment><USER29> Programming and Graphic Design are opposites. Logic, reason and lots of self- discipline makes for good programmers. Art on the other hand is grounded in emotion and perception. It's more about escaping discipline, while allowing yourself to get in touch with some inner irrational being (so that you don't mess up the design with logic and symbols). Art touches you, while programmers build things. Graphic Design in some sense, is just the industrialization of Art for specific purposes (although often less emotional).

It's best to realize that a good Graphic Designer can outrun a programmer in the same way that a good programmer can outrun someone that can't think logically, although some programmers seem oblivious to this. If you need good Graphic Design, it is best to hire a professional that is well suited to the task.

If you really want to try to bridge the two worlds, then a degree in Graphic Design is a good idea. Drawing, painting and photography are also good hobbies that can help you develop an aesthetic. A good reference to start with (and explain why logic and rules fail) is Drawing on the Right Side of the Brain. It's an old classic, but helps in understanding how our brains interfere with our perceptions.

<comment><USER30> _Programming and Graphic Design are opposites. Logic, reason and lots of self- discipline makes for good programmers. Art on the other hand is grounded in emotion and perception._

If you think there aren't "rules" to graphic design that are typically followed, you're fooling yourself. Just like there are times when the best answer to something in programming isn't necessarily the intuitive or logical answer.

<comment><USER29> There are "rules of thumb" which nice people have put together, but they are just a starting point. If you follow the rules pedantically or even closely, the results won't be good. They're just hints to get you going. It's not about obeying rules, it's about how it looks.

The book I referenced is a great resource in explaining why this is true. Part of the brain sees things symbolically, so that when someone is drawing a face for instance, they don't draw what they see as the eye, instead they substitute a symbol in its place. To the person drawing this might look OK, but to other people it looks like a kid drew it. To get good at drawing, you have to shutdown that symbolic part of the brain, and just draw what you see, not what you think you see.

<comment><USER30> Rules was in quotes for a reason. Yes, there are a bunch of "rules" that are generally followed. Except when they aren't. Hot and cold colors, mixing font families and types up, etc.

A good designer will know when to break the "rules". Like a good coder will know when to hack something together, rather than obsessing on architecture and keeping code "clean". Its all perfectly logical. Except when they said "Fuck it, it will work better this way."

Massimo Vignelli had his grid, but David Carson threw it all out the window. Coder X might spend a few days writing his code in what he thinks is a clean, maintainable manner, while Coder Y might hack it together and worry about maintenance later. In both cases, both approaches can be right.

<comment><USER29> A designer breaking the rules will generally enhance their work. A coder violating an architecture will often just create long-term technical debt, at the expense of some short-term gain. That is, they'll get their piece done faster, but leave in its wake a nasty problem for someone else. Of course that only applies if the architecture is reasonable and its rules are correct from an engineering standpoint. In practice, many of the 'coding rules' are too brittle for the circumstances, thus making things worse, not better.

The difference is that one change is done purely for the improvement of the aesthetics, while the other is done because of some fundamental disagreement about the underlying engineering principles. One change is done irrationally because it "feels" right, while the other is a disagreement on the nature of the rules (or a lack of understanding of the purpose of the rules). But there are rules (whether or not they've been articulated).

Usually when programmers "hack" things, they cause a raft of other problems in their wake. As software development progresses from an art, to a science and onto engineering, hopefully the desire to hack at things will diminish. We can actually reliably build complex systems, but only when we choose to think about the right way to do it, rather than just react to our environment. Personally I don't think good programmers "hack". They build. It's very different.</comment></comment></comment></comment></comment>


Vim now supports job and channels - <AUTHOR> vim now supports job and channels
function! Handler(ch, msg)
    echom a:msg endfunction
let job = job_start('cmd /c dir /s/b c:', { 'callback': 'Handler' }) <comment><USER2> Is there a link to an announcement or blog post?

<comment><AUTHOR> here are some related links:

[https://groups.google.com/d/msg/vim_dev/qtw5LdCrHJQ/uDhLZslb...](https://groups.google.com/d/msg/vim_dev/qtw5LdCrHJQ/uDhLZslbDQAJ) [https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf5...](https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf542dbffdeb60b75)

</comment></comment><comment><USER3> What exactly does this mean?</comment>


Ask HN: How do you hire international remote employees? - <AUTHOR> Hey HN,<p>What should I know about hiring internationally before I make an offer to someone? I'm specifically looking for answers regarding compliance, international payroll, legal, etc. <comment><USER2> A few years ago I worked for Auth0 and they made use of a Professional Employer Organization that took care of the logistics and compliance around hiring remote employees in various countries. If I remember correctly, they made use of a company called Globalization Partners [1], but there are plenty of these organizations around.

Auth0's CEO also did a talk [2] a few years back about building a remote workforce and he discussed some of these compliance issues from around the 16 min mark onwards.

[1] [https://www.globalization-partners.com/](https://www.globalization- partners.com/) [2] [https://www.youtube.com/watch?v=sfEM0TipgtU](https://www.youtube.com/watch?v=sfEM0TipgtU)

<comment><AUTHOR> this is awesome, thanks for sharing! those PEOs seem expensive...

</comment></comment><comment><USER3> Mostly by hiring them as independent contractors or by their company invoicing services to yours. Healthcare, taxes, etc. are what is taken care of on their side. If your operations get bigger, things get more complex. You were given nice answers on that.

</comment><comment><USER4> Remote workers outside US usually have legal entity like "self employed" or "LLC". If a remote worker outside of US doesn't have the entity I wouldn't think that they are ready for the serious remote work. If you are not a startup feel free to open forms of your entity on each employee place and get local tax id and care about all local fees and taxes yourself. In US it is somehow standardized and not so scary.

<comment><USER5> Or, alternatively, the US is not the centre of the universe — tech or otherwise.

I've been remote working for nearly 15 years now and am currently a simple PAYE employee on the company's (multinational startup, oxymoron as that sounds) books.

EDIT: over 15 years, I'm old :(

</comment></comment><comment><USER6> Partially my answer depends on how much money you are working with and I assuming you are US based. If you are venture backed then the cost factor can be a little easier since you'd have the money to set it up properly, but you have to seriously consider if spending money on this is the best use of funds (and it may be given the time/cost/skill tradeoff).

If you are bootstrapped and still small just don't hire internationally, hell try not to hire FTE's outside your own state until you have the revenue to really support it. In the US if you employ a person that is in another state you are on the hook for paying not just federal but also that states income taxes (and potentially multi-state taxes), plus registering in the employee's state so you can report workers comp, insurance etc etc. This is not horrible but it is administratively more time, but at least inside the US any accountant can do it pretty cheap and plenty of payroll services can do it automatically for you so it is more or less just writing a check (after you have all the documents taken care of).

My 2 cents, having done this quite a bit, and currently with a team in 3 timezones and 2 Countries (so not that bad right now). While I will hire basically anyone that is qualified regardless of location, I am careful when just starting out to keep people in timezones close to mine (+/-3-5 hrs) and I do not "hire" them as employees if they are international at all. I will employ them using contract based means which still has some reporting and extra record keeping but is much more simple than "employing" them (also stock becomes an issue if you are trying to use it as incentive etc).

If you employ someone across international lines you may actually owe US taxes for that person, you may under the laws of that persons Country be obligated to pay taxes or fees in their home Country and may also be required to register as a foreign corporation and prove you have the resources to operate there (even if you are just employing someone) etc. It all depends on the Country, of course. There are a lot of startups that do not get legal & tax advice and just add people without registering and reporting things properly. If you never get too big the chances of being caught are probably pretty low, but it is a real risk. The IRS (& homeland security) has reporting requirements if you are sending money overseas regardless of employment status, especially once it crosses a certain threshold. So you have to be careful to properly report it and keep records etc.

I don't have any issues hiring someone in another Country, currently my team is split between the US and India (employees not contractors), and we have everything setup properly in both Countries. It wasn't inexpensive and it takes a small bit of extra administrative tasks every month or so to make sure things stay compliant. It isn't that hard once it is setup, just takes some money & time to do up front and can take some calendar time depending on the other Country (2-3 months isn't unheard of in many Countries).

<comment><AUTHOR> wow, this is such a detailed response, thanks so much!! curious what were the extra record keeping you mentioned when hiring international contractors?

<comment><USER6> If you are venture backed just pay a PEO as someone else mentioned and be done, it is so much easier. These organizations are pretty expensive but they take care of it all and you just sign documents and approve transactions. Works even within the US for health insurance, workers comp etc, very simple for you and lets you focus on what is important and not admin tasks.

But to answer your question, at least partially and of course IANAL or accountant or tax expert. Second caveat of course, it will somewhat depend on your state, your company, the receiver & what Country they are in -- and your advisors knowledge/experience doing this.

Some basics:

Corporate Registration (as an employer not like a new corporation typically) in the Country and/or states you employ someone. Some Countries will require you to meet specific requirements, but most are pretty easy they just want to know the basics. In the Country (or US state) are likely additional filings you must do as well. For example in the US you will have to generally file (at least) quarterly reports with every state in which you employ someone, plus deal with workers comp, state taxes etc.

You may be required to meet government mandated pension requirements, paid time off, sick time, health insurance payments etc as well in the home Country if you are employing someone there. So it is always important to consider that as well.

You will file usually within those Countries and States every time you hire/fire or pay someone from their jurisdiction. This can be super simple monthly or quarterly reports much of the time, but there are specific instances where it is every payroll you must file. And taxes may or may not be due.

You need to track every dollar and where it came from and went to. This is so you can pass the foreign transfer audits should you ever be audited. This is usually pretty easy for corporations since you are tracking the money anyway. But in the past my accountant had us setup separate methods to track this all, both in the chart of accounts and then also in a physically separate account(s) where the money was put and transferred from. Using a separate account somewhat insulates you from the government seizing/freezing your primary operational bank account for "suspicious activity". At least if they seize/freeze that foreign transfer account temporarily it won't affect your operational account. There is entire strategies around this for corporations.

You will need to file a notice to the IRS on the person you are hiring and prove their Country of Residence and Nationality (usually using a passport). This is because even if a US Citizen lives abroad you must pay taxes for that person within the US during payroll. Also, there are other cases when someone may meet the criteria of having to pay US taxes. For example, if they travel to the US on any visa and do work within the US boarder you will owe US taxes on them.

You also will file notice of transfers with at least one other US agency (other than the IRS), IIRC homeland is who it is now, but you should check with an advisor on it specifically. Essentially what I remember having to setup here was we had to register with the agency, send them notice of any money being sent overseas when it exceeded a certain dollar threshold, and it was an odd amount, not something simple like $10k. And there are other rules on this part too that weren't that hard, but just again something else to manage and watch.

These are just some of the things, but I think it hits the biggest pain points. It isn't "hard" once you know what you have to do, it just adds time to what is usually an already overworked Founder. So it is best to hire it out where possible. Which is why I say don't do it if you are small or not backed, since the costs just add up. If you want to use someone overseas just put them on contract, and while you'll still have to file foreign transfer notices that is not nearly as much work as everything else, and in some cases your bank will file these on your behalf if you work with them. But someone I learned before, banks have their own notices they have to file on foreign transfers that are in addition to yours, so just confirm with them on it.

I have read and seen posts online from founders or people who say they don't do any of this and some saying none of it is required. I will just say I am not willing to risk large fines or worse over not reporting. Import/export businesses deal with this stuff all the time, it isn't new, but the rules do change fairly regularly so having good advisors is the best idea.

My objection isn't that the process is so hard or difficult, it is that it takes quite a bit of valuable time for an early startup to get things setup correctly. You have to guard your time very closely when you are starting, which is why I generally would not hire FTE's outside my home jurisdiction. Even when using contracts you still have some extra reporting requirements but they are a bit less time sucking.

edit: format

<comment><AUTHOR> I see, thank you so much for your detailed response again davismfwl. It definitely seems like going the international contractor route seems most feasible. I do wonder though at what breaking point it just makes sense to hire an international worker full-time and when that investment is worth it. Given your explanation, it definitely seems that PEO is the best route.

<comment><USER6> I think there could be multiple different things that could be a trigger, or just a good milestone to use. But in general I wouldn't consider it until I had reliable, consistent revenue coming in (or had significant investment dollars) and had established all my basic business practices and that they are working pretty much on auto pilot. There is just so much to do in the beginning that you want to minimize any unnecessary tasks.

There are really talented and qualified people all over the globe, keeping it closer to your timezone in the early days just reduces cognitive load on unnecessary struggles. While I only mentioned the costs and extra work in setting this up, there are other costs which are more hidden. For example, communication delays on a project that isn't well defined (every startup ever) which requires above average feedback and iteration (totally normal) means added delays. Usually I assume with a newer remote team that is 6+ hrs ahead/behind me it will add one extra week per month of schedule to account for the delays etc. So if it would take normally 4 weeks, I'd estimate it to be 5 weeks. Sometimes of course, low coordination or well defined projects means that is only 1 day, but other times it means it is 3 weeks. This is hard to predict and is highly dependent on your experience setting up and working with remote workers, and their experience working remote. I am highly in favor of remote work, and I both employ people remotely and work remotely myself and have done so for many years. A team that is setup and has worked remote before won't consistently have these types of delays, but it is very common with newer remote teams.

Good luck!

</comment></comment></comment></comment></comment><comment><USER7> and don't hire Germans I guess. For Germans it's illegal to contract full time for just one employer.

<comment><USER8> This is terrible advice, and simply wrong. I lived and worked in Germany as a self employed person with primarily one client for 2.5 years - along the way I properly maintained my business and taxes in a good and legal standing. I am not an accountant or a lawyer, and this is not professional advice. What the commenter here is referring to is a specific situation called "Scheinselbstständigkeit" which roughly translates to "fake/sham self employment". If you work as a contractor for just one company for a long time the tax office can audit and determine you're really an employee. This is not a simple decision however and many factors go in to it. Also, the decision is made by your regional tax office and they each have their own standards. In Hamburg for example, I was told it wouldn't even be a question until 4 years time. Even then there are a lot of additional circumstances which must be taken into account. Ideally the self employed would form a German LLC, (GmbH) and make themselves an employee of the company. The best advice, as always, is to speak with a locally certified professional! and not strangers on the internet.</comment></comment>