Ask HN: Which companies have the best engineering culture? - <AUTHOR> What do you like so much about them? <comment><USER2> CJ Affiliate

I was sold when I read this statement:

"We have business decisions made by business people, and technical decisions made by technical people. While we are accountable to fulfill business needs, business does not dictate our programming languages, tooling, technology choices, or even how we spend our time. It is common for engineers to solve technical annoyances on our own."

Individual contributors are empowered to make decisions. I am a recent hire and our team has been mob programming because we decided that was the best way to move forward on a legacy project. We are free to choose when to pair program or work individually when we deem necessary.

I cannot imagine going back to following orders from the highest paid person in the room. This is a true meritocracy culture.

<comment><USER3> Sounds like the triangle of success. [https://www.youtube.com/watch?v=yy0lEzhc8yo&t=29s](https://www.youtube.com/watch?v=yy0lEzhc8yo&t=29s)

</comment></comment><comment><USER4> Google. monorepo with almost full visibility, code search/cross referencing/review tools, good infrastructure support, great videoconference and collaboration tools, a culture of written knowledge vs. oral lore, clear strategy in many parts of the business (loosely coupled, tightly aligned). Perks, pay, vacation are excellent. Work life balance is generally good. World experts in relevant subject matter are never far away.

<comment><USER5> The things you mentioned are mostly true, however the technical culture is very reactionary and the promo process rewards worse engineers on average in my experience. Most of the better engineers I knew there ended up leaving after a while.

<comment><USER6> Did you work there? The promo process, especially at the higher levels, does reward ability-to-explain-and-contextualize over pure technical ability, but my opinion is that senior engineers need more of the former than the latter anyways. Deeply understanding your product and what is necessary to make it better can be more important than the ability to pump out algorithms and models.

<comment><USER5> Yeah I used to work there. Not sure about the higher levels but the incentives in the L3-L5 range were very messed up.

</comment></comment></comment></comment><comment><USER7> I recently started working at Asana and I was pleasantly surprised how people constantly strive to empower each other and make them feel secure in making decisions and picking up responsibility. Mentorship has been gret as well. It has been by far the best environment I have worked in so far.

<comment><USER7> A small list of articles for people who would like to read more about life in Asana:

[https://wavelength.asana.com/work-life- balance/](https://wavelength.asana.com/work-life-balance/) (describes the fractal of work-rest)

[https://wavelength.asana.com/work-plans-high-level- objective...](https://wavelength.asana.com/work-plans-high-level-objectives- roadmap-week/) (how we think about planning)

[https://wavelength.asana.com/workstyle- aors/](https://wavelength.asana.com/workstyle-aors/) (how we think about responsibility)

<comment><USER8> I once completed an intense take-home machine learning test for Asana, and the process of getting feedback for my solution was one of the worst, most political experiences I've ever had while interviewing. I don't know if I got paired with a bad engineer or what, but it was a hugely bad outlier in terms of machine learning interviews.

<comment><USER7> I am surprised to hear that. Would you be willing to share more details with me?

<comment><USER8> I actually mentioned it in a Hacker News thread a few years ago, and someone named Jack contacted me from Asana to try to provide feedback by email and help clarify what happened.

While I appreciated the extra feedback, and the tone of the communication was reasonably polite, the actual commentary of the feedback seemed unreasonable and totally subjective to me.

One of the key issues was that the code test on one hand encouraged someone not to spend too long, and to choose a simple statistical model and work on explaining how it works, but on the other hand the reviewer rejected it because it wasn't "results-oriented" or "focused enough on final conclusions."

It seemed obvious that given the nature of the take-home test, nobody was looking for a model that definitively solved the problem or had amazing accuracy. Just something small-scale, but with a meaningful discussion of the trade-offs and basic discussion of how you fit a model, diagnostics, items you would work on if given more time, etc.

But the feedback I got was that my approach needed to be more "results focused" and that in my write-up I was overly cautious to say not to draw any significant conclusions from a simple model on the toy data set or to read too much into a model that needed to be completed in a couple of hours. They said someone "couldn't thrive" in the Asana environment if they weren't able to work in a more results-driven and conclusion-driven way.

I felt the criticisms were extremely subjective and political. As a candidate, I can't read someone's mind about how "results oriented" a vague take-home modeling assignment needs to be, let alone that I have limited personal time which I can devote to it anyway. I sank a lot of time into writing code for a reasonable "first attempt" kind of model, and providing some diagnostic charts and discussion.

It felt like Asana really wasted my time on it, and that in the end the feedback reflected some unspecified and vague properties that couldn't be inferred or understood from the test instructions or talking with any of the engineers. It was just random. My same solution for the same test at another company might have been viewed as a great one, even from a "results-oriented" point of view because it would be unreasonable to expect that from a short take-home assignment.

I actually got a job as a deep learning engineer not long after that, and then got my most recent job as a machine learning team manager. My experiences working on machine learning models in production and hiring engineers for my team has only reinforced to me that such a manner of take-home data science project is really a bad way to do things.

<comment><USER9> I appreciate your honest feedback here! I'm currently the hiring manager for this position, and I agree that this doesn't sound like a good experience. I disagree that a take-home assignment is inherently a bad idea - I actually have found a lot of value in seeing the work people produce there and feel it's the part of the interview that's closest to what the team actually does day-to-day - but I also don't want candidates to feel like their efforts are being graded in a way that's unfair or lacks transparency. Because of that, in the time since you interviewed, we've updated the rubric to be less subjective and better set up to reward the diverse ways someone could show data science skill, updated the text of the assignment to more clearly indicate what we'll be evaluating, and made it standard practice to share with candidates right away where they did well and where they lost points. If I'm reading your concerns correctly, I think those changes are likely to address many of them.

<comment><USER8> Sounds like you're doing a lot of good work on the process since the time of my experience.

As long as the full set of evaluation criteria and expectations are made clear, and they sincerely fit into the time limit given, a take-home test can be perfectly fine.

The trouble is two-fold

\- the test creators usually drastically underestimate how long the data canonicalization / normalization process takes just to get up & running with a toy data set. This stuff plus cursory data exploration always takes an hour or two — so code tests asking you to just hack together a model plus a write-up in a couple of hours are just not realistic.

\- tests are often subverted for political reasons. Someone doesn't want to hire a candidate who is more skilled than they are; someone wants to recommend their college friend for the role; someone just prefers to work with extraverts but the candidate comes across as an introvert on the phone — whatever it is. Then arbitrary and secondary aspects of a test solution get amplified for debate to steer the decision in a political direction.

Nobody wants to believe their teammates would do this, and many times people do it without realizing. But I've seen my own team doing it in the past during interview evaluations, and it's particularly bad when debating over how to assess a take-home test submission. As a candidate I experienced it a few times too, notably with Asana as mentioned before.

The other sad part of that Asana interview was that nobody in any part of the Asana pipeline ever asked me about my work experience. Every interview was tech questions, programming questions, and the take-home test. Not a single question about my work history.

In the test feedback, the reviewer suggested I might not work well in a product-oriented environment — yet nobody had asked about my work experience in a product-oriented environment at an education technology company. That's just one example, but there were others.

It saddens me a lot that the tech industry is like this. It's so myopic to believe I could assess someone's subjective disposition towards being results- oriented or customer-focused or product-minded based on some random 3-hour test, and never even so much as ask them about their actual work history, where they actually solved problems and delivered products.

It doesn't feel good to be told, "based on this ambiguous code test, you're probably not good at thinking about product development," when you've got plenty of product-development items on your resume you'd be happy to share yet are never even asked about.

<comment><USER9> I continue to agree that it doesn't sound like this was a good experience. I think you'd find that our data science interview process is actually substantially different today and changes many of the things that felt frustrating to you when you went through it a few years ago, including an increased focus on discussing past experience. Thank you again for your candid feedback.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> What do yo mean by engineering culture? Sounds like a broad term. It depends on the company, the department and even down to the team. But from my own experience and friends feedback:

\- Innovation: Space X

\- Responsibility: Apple

\- Just chillin: Google

\- Perks: FB

\- Resources (hardware): Apple & FB

\- Resources (brains): Apple & Google through Acqui-hiring

\- Learning: Space X & Apple

</comment><comment><USER11> I'll toss my hat in the ring for SoundHound. I worked there a few years back, and it honestly felt like family. I was going through a lot of changes in my personal life so I decided to leave, but I regret that now. I should have stayed there for at least 4/5 years.

Managers there really care about their reports, and their development. It's a relaxed, family friendly atmosphere, and the technology is truly the best in the world. The CEO is pretty much the inventor of deep learning, and they have nothing but good prospects for the future.

</comment><comment> a-dub This stuff varies way too much team by team regardless of company level mandates.

Your best bet is to apply to the places that seem like they might be aligned with your interests, and when one decides to move forward and produce an offer, use that time to really kick the tires and talk to the management and the ICs on the specific team you'll be working with.

I've found that regardless of what sort of culture upper management may be trying to build, at the end of the day your experience will be mostly made up of the specific things you'll be doing and the people you'll be doing them with.

</comment><comment><USER12> I wonder about 2Sigma. I seem to naively assume that contributing to a lot of open source projects equals great engineering culture, and this company does seem to have a lot of lead devs from large OS projects.

<comment><USER8> I've heard a lot of bad things about the culture there. The main complaint I've heard is that the company sometimes organizes new projects in a directly competitive manner: multiple internal teams will be assigned the same project and given the set of criteria for evaluating the work. Then at whatever deadline, only the team that "wins" gets bonuses associated with that work.

It may not affect open-source teams though, only the finance side, and it could have changed since 2014-2016 when some of my former colleagues were there.

I also think it's telling that Wes McKinney decided to create Ursa Labs. I know Two Sigma is partnering in the early stages, but I read it as clearly a sign that he wasn't empowered with whatever he was promised by them.

</comment></comment><comment><USER13> I've been at some great places. The problem with culture is it changes. I could tell you companies that are great, but they could change in 6 months if they get new management. I can also tell you places that suck now that _were_ great a year ago.

So then maybe the real test for great culture is if they can maintain it for an appreciable amount of time? It's a really tough one to answer.

</comment><comment><USER14> Well, I can definitely give you a long list of ones that don't...

<comment><USER15> Which ones would be in the top 3?

<comment><USER16> Everyone is tied for last.

</comment></comment></comment><comment><USER17> It's hard to judge without being in there. Most people can only judge from blogs by the founders, which is why Basecamp and Fog Creek get mentioned a lot.

I'd say a good guideline is to stay away from open offices, or places with no monitor. Geek perks like mechanical keyboards are nice too.

<comment><USER18> What place has no monitor??

<comment><USER17> Plenty of companies, sometimes giant ones, ask you to bring your own laptop.

</comment></comment></comment><comment><USER19> JetBrains is among the best.

<comment><USER20> Go on...

</comment></comment><comment><USER21> Atlassian's is great

<comment><USER20> Go on...

<comment><USER21> 20% time that people use. Quarterly hackathons that the whole company partakes in. Healthy budget for travel, classes and conferences. Engineers have lots of weight on product decisions and ideas. Cloud teams use modern tech stacks and are doing cool things with infra/AWS. Founders are highly technical and still like to be involved in some high level technical decisions.

<comment><USER16> Are the hackathons during work hours? Maybe that's how they get some of that 20% time back :)

</comment></comment></comment></comment><comment><USER22> I've always been impressed with the work coming out of etsy. Statsd is a great example - [https://github.com/etsy/statsd](https://github.com/etsy/statsd)

</comment><comment><USER23> I have read 37Signals (Basecamp's) employee handbook, and it sounds like a great place to work, and their tech works really well!

</comment><comment><USER24> The canonical answers seem to be:

* Fog Creek

* Stack Overflow

* (sometimes) Microsoft (private offices, supposedly going away)

* RedHat

Basically anywhere that passes the Joel Test. In my experience, that seems to be accurate - with more emphasis needed on a quiet, low interruption environment.

<comment><USER25> Overall the "Joel Test" is still relevant, but a few of his steps haven't aged well. 3 and 10 in particular.

<comment><USER26> 10 ("do you have testers?") still seems pretty appealing to me. I still see a lot of value in manual and black-box testing, especially for interactive tools.

</comment></comment></comment><comment><USER27> Catalant.

</comment><comment><USER15> ThoughtWorks is pretty cool for a lot of reasons.

<comment><USER20> Go on...

<comment><USER15> I would be happy to answer any questions about the company.

<comment><USER3> What are the reasons that make ThoughtWorks cool?

<comment><USER15> There's a lot of freedom engineers get in choosing projects. There are teams that are dedicatedly working only on open source projects. ThoughtWorks organizes a lot of free events and workshops for technical development of the community. There is a big social component in every initiative, be it increasing diversity, equal pay, training women in tech etc.

There's a lot more and I am happy to answer any questions.

<comment><USER20> How about describe a typical day in the life of a software dev there?

<comment><USER15> It depends a lot on the project. Usually it starts with a team standup and walking the physical wall. The usual one minute status on the story, and in case of any impediments, a call out. Regular checks on emails, chats etc. may follow.

Most of the day goes into pair programming on the planned stories for the sprint. Usually TDD is preferred, but the pair decides their style of working. Tests are a must. Usually there's a build monitor to track test failures.

Tech huddles are called in case of important technical decisions or if there are hurdles. Stories start with a Kick-off to dissect all aspects of it in detail. These are attended by business analyst, quality analyst, tech lead and the pair.

Dev box testing helps catch defects early. So on and so forth. There are sometimes evening meetings with clients depending on time zones, availability etc. Features are demoed in this meeting to get feedback even before they are deployed to Dev or Staging.

Overall the org is unstructured but empowering. There's very little hierarchy.

<comment><USER20> I did think they were pair programming oriented, how unfortunate.

Are you tied at the hip to your pair? Can you come into work, take lunch, leave work, vacation, and go to the bathroom on an entirely different schedule to your pair? Essentially, does pairing erode autonomy and freedom to a degree?

The rest doesn't sound that bad, but also nothing spectacular

<comment><USER15> Mostly yes, pairing is encouraged. But individual preference is respected. Pairing does tend to be highly collaborative, though I won't put it the way you have. Pairing obviates code reviews. It's not applicable everywhere, but wherever it is, the benefits are very obvious and apparent.

What would spectacular look like?

<comment><USER16> I'm sorry but you didn't actually answer handbanana's question.

Is your schedule dictated in any way by your pair? If your pair likes to take lunch at 11 and you like to take it at 1 is that a Big Deal in the sense that you'll be less productive than another pair? How much is the typical "one person talking/thinking, one person typing" and how much is just two people programming next to each other?

<comment><USER15> Let me try again. Schedule is influenced by the pair. There are times when schedules conflict. They are resolved between the pair. There are no rules around it. It's more two people thinking and programming. If necessary the pair separates for some thinking time and reconnect to discuss.</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment>


Renegade Facebook Employees Form Task Force to Battle Fake News - <AUTHOR> https://www.buzzfeed.com/sheerafrenkel/renegade-facebook-employees-form-task-force-to-battle-fake-n?utm_term=.rgEJwaY7mO#.qs9zlA7qDg <comment><USER2> _"It's not a crazy idea. What's crazy is for him to come out and dismiss it like that, when he knows, and those of us at the company know, that fake news ran wild on our platform during the entire campaign season,"_

In the future, you might look back at this and wonder how these kinds of stories got through the ^fake story^ filters in your browser.

</comment><comment><USER3> Note: this is a good BuzzFeed article with exclusive news.

<comment><USER2> Max, notice the irony of non-traditional sites with more authoritative news than MSM.

<comment><USER3> That's not really irony. Anyone can have inside connections.

I made the comment because last thread was derailed because of it: [https://news.ycombinator.com/item?id=12940159](https://news.ycombinator.com/item?id=12940159)

<comment><USER2> ahh, didn't see that one. Not a bad read so when I see this post [https://news.ycombinator.com/item?id=12934388](https://news.ycombinator.com/item?id=12934388) sans cites and background I wonder why it was canned.

</comment></comment></comment></comment><comment><USER4> Though they're in planning more so than operations, I believe this is a "Strike Team" and not a "Task Force". Willing to bet they share common comms and utilize similar if not the same resources.

</comment><comment><USER5> Why not verify "trusted" domains and show a tiny checkmark, the same way you verify users? At least there's no censorship with this solution.</comment>


Jack in the Box CEO reconsiders automation, kiosks - <AUTHOR> https://www.businessinsider.com.au/jack-in-the-box-ceo-reconsiders-automation-kiosks-2018-1 <comment><USER2> The Target near my apartment in Brooklyn is not giant, but due to population density it has a ton of registers. Over the holidays, the replaced a sizable chunk of these registers with self-checkout kiosks. Although there was a long line to use the self-checkout kiosks, it was a faster and better experience than waiting for a register to open.

More importantly, there were still a lot of people working in this section. People were directing customers to registers, guiding people through checkout, and (my favorite) putting things that people left behind back on shelves immediately. Although it was still hard work, the job definitely seemed preferable to standing behind a register and moving things past the scanner.

I am still confident that short-term automation will improve environments and turn bottom-tier jobs into more productive roles (in Jack-in-the-Box's case, maintenance teams for the kiosks, software developers to code the kiosks). In the debate about minimum wage increases, a lot of people see automation as a negative. It may hurt in the short-term but we will see a major benefit faster than people assume.

<comment><USER3> We as consumers will see no gains from using self service checkouts. I am doing the job that someone once did for me so that Target can make more money. Those efficiency gains for Target are a direct burden on me.

Also, I'd argue that self checkout is not faster than having someone checkout and someone bag for me, maybe it seemed faster in that scenario, but it's unliekly faster in general.

<comment><USER4> I'd argue that's a lag in price, though. Even if Target doesn't lower their prices, as self-checkouts get more and more ubiquitous (I mean, they kind of have, but they aren't necessarily the standard), if a Target competitor wants to lower their prices to steal customers it's now easier to do so because they're making more money as well. The lack of benefit to the consumer is due to the lack of competition, but with adequate competition this technology would definitely bring down prices.

</comment></comment></comment><comment><USER5> I used a Jack in the Box kiosk in San Diego. It was awesome; I almost always order the same thing and it would ring my usual by just swiping the credit card to pay for it. Normally, I wouldn't bother to the cashier with the extras, since I had only ok success with them being done correctly. The kiosk order was always on point though. The only friction was the time to make the food. (and in retrospect, the caloric content).

</comment><comment><USER6> I'm curious if higher minimum wages in a small number of states will also impact jobs in low-wage states. I would imagine a fair bit of the cost of installing these machines is fixed (software development, machine design), and chains might as well roll them out in low-wage states as well.

<comment><USER7> Maybe. Well trained humans give better customer service when you are talking to them. (try to tell the kiosk the restroom is out of toilet paper) Thus there are advantages to humans who are easy to talk to.

However a kiosk allows 1 person to work the 10pm->5am shift - this shift is not profitable with 3 high wage employees, but if one person can cook and deliver food it might make sense.

</comment></comment><comment><USER4> These kiosks are already in tons of McDonald's locations from what I understand (I've only seen them in Canada but I'm told they're elsewhere) so I don't get the hesitation.

They work well, especially if there's a long line or you're hungover and don't want to talk to anybody.

What I'm wondering is when they're gonna figure out how to replace the cooks with machines (though that's a different task from kiosks, you need actual robotics) and staff the place with a single manager to deal with customer complaints.

<comment><USER8> The kiosks have been in all the McDonald's in the UK I've been to in the past 3 years (probably only about 6 tbh). They're great because you can get exactly what you want, down to the pickle and mustard and it entertains the kids whilst you're in the restaurant.

In busy restaurants the kiosks do allow a massive backlog of orders to build up. The kitchens cannot keep up.

edit: added 2nd para.

<comment><USER4> >In busy restaurants the kiosks do allow a massive backlog of orders to build up. The kitchens cannot keep up

This sounds like it could be understaffing, but if not, they should just put a pause on all orders. Of course, managers would never want that because they're averse to turning down business even if it worsens the quality for everyone.

</comment></comment></comment><comment><USER9> Reminds me of an oldie but a goodie: Manna, a short story by Marshall Brain. It is speculative fiction from 2003 that starts with the first burger joints being automated.

[https://en.m.wikipedia.org/wiki/Manna_(novel)](https://en.m.wikipedia.org/wiki/Manna_\(novel\))

It is available to read for free on the author's web site.

</comment><comment><USER10> My local Burger King has transitioned to this. I don't often eat there, but I'll admit it is a guilty pleasure.

One interesting thing I've noticed is that with ordering kiosks, I'm much more likely to be upsold.

Having all the option laid out in front of me, and no pressure from someone trying to "sell" me I find it far easier to select add ons.

This says to me that there is a profit motive beyond simple efficiency. It creates opportunity for better sales as well.

</comment><comment><USER11> In Europe the McDonalds I have been to already have screen everywhere where you can order food. There still seems to be a bunch of people working there.

I think this might is problem with automation. If you automate everything and you hire no people then who will buy your products. I think its why Henry Ford paid his people so well. So they could buy cars.

<comment><USER12> That Henry Ford story is apocryphal. If you think about it, it doesn't really make any sense.

<comment><USER13> Maybe, but he was a bit of an idealist and has strong thoughts about how people should and how society should be structured. And the resources to make a noticeable change. HAve you heard of Fordlandia? [https://en.wikipedia.org/wiki/Fordlândia](https://en.wikipedia.org/wiki/Fordlândia)

</comment></comment></comment><comment><USER14> McDonalds around the Europe already have those kiosks (not all, yet). Same like self-checkout in stores - it' not uncommon.

<comment><USER15> They have them in the US too. It is funny, if you go in and there is a line at register, almost all the kiosks sit empty. You can order your food and have it handed to you before even part of the line is served. It tends to get you dirty looks.

</comment></comment><comment><USER16> Most Jack in the Box orders are through the driv-thru, there's not nearly as many people coming in to eat compared to McDonald's. Adding Kiosks to their 10 urban locations would be a waste of money at this point.

</comment><comment><USER17> Is it really true that the minimum wage before was JUST at the point where replacing workers wasn't worth the cost, and now it's going just over that threshold?

If they can find a way to replace workers with machines, my guess is they will. My local walmart has one worker managing about ten self-checkout stations now. Panera Bread has stations where you order your food; no cashier needed. And the wage they are paying here is well above minimum wage, anyway.

CEOs will eliminate all the employees they can, because they consider that their job. And then they'll give out executive bonuses as massive as they can get away with.

There is no reason why the minimum wage should be so low that no one could make a living off it.

<comment><USER18> At the same time, those same CEOs will create jobs and add employees if they think it will drive revenue or improve the business.

An easy example with the fast food restaurants is that they keep opening new locations.

<comment><USER19> Aren't most fast food restaurants franchises, and the individual corporations running them own a handful in a fairly constrained geographic area? There are 3-4 companies that own the various McDonalds locations in my area and I don't think any of them own more than 3.</comment></comment></comment>


On the (in)security of a self-encrypting drive series [pdf] - <AUTHOR> http://eprint.iacr.org/2015/1002.pdf <comment><USER2> As much as I love El Reg, here's the actual subject matter being reported:

[http://eprint.iacr.org/2015/1002.pdf](http://eprint.iacr.org/2015/1002.pdf)

<comment><USER3> Thanks, url changed to that from [http://www.theregister.co.uk/2015/10/20/western_digital_bad_...](http://www.theregister.co.uk/2015/10/20/western_digital_bad_hard_drive_encryption/).</comment></comment>


Ask HN: Best practices (and examples) for designing client libraries for APIs? - <AUTHOR> I'm writing a client library for my favorite project management app's API, in PHP. Are there any best practices that I can follow? Can you recommend a good example of such a library (either written by the API provider themselves or by a third party) that I can learn from?<p>Doesn't need to be in PHP - Java, JS etc works too <comment><USER2> I usually like to have some Client object that's responsible for establishing connections and performing unauthenticated interactions with the API. For things that require auth, I usually hang a Login / Authenticate method off of the Client that does whatever auth is necessary (you can even have multiple if there are multiple strategies). Those authentication methods usually return some kind of Session that has whatever token is ultimately produced as state. Authenticated methods hang off the Session object. EDIT: One other nice consequence of this design is that a separate Session makes it possible to have multiple simultaneous authenticated sessions while still maintaining the ability to call unauthenticated methods (e.g. Ping()).

I've found this prevents users of the library from having to shuttle around credentials and accidentally calling authenticated endpoints without credentials (since those methods don't even exist off the Client). Also, if the Client is responsible for managing connections, it can also deal with things like rate limiting and whatnot. Finally, having a separate Session object eases testing, as you don't have to mock the entirety of the auth flow (think of the complexity of OAuth 2.0) in order to get to a state that you care about. You can simply start with "given an authenticated session...".

There are some other pieces that can be useful too depending on the abstractions available to you in your language of choice. Sometimes I'll include a lower-level Request to do basic URL construction given a higher- level map of parameters. Corresponding Response objects can occasionally be useful too in those scenarios to unpack JSON / XML / w/e and present a higher- level construct to your methods.

<comment><USER3> I agree that a good idea is having a Client object, which main concern is to authenticate to the API and make the first connection. This Client should be in charge of creating instances of each resource available in the API. Don't try to just offer a replica of the web API: you should figure out which are the most important use cases for the API and then offer them to your end-user. And it's important to prioritize so you don't clutter the public interface of the library. If you want to share common features across your resources, you could create a mixin with them.

If you want to check an example, we released just a few days ago a Python- flavored client [1]. The code is readable and still in early stages; hopefully you can borrow a few ideas from there. These guidelines are mainly based on OOP, and Python with its data model (i.e. dunder methods) is flexible enough to offer a great user interface.

[1]: [https://github.com/fintoc-com/fintoc-python](https://github.com/fintoc- com/fintoc-python)

Edit: wording

</comment></comment><comment><USER4> This will only address part of your question, about API design.

I'd highly recommend Josh Bloch's writings. Josh is perhaps best known for the book Effective Java and the Java Collections library. Here is a paper he wrote about good API design ([https://dl.acm.org/doi/abs/10.1145/1176617.1176622](https://dl.acm.org/doi/abs/10.1145/1176617.1176622)) and a short interview with him about API design ([https://www.infoq.com/articles/API-Design-Joshua- Bloch/](https://www.infoq.com/articles/API-Design-Joshua-Bloch/)).

Brad Myers at CMU also has done research on API usability. See here for more details: [http://www.cs.cmu.edu/~NatProg/apiusability.html](http://www.cs.cmu.edu/~NatProg/apiusability.html)

Lastly, if you're doing anything remotely related to security, I'd also recommend Matthew Smith's research. He's studied a lot about weaknesses of today's API designs and how they have led to security vulnerabilities. [https://ieeexplore.ieee.org/abstract/document/7676144](https://ieeexplore.ieee.org/abstract/document/7676144)

</comment><comment><USER5> I've done this a lot, and I'd recommend using HTTPlug here. PHP/composer allows you to require an implementation instead of an actual package, and that lets your users pick the HTTP implementation they'd like to use (Curl/Guzzle/Socket etc).

[http://docs.php-http.org/en/latest/httplug/library- developer...](http://docs.php-http.org/en/latest/httplug/library- developers.html) is the starting guide and [https://packagist.org/providers/psr/http-client- implementati...](https://packagist.org/providers/psr/http-client- implementation) is all the various providers you will automatically support this way.

There are other pros: you'll be using PSR standards, so it becomes easily extensible. However, there are some limitations, especially if you want to make fairly complex multi-part file uploads (this might have improved since, I'm not sure).

</comment><comment><USER6> It may not be a pattern that works well in every language, but I have used and quite enjoy this [1] approach from Ruby.

[1]: [https://medium.com/rubyinside/building-a-creative-fun-api- cl...](https://medium.com/rubyinside/building-a-creative-fun-api-client-in- ruby-a-builder-pattern-variation-f50613abd4c3)

</comment><comment><USER7> Creating good APIs is about developing a good taste and not surprise the user.

In your case, the first job of designing the API is done for you by the app.

So as a first step, create the foundation layer by mapping the app's API to simple objects that represent the app's API.

Then you can build a layer above to simplify certain operations and build some logic on top.

Think in terms of responsibilities, relationships and who should know about what. That's how you achieve code reuse. When you find yourself reusing your own constructs, it means you've done something right. I find it's often that developers aim for code reusability, but IMHO code reusability is just a natural outcome to good design decisions.

Use your API by writing pseudo code and see if it makes sense.

Keep iterating. Avoid trying to nail it from the first go. IMO, building functionality is more useful than designing a perfect API.

</comment><comment><USER8> This article could help:

[https://www.moesif.com/blog/technical/sdks/Best-Practices- fo...](https://www.moesif.com/blog/technical/sdks/Best-Practices-for-Building- SDKs-for-APIs/)

</comment><comment><USER9> Personally, for building a client library I'd take a look at OpenAPI Generator ([https://github.com/openapitools/openapi- generator](https://github.com/openapitools/openapi-generator)) or Swagger Codegen ([https://github.com/swagger-api/swagger- codegen](https://github.com/swagger-api/swagger-codegen)) - especially if the API provider has an official OpenAPI/Swagger specification. (If not you can always write a specification yourself). Both tools support PHP among other languages.

<comment><USER10> I can't recommend OpenAPI/Swagger-based code generation at all based on my experience working with it. I've only used it for Java, Kotlin and TypeScript, but the generated code (usually more then you asked for) only works like 90% of the time and getting it to 100% takes workaround after workaround. A really frustrating experience.

I must say, however, that it may work for simple APIs but even then usually only for generating the model part and not the API part. What kind of worked for me though was generating code for the server in form of a Kotlin interface for a Spring MVC controller. Although, here too, I had to modify the code generator templates to tailor it to my needs.

Regarding API client, when you can successfully generate an API client with code generation, it should be considered a low-level API client upon which one should build a high-level and more user-friendly API client (e.g. object model with actual methods and not only anemic objects).

</comment></comment><comment><USER11> Automated testing is a generically good technique for many things including forcing yourself to have a better API. Code sometimes has to be refactored to make it more testable, and this refactoring invariably implies a better API.

Write automated tests to hit each part of your API and test the functionality of each thing in isolation. If you find the tests frustrating to write, your users will find the API frustrating to use.

I've written more about this here:

[https://bad-code-considered-harmful.blogspot.com/2020/05/tes...](https://bad- code-considered-harmful.blogspot.com/2020/05/test-your-public-api.html)

By the way, I am not an advocate for TDD. I write my tests at the point when I'm ready to start running them. But I strongly agree with the general claim that TDD makes that says that good unit tests are the closest thing to a panacea you will ever encounter in software development. However, I've also seen projects where the unit tests were just more bloat. Unit tests need to be written to test your API to help you design a better API.

</comment><comment><USER12> A bunch of good info here already, although it seems some commenters have missed that this is about writing an API client library. Generating from an API spec isn't a bad idea, but can often provide a fairly low level interface that may not always be what's needed.

Here are things I'd look for in a good client library:

\- Feels at-home in the language, makes use of language idioms.

\- Few dependencies, wide version requirements on language and dependencies, needs to fit into a wide range of use-cases.

\- Ability to pass in networking/transport options/session/etc. Needs to work behind proxies, with custom networking requirements, custom headers for proxies, or even allow mocking out HTTP for testing.

\- Thorough test suite on range of versions.

\- Clear costs of calling functions. Time complexity of functions is unlikely to be the limiting factor, but knowing how many HTTP requests a given function makes could significantly change the usage of the library.

\- Authentication in as many ways as possible. Many use-cases have wildly different auth requirements. Google's Python packages are quite good at this.

</comment><comment><USER13> I'm looking for a resource to gently pass to my client to help coach him up. He wrote all the server APIs, I write one of the mobile apps. His APIs are all massive JSON dumps of columns from the database where most of the fields have no use on mobile. The documentation is an out of date printout of the structures with comments, in Ruby I think.

Worse he doesn't seem to do any data validation, I recently passed an index instead of an id for one field and ended up with tons of test data that's broken. Not because of a bug in my code mind you, but because I misunderstood the cryptic comment.

Lastly, he occasionally asks the mobile apps to do processing of the data that's more easily and safely done on the server. It's like he misunderstands the role and value of the server in a client server application.

But again he's my client so I have to be gentle.

</comment><comment> enahs-sf Stripe has probably the best and cleanest API design.

<comment><USER14> And documentation. I would spend some time really understanding their docs and client libraries if you want to see a real world example of the most developer friendly docs available.

[https://stripe.com/docs/api](https://stripe.com/docs/api)

[https://stripe.com/docs/api/balance/balance_object?lang=pyth...](https://stripe.com/docs/api/balance/balance_object?lang=python)

<comment><USER15> Is there any documentation of the client libraries themselves, or just the API?

<comment><USER14> Yes. It's integrated into the docs. If you look to the right you'll see code samples and you can choose different languages from a drop down.

[https://stripe.com/docs/api/balance/balance_retrieve?lang=py...](https://stripe.com/docs/api/balance/balance_retrieve?lang=python)

The client libraries have stand alone documentation as well.

[https://github.com/stripe/stripe-python](https://github.com/stripe/stripe- python)

</comment></comment></comment></comment><comment><USER16> As a user of your library, don't make me inherit from your base classes. Allow me to couple _loosely_ to your objects, methods and functions; do not make me write everything centered around your code.

</comment><comment><USER17> If you are lucky enough that your API vendor provides an OpenAPI (aka Swagger) specification (or possibly API Blueprint or RAML, if nothing else), make sure you build your client to follow the spec. Even if you are possibly aware of some undocumented features, try to avoid relying on them -- they might change or disappear without a notice.

I would also highly recommend to use the spec to dynamically construct your requests. I don't know if PHP has libraries to assist with that, but for example in Python you could use tools like Bravado or Pyotr client.

</comment><comment><USER18> Honestly, best practices depends on what you are trying to achieve. Why is the API painful to use? Try to address those aspects when creating your client library.

Many API's are easy enough to understand, they don't necessarily get lots of benefit from an official client library. Developers just write the HTTP request code themselves for whichever endpoints they are using. keep it simple if you are first starting.

create a separate file, NameAPI.js, to house your endpoint calling functions. Make it easy for the caller to provide necessary values to those functions. Sometimes API endpoints have a lot of extra optional params/properties. Don't worry about including those in the function interface unless you are actually using them for your use-case--instead choose suitable default params/properties whenever possible.

Then continue to build out your client functions as you need more endpoints or endpoint features.

I would say sometimes its helpful to provide multiple client functions per one endpoint, especially if this endpoint is already loaded with lots of different choices for params/properties. EX: ive seen create user endpoints that require a non-descriptive type property like 1 = basic user 2= admin user etc. well, you could have two client functions createUser vs createAdminUser. In this way, you are taking off some of the burden for the caller to figure out which type number they need to pass, and instead giving them natural language functions which configure and run the HTTP request for them.

A nice to have: make it easy for the caller to pass properties using host language conventions like property name casing. ex: if the host language is in javascript, it may be easier/more consistent for the caller to always provide camelCased params/properties to the function, even if the API endpoint expects snake_case for params/properties (translate the names for your caller).

be clear about how you are handling error conditions in your client functions/package. I think of two basic types of error conditions, network errors vs operational errors. Network errors would be when client has not internet connection or times out for whatever reason. Operational error would be when server DOES send back response but its an error response (like 400's client provided bad values or 500's server is malfunctioning). And will you be throwing errors on network errors AND operational errors? or just throwing on network errors? or not throwing at all (returning some value instead)? basically, how does the caller know when there was an error and what type of error? In Go, i've seen sql clients go through the trouble of returning custom error types for every possible sql error that could happen. That gives the client more potential options to decide how to recover/resume.

If you are first starting, I honestly wouldn't worry about including auth handling within the client. I find it usually confusing more than helpful. But it depends on the protocol and auth method. Perhaps auth IS one of the most painful points of using the API, in that case building some auth management into the client may be helpful. But HTTP + Authorization token is so straightforward and common, developers can manage that auth cred easily in their own way. In that case, just make the token a parameter that must be passed to the client function. That's the simplest way to start.

Next option might be to allow the caller to create an instance of the client for a specific auth cred. Then the caller can use this instance whenever it needs to call client functions given that auth cred, or create multiple instances each with a separate user/service auth cred.

if you are hosting this client as a package for others to use in the community, be sure to stay on top of any API changes which necessitate your client package to be updated. Provide clear documentation about any API changes and how your package has addressed them.</comment>


Finland to propose that EU abolish daylight savings time - <AUTHOR> http://www.helsinkitimes.fi/finland/finland-news/domestic/15291-berner-finland-to-propose-that-eu-abolish-daylight-savings-time.html <comment><USER2> Here's why Finland doesn't like DST.

In the south of Finland (like Helsinki), in the summer, the sun rises at 4am and sets at 11pm. The entire night is twilight, and it doesn't get completely dark at all.

In the winter, the sun rises at 9:15am and sets at 3:15pm. At it's height, the sun barely rises above the trees.

In the northern parts of Finland, things are even more extreme: for a long period of time in the summer, the sun doesn't set at all [1]. Similarly in the winter, the sun won't rise at all [2].

Therefore, for the Finnish people, DST is mostly useless. In the summer there is no shortage of daylight in the evening or in the morning. In the winter it's going to be dark in the morning, and dark in the afternoon anyway.

For most of the year, there's nothing be gained by moving the clocks around. Moving the clocks mostly throws your sleep cycles off for a few days. Especially families with small children seem to get hit especially hard by this.

That all said, perhaps Finland should not move to totally abolish DST, since some people in southern Europe appear to like it. At the very least, though, northern EU states should be allowed to opt out of DST.

[1] [https://en.wikipedia.org/wiki/Midnight_sun](https://en.wikipedia.org/wiki/Midnight_sun)

[2] [https://en.wikipedia.org/wiki/Polar_night](https://en.wikipedia.org/wiki/Polar_night)

<comment><USER3> I see your point and indeed there is little to be gained in the extreme north; people are already chronically light stressed and a small sleep shock with no real daylight benefits could have the claimed psychological effects.

But this is not the case for the vast majority of the Europe's population. Why would DST be mandatory anyway? We are already using different timezones, I doubt it would disrupt trade, airtrafic or anything if an EU country does not change timezones when others do.

<comment><USER2> DST in Europe has a bit of a history. The European Community, consisting mostly of countries in the southern parts of Europe, decided in 1981 that DST was a good idea.

For political reasons I don't fully understand, Finland adopted the same DST convention in 1981. Possibly there was a need to appear to be in line with other European countries. Maybe there was fear that international business might be disrupted if the time difference between Finland and a given European country wasn't always the same, no matter the date. Certainly the Finnish people didn't need or want DST any more than they need or want it today.

Later, DST was encoded as a (mandatory) EU directive in 2002. All relevant countries were already following the practice, so making it a directive probably seemed like a good idea at the time. Given the amount of international dealings with non-EU states with varying DST conventions, it doesn't seem that useful to force the same DST rules on all EU states.

</comment></comment></comment><comment><USER4> Turkey did that. The results so far are not promising as apparently more energy is used and people are complaining that they don't see the daylight in the winter as it's dark outside both when leaving home for work and coming back.

Will switch back to daylight saving as nobody is happy(Maybe except for the Energy minister who is the son in law of Erdogan and also runs energy companies).

edit:

here is a source, it's form a Turkish factchecking website: [http://www.dogrulukpayi.com/bulten/kalici-yaz-saati- uygulama...](http://www.dogrulukpayi.com/bulten/kalici-yaz-saati-uygulamasi- elektrik-tuketimini-ne-kadar-arttirdi)

according to the reports, the effect on increase in consumption is inconclusive(there's an increase but not necessarily due to this) but public opinion polls shows that people want to go back to the daylight saving schedule with %66 majority and only %22 of the people like the permanent summer time.

here is a news article reporting that Turkey is ending the permanent summer time and going back to the daylight saving time at the end of the 2018: [http://www.milliyet.com.tr/surekli-yaz-saati- uygulamasi-2018...](http://www.milliyet.com.tr/surekli-yaz-saati- uygulamasi-2018-de-ankara-yerelhaber-2366624/)

I guess you can use Google Translate to verify. The factchecking website also links to the actual reports.

BTW, to all DST Haters, check [http://momentjs.com](http://momentjs.com) and calm down. DST is your friend, let the computers do the bookkeeping and enjoy the sunlight.

<comment><USER5> This makes no sense to me - are you saying that without turning the clock, people in Turkey are incapable of going to work/sleep according to how much sunshine there is?

EDIT: To clarify, I'm just disagreeing with the idea that it's necessary to change the meaning of our clocks. Imagine if we started changing the meaning of weeks so that all national holidays would fall on weekends (so if it's Wednesday and tomorrow is a national holiday, we skip straight to Saturday) - it seems insane, but in essence, it would be the same thing.

<comment><USER6> Maybe they can't, because their jobs require that they come in at 8 and leave by 5. Maybe they have kids that have to be brought to school at 8. You could say "just go to work an hour later in the winter", but that amounts to DST, without the perk of knowing that everybody around you is living on the same rhythm.

I have no opinion about DST btw.

<comment><USER5> DST is not an employer decision, it's a government decision. If a goverment decided that work/schooldays begin an hour later in the summer instead of DST, everybody would still be living in the same rhythm.

</comment></comment></comment></comment><comment><USER7> Can't happen soon enough for me.

Also smart: '"Member states should mull over together which time – summer or winter time – should be adopted on a permanent basis."'

Let's keep it on summer time, having light at 4 pm is more valuable than at 4 am. (I know, exaggerating, but only a little)

<comment><USER8> I prefer to keep local time aligned with its historical roots, so that 12 is the hour closest to sun's highest point in the sky. What prevents society from adjusting to that?

<comment><USER7> It's a good idea. However, it is incompatible with having the same time across a fairly large swathe of longitudes.

The benefits of having a common time such as CET/MEZ for most of continental Europe outweigh the nicety of having 12 noon correspond to the high point of the sun's arc in the sky.

<comment><USER9> You could actually do even better and just make all of the EU one timezone - since it doesn't have much to do with high noon anyway.

<comment><USER7> A good idea.

[https://en.wikipedia.org/wiki/File:Time_zones_of_Europe.svg](https://en.wikipedia.org/wiki/File:Time_zones_of_Europe.svg)

[https://en.wikipedia.org/wiki/Central_European_Time](https://en.wikipedia.org/wiki/Central_European_Time)

</comment></comment></comment></comment></comment><comment><USER3> The great majority of people opposing daylight saving don't really appreciate it's purpose: DST does not screw up winter, it makes summer better, much better.

During the winter, there is limited light no matter what time you use. In a world without DST, social conventions evolve so that work hours, business opening and close times etc. find a compromise that allow most of the activity during the day - a clear preference of the human species that also maximizezes productivity and satisfaction for most people. It's irrelevant if that time is called 7 AM or 54 APM, you will tend to start working at the time the winter daylight starts. That's our baseline.

Since we are no longer use sundials and enjoy predictable schedules, that time and schedule is maintained for the whole year; however, as summer arrives, the days get longer and they stretch both in the morning and in the evening symmetrically. And since most people like to start their activity in a short time after waking up, and the wake time is now fixed by the wallclock to be the same as during the winter, a good part of the daylight that we enjoy happens before most people are awake, say 5AM to 6AM.

This is where DST idea comes into play: if the morning daylight is "wasted" since most people don't get up so early, why shouldn't we "move" that extra hour of light in the evening, so that most of us can enjoy a longer summer day and late twilight evenings by simply moving the clock ?

Incidentally, DST reduces electricity consumption, but the main benefit in my opinion is the increased quality of life during the summer, for a very modest price: you wake up an hour earlier one day a year, and then enjoy 183 days with 1h more of light each. The reverse, going back to winter time by sleeping 1h more is essentially free for most people. I love DST and would hate to see it gone for a misunderstanding, it's impact over the winter days, when in fact that's unavoidable and it's real purpose is to make summer better.

<comment><USER10> Why is he being downvoted ? Is it false ?

<comment><USER3> I guess people really hate daylight saving :)

</comment></comment></comment><comment><USER11> I have never loved Finland more than I do right now.

</comment><comment><USER12> We already thought of this in Arizona.

[https://youtu.be/k4EUTMPuvHo](https://youtu.be/k4EUTMPuvHo)

</comment><comment><USER13> I recommend anyone interested to look at some of the documentation done in the IANA timezone dataset (historical references of Finland shown here): [https://github.com/eggert/tz/blob/master/europe#L1213](https://github.com/eggert/tz/blob/master/europe#L1213)

</comment><comment><USER14> While we're at it let's switch to binary time and a global timezone

<comment><USER15> I'm so with you on this. A bit of a shame it's just you and me.

<comment><USER9> You 2 guys want to say things like, lets meet at 01100110010110001101011 ?

</comment></comment></comment><comment><USER16> It is fashionable among nerdy people, especially programmers who have to deal with the complicated relationship between different ways people describe time, and the actual flow of time, to not like DST. DST is really good, and really simple though. It's a social agreement to do everything an hour earlier in the summer. People like this pattern. Before clocks and railroads and computers, people generally woke up with the sun, and went to bed shortly after dark. In the winter, this meant that people slept a long time, but that was fine because there wasn't much to do in the winter anyhow, and it was better to conserve energy, since there wasn't much food available.

Since we now have artificial light and ample food, we prefer to stay up past sundown and get a consistent 7-8 hours of sleep per night. Still though, people like to wake up after sunrise -- the sunlight is a pleasant and natural alarm clock, and waking up with it is built into our biology.

In the modern world, most people have to go to work. Most people prefer to wake up, get ready, and then head to work. If work starts at 9:00 without DST, and you're far enough north, the time between sunrise and 9:00 changes a lot. Without DST, people either have to wake up later in the summer, or find something else to do in the morning before they go to work. Most people would rather go to work earlier and go home earlier while it's still light out.

Now, you could say, employers could understand this and have different summer and winter hours. That's true, but there's a coordination problem. Suppose a shop opens at 7 in the summer, but 8 in the winter. Maybe their bread delivery happens at 7:30, so now that has to be changed twice a year. That means that the delivery driver's route needs to change because not every shop changes their hours, or if they do, they don't change them at the same time. DST fixes the coordination problem by just relabelling time, so everyone starts doing everything one hour earlier on the same day across the whole country.

</comment><comment><USER17> Please yes please. I _hate_ DST. It's an enforced twice yearly jet lag for no reason I can discern.

<comment><USER18> Adjusting the time allows to have more natural lights. It saves a lot of electricity.

<comment><USER9> That doesn't seem true - when the US extended summer time it ended up costing more electricity.

And if it was true, you can just extend it year round. Winter is when summer time is really needed anyway.

<comment><USER19> Russia tried that for 3 years, now they use normal time the hole year. It seems only "summer time" is not a good idea either.

</comment></comment></comment></comment><comment><USER20> Poland also wanted to remove daylight savings time (the project was in the lower house) but ultimately it was rejected because all EU countries need to use the same time (DST). It seems Finland is taking it further...

<comment><USER21> Portugal, UK, Ireland have been in UTC for ages.

<comment><USER18> UK is GMT time. Do not confuse with UTC, it's not the same.

<comment><USER22> > Do not confuse with UTC, it's not the same.

GMT as a time standard is defunct. The Mean Sun no longer traverses his notional sky.

GMT as a civil time zone is based on atomic measures[0]. It is not measured from the meridian. This is the phrase used to indicate this in UK legislation:

 _In these Regulations Co-ordinated Universal Time (UTC) is the same time as Greenwich Mean Time (GMT)_

[0] Time scale UTC(NPL)

</comment></comment></comment></comment><comment><USER23> In 1517174122 daylight saving time is so obsolete...

</comment><comment><USER24> DST has it's place I think, but given the choice between having it active never or always I'd choose the latter. The extra daylight is great.</comment>


30% of US Workforce Need License to Perform Their Job - <AUTHOR> http://www.brookings.edu/blogs/up-front/posts/2015/01/26-time-to-examine-occupational-licensing-practices-kearney-hershbein-boddy <comment><USER3> It's easy, but lazy, to look at regulations and say "this is obviously a bad idea." It's harder and more rewarding to think, "what are the forces that generate these regulations, and how can we change those forces?"

One explanation is that they're oriented towards businesses that tend to be sole proprietorships with super low capital requirements - anyone can potentially start running tours or cutting hair or interior decorating, without even renting a storefront. So, those kinds of businesses have much more of an incentive to use legislation to restrict entry, rather than relying on more "inherent" economic barriers. Relatively speaking, they have a higher payoff to lobbying than, say, a pizzeria that needs to invest a lot in ovens, rent, and payroll - if you can afford those, you can afford to either take Pizza Making 101 under a licensing regime, or more realistically fight the licensing regime itself.

How do you change that pattern given a democracy that responds to lobbying? Frankly I'm not sure, but trying to figure it out has a higher payoff than complaining about it.

<comment><USER4> Licences for hairdressing has little to do with restricting entry. It's an attempt to protect people from the harm of incompetent hair dressers - some of the chemical products used can cause chemical burns, for example.

HN is pretty dismissive when talking about jobs that other people do. Hair dressing isn't super hard, but it does require some skill and training. That's why hair dressers are currently on the list of desired professions for immigration into Australia, allowing people to enter Australia as a skilled professional.

[http://www.immi.gov.au/Work/Pages/asri/hairdressers.aspx](http://www.immi.gov.au/Work/Pages/asri/hairdressers.aspx)

<comment><USER5> In that case, the standard is applied extremely, even criminally, unevenly.

I can write and sell books advising you to treat your cancer with organic kale and meditation. Following that advice will literally kill you. But I can't give you a tour of the national mall, because... Because what, exactly?

You can't protected all the people all the time, it's simply impossible (or would result in a dizzyingly oppressive Brave New World style situation). At some points, people need to take responsibility for what they do to themselves/let other people do to them, even if some people might suffer a chemical burn from a back alley untrained hairdresser occasionally as a result - just like people do all the time when they try to do these things to themselves at home, which of course is perfectly legal and not to my knowledge a source of many calls for licensing of the ownership and operation of a watertap and a plastic bucket?

Also, licencing hairdressers doesn't even prevent fuck ups from happening there, that's people with nontrivial haircuts (the group of hairdresser clients formerly known as women) pay so much for haircuts. They know that they're hard to get right, and that it matters that the hairdresser knows what they're doing. This is equally true in jurisdictions where hairdressers are licensed and where they are not.

<comment><USER6> _> Because what, exactly?_

The most honest answer to this question is because free speech protections in the United States are _extremely_ strong, and expressing anti-modern-medicine viewpoints qualifies as (even political) speech.

</comment></comment></comment></comment><comment><USER7> [http://www.npr.org/sections/money/2012/06/22/155596305/episo...](http://www.npr.org/sections/money/2012/06/22/155596305/episode-381-why- its-illegal-to-braid-hair-without-a-license)

> A few years ago, Jestina Clayton started a hair braiding business in her > home in Centerville, Utah. The business let her stay home with her kids, and > in good months, she made enough to pay for groceries. She even put an ad on > a local website. Then one day she got an email from a stranger who had seen > the ad.

> "It is illegal in the state of Utah to do any form of extensions without a > valid cosmetology license," the e-mail read. "Please delete your ad, or you > will be reported."

> To get a license, Jestina would have to spend more than a year in > cosmetology school. Tuition would cost $16,000 dollars or more.

<comment><USER8> > Tuition would cost $16,000 dollars or more.

That was my first thought. How many of these licenses have formal requirements for university or college tuition. Given the money bleeding tactics of tertiary education, it wouldn't surprise me to find their grubby finger prints behind legislative action to prop up their monopoly over the workforce.

</comment></comment><comment><USER9> Out of curiosity, I took a look at the cosmetology program at the local community college [1] to see what's required. This program prepares students for the Washington State Cosmetology Licensing Exam.

Before enrolling in the cosmetology program, you have to complete these courses (number in parenthesis is number of credits):

       Business and Personal Mathematics (5)
       Human Relations in the Workplace (3)
       English Composition (5)

You can then enroll in the cosmetology program, which takes 5 quarters. Here are the first quarter courses:

       Professional Career (2)
       Cosmetology General Sciences (2)
       Hair Care, Hairstyling & Haircutting (3)
       Chemical Texture Services (2)
       Cosmetology Lab Clinic I (12)

Second quarter:

       Hair Color (2)
       Intermediate Haircutting (2)
       Advanced Chemical Texture Services (2)
       Cosmetology Skin Care (2)
       Cosmetology Lab Clinic II (13)

Third quarter:

       Intermediate Hair Color (2)
       Advanced Haircutting (2)
       Nail Care (1)
       Wigs, Braiding/Extensions (1)
       Cosmetology Lab Clinic III (13)

Fourth quarter:

       Facial Makeup (1)
       Cosmetology Lab Clinic IV (13)
       Advanced Hair Coloring (2)
       Business Skills I (1)

Fifth quarter:

       Cosmetology Lab Clinic V (13)
       Business Skills (1)
       State Board Preparation (4)

I would not have guessed that many classes were needed.

Tuition is $106.84/credit for Washington state residents. The above listed classes come to 109 credits, so $11645.56 tuition.

[1] [http://www.olympic.edu/cosmetology-ata-associate- technical-a...](http://www.olympic.edu/cosmetology-ata-associate-technical- arts)

</comment><comment><USER10> It is very topical. Currently anyone can declare himself a software developer. That largely explains the number of sql injection vulnerabilities, unencrypted sensitive data, unintuitive software UI, unpatched servers, cross site scripting vulnerabilities, and other moronic software design decisions.

For many years there was a sense that what is electronic doesn't matter. That breaking into someone's computer is at best a game while breaking into someone's home is a crime. That hacking and disrupting a power plant is an annoyance while bombing it is an act of war.

But I think it is changing. Non-technical people now realise that software is massively important in our society, and the alarming pace of data breaches is giving a bad reputation to the industry. I think a system of licenses for developers is inevitable.

<comment><USER11> > Currently anyone can declare himself a software developer

And that's great.

> That largely explains the number of sql injection vulnerabilities, > unencrypted sensitive data, unintuitive software UI, unpatched servers, > cross site scripting vulnerabilities, and other moronic software design > decisions.

No, what explains that is market variety. You want a $200 Facebook clone, you get what you paid for. You want a well built iPhone app for $30000, you'll get what you paid for, probably. No regulations can protect clients from their moronic hiring decisions.

<comment><USER12> _You want a well built iPhone app for $30000, you 'll get what you paid for, probably._

Yeah, _probably_. That's not nearly good enough. Not even close. There's an enormous list of extraordinarily expensive failures in the software industry. If I pay an actual professional a serious amount of money to do something for me, and it turns out they did a truly awful job (which is pretty common in the software industry), I expect to be able to claim recompense from their professional insurer and/or their professional licencing body. That's part of why I pay so much; the reassurance. Knowing I can rely on it.

Software, of course, has no such professional body, and exists in a twilight world of chancers and incompetents. Why should the software industry get away with knowingly producing crap and charging a fortune for it?

I'd be happy with a two tier approach; at the moment, if I want a wall built, I can pay a professional (with the expectations and protections that comes with the high price) or hire a day-labourer I met in the pub. There is no such choice in software.

<comment><USER13> > Software, of course, has no such professional body, and exists in a twilight > world of chancers and incompetents. Why should the software industry get > away with knowingly producing crap and charging a fortune for it?

This is not really correct. If you are hiring a development firm or an independent contractor, you stipulate in your contract that the company or developer must carry some form of errors and omissions insurance. I've never seen a contract that did not have this line item. Any reputable company or independent contractor will already carry this regardless. If they do not, avoid hiring them.

</comment></comment></comment></comment><comment><USER14> My jaw hasn't dropped so low in a long time. As stated in the OP I fail to understand the reasoning behing most of the licenses. Great job bringing this issue up.

<comment><USER15> Why work long, hard, and fairly for your money when you can use the power of the state (a monopoly on violence) to raise prices by creating artificial scarcity for your labor (and beget another monopoly)?

<comment><USER16> Ah, _you_ can be violent at any time. You can go get a gun with a five minute waiting period or go to the kitchen for a knife or find a blunt object and go be as violent as your pretty little heart desires. Of course the rest of us may react strongly to your violence but that is, of course, as it has always been. Your freedom to be violent ends where our freedom to be violent begins.

Or perhaps you mean violence === an expectation of pro-social behavior.

<comment><USER15> That's not what I meant. Sorry for the sarcastic tone. I'm saying occupational licenses enforced by the state are a means of granting political privilege to a group of people, at the expense of another group (usually the poor) through the use of coercion, i.e. violence.

This may sound dramatic, but it's true. Because if an unlicensed (non- privileged) person is operating in the market, even if they are reasonably qualified, they will still be targeted by the state on behalf of the licensed (privileged) lobby: First, the unlicensed person may be fined. If they refuse to pay the fine, they may receive a warrant. If they refuse to go to court, agents of the state will knock at their door, threaten to lock them in a cage for not paying their tribute, and ultimately use physical violence to force compliance.

<comment><USER17> >at the expense of another group (usually the poor)

Because hairdressers are some of the richest people you know?

I'm kind of okay with them having some occupational barriers to entry, actually. It's not like they earn a lot anyway, and it makes up for some of the absolutely egregious and _enormous_ political privileges granted to the 1% which are completely ignored _both_ in this article and by the people commenting on it in this thread.

</comment></comment></comment></comment></comment><comment><USER18> Percentages might help. Out of the 30% how many are teachers, engineers, skills trades, doctors, nurses, etc? I'm guessing a ton of these positions everyone would shrug and say yes, I want my doctor to have a license.

For the positions that might not be obvious why they require a license I wonder how many are because someone fucked up and caused a problem? Probably more than you might think. They generally just don't make rules up.

So maybe 10% of jobs that require a license (3% of overall jobs) actually need to be addressed. You'd never know that reading this piece. Reading this piece you are left with a sense of outrage the government is bad, why are they messing with people blah blah blah instead of an actionable list.

Let's fix the list, but realize that this is a political body writing this with specific goals probably paid for by a deep pocket interest.

<comment><USER19> why does your teacher need a license? background check, sure, but license?

<comment><USER20> My teacher needs a license to show that he has completed education that should make him competent, continues to maintain competency, and has not faced any questions of conduct or discipline which should rightfully deprive him of such license.

I would like this strengthened to include that the individual is sound on a psychological or psychiatric level, since many teachers work with children. True story, I faced a lot of abuse during my childhood and so was in therapy to deal with it. Waiting to see the therapist one day, I got to stare down an abusive former teacher who happened to be in the waiting room, waiting for psychiatric services. Since her employer manages its own health insurance, they knew about this person's history of psychiatric problems because they paid the costs for her services. But the local teachers union has made it so that unless you actually rape a child during class, there's no chance of being fired from the school board.

<comment><USER19> That's the core of the problem, the license means little because the union will generally fight tooth and nail for any teacher that faces discipline.

Which would you rather have, a teacher that taught and inspired your 6 year old kids, or a generic licensed teacher?

<comment><USER21> The union defends their members, that's part of their job. It's what prevents administrators from arbitrarily firing people they don't like - or, worse, people who stand up against malpractice on the administrative side. The administration has access to their own specialists who can and do "fight tooth and nail" for their side.

When someone is actually incompetent any halfway competent administrator will be able to fire them. It's not hard - it just requires collecting some actual evidence and documenting that you followed the processes correctly.

</comment></comment></comment></comment></comment><comment><USER22> An oldest economist article [1] that appeared on HN [2] opened my eyes to this issue.

[1] [http://www.economist.com/node/18678963?story_id=18678963&fsr...](http://www.economist.com/node/18678963?story_id=18678963&fsrc=rss)

[2] [https://news.ycombinator.com/item?id=2548399](https://news.ycombinator.com/item?id=2548399)

</comment><comment><USER23> Doing minimal safety training seems reasonable, I think. If it cost $200 to enter a profession, that wouldn't be so bad.

But two years and $10,000? What planet do these legislators think they're on?

(Licensingindustrylobbyus, probably)

<comment><USER24> It depends, to cut hair its no biggie, if you are dying/treating hair with chemicals than can burn the crap out of your skin I can easily see why this is required. We are litigious in the US, this is the cost of doing business.

<comment><USER23> > It depends, to cut hair its no biggie

It's a little more dangerous than you might immediately think. You're working with sharp blades and hot objects.

Edit: Oh, apparently, there's a serious risk of disease transmission. I hadn't considered that: [https://news.ycombinator.com/item?id=2549477](https://news.ycombinator.com/item?id=2549477)

<comment><USER25> Couldn't a private trusted 3rd-party company provide certification to verify my barber went to school for x or knows what he is doing?

Why does the government need to charge outrageous fees under serious threat if they dont'? (Honest question)

The concepts of trust in x organization is much clearer today thanks to the internet.

<comment><USER26> The government is the trusted 3rd party.

They price gouge because it turns out that they have a monopoly. The private company would also price gouge because they would also be a monopoly - <USER2> you would not be able to lobby the private company and vote for a different one...

<comment><USER27> >The private company would also price gouge because they would also be a monopoly - only you would not be able to lobby the private company and vote for a different one...

They needn't necessarily be a monopoly; there's nothing stopping multiple certification companies coexisting. Providing certification is not a natural monopoly.

<comment><USER28> Consumers don't know which certification is worth what. If you run a business you're always getting calls from bullshit consumer certification companies trying to extract money from you by playing on your anxiety about which recommendations consumers trust.

</comment></comment></comment></comment></comment></comment></comment><comment><USER29> Most of these licenses arise because the people practicing them wind up hurting, or even killing people. Examples include tour guides running over pedestrians while driving and entertaining [0]. Or software engineers writing code that has probably killed people [1], or "beauticians" being forced to work in near-slavery conditions [2], or professional drivers killing people [3].

0\. [http://m.sfgate.com/bayarea/article/About-to-be-silenced- S-F...](http://m.sfgate.com/bayarea/article/About-to-be-silenced-S-F-tour-bus- operators-not-6185055.php)

1\. [http://users.ece.cmu.edu/~koopman/pubs/koopman14_toyota_ua_s...](http://users.ece.cmu.edu/~koopman/pubs/koopman14_toyota_ua_slides.pdf)

2\. [http://mobile.nytimes.com/2015/05/18/nyregion/cuomo-to- offer...](http://mobile.nytimes.com/2015/05/18/nyregion/cuomo-to- offer-2-measures-to-improve-conditions-in-the-nail-salon- industry.html?referrer=&_r=0)

3\. [http://pando.com/2014/01/02/uber-driver-hits-kills-6-year- ol...](http://pando.com/2014/01/02/uber-driver-hits-kills-6-year-old-girl-is- not-our-problem-still-an-appropriate-response/)

<comment><USER30> > Most of these licenses arise because the people practicing them wind up > hurting, or even killing people.

Correction: Most of these licenses arise because those in the industry want to create a barrier to entry and use examples of morons doing their job poorly as evidence of need.

<comment><USER31> This "everyone is a moron we don't need regulations if everyone was a genius LIKE ME" attitude isn't particularly convincing. But it pervades this thread. It's full of people who can't imagine even the possibility that a regulation could be created for the good of people instead of with literally evil intent. If this is the new face of the anti-regulation side of the debate we've really reached a new low; it's not a debate anymore, it's rabid mindless religious extremism.

<comment><USER30> > But it pervades this thread. It's full of people who can't imagine even the > possibility that a regulation could be created for the good of people > instead of with literally evil intent.

Who writes the regulations? Ask yourself that. It's not the regulators, they just enforce the rules.

Regulations always start with the best of intentions, but are almost always co-opted by industry lobbyists to create barriers to entry in the guise of helping the common good. That hurts the common good and hurts the industry in the long run, all for the sake of lining the pockets of entrenched players.

I don't see you proposing a solution to this. I just see name calling.

<comment><USER31> I didn't propose a solution because it isn't a problem. Regulations protect people by forcing corporations, generally, to do something that's more expensive but better for their workers/customers/the general public because our society has decided (by voting) that we want certain standards to exist; I want to be able to walk into a restaurant and know that I won't get food poisoning and die without having to consult some privately owned and non- accountable review system. I want workers to be treated decently so they can support a family and be part of a livable civil society. These are basic, basic things that we've developed over thousands of years of civilization as expected common goods that the extremist hyper-libertarians like you see here are trying to destroy because they get in the way of someone's ability to make money by exploiting others. Because that's what deregulation does; it allows people with money to abuse the capitalist system to exploit others and make more money, since regulation is almost always used to prevent exploitation.

Sure the barrier to entry problem exists but honestly it's minor in comparison to the value the regulations have. It is HUGELY blown out of proportion by people here. Maybe it's more expensive to run your business safely and prove that you are but honestly I don't care, if you can't run a safe business society doesn't need to allow you to have one. We allow businesses to limit their liability in exchange for being good citizens; the regulations just make sure the businesses are holding up their end of the deal because we've seen through history, without them, businesses are disgustingly exploitative and destroy the lives of citizens and entire societies (see robber barons).

<comment><USER30> > I didn't propose a solution because it isn't a problem.

How would you know? Do you own a business? Have you ever run one? I have and do.

Are you talking from experience or are you just talking?

> Regulations protect people by forcing corporations, generally, to do > something that's more expensive but better for their workers/customers/the > general public

No, they don't. That's how you want them to work. It's naive to simply assume that's how it is, while having zero experience with either running a business or enforcing those same regulations.

Virtually every single regulation on the books right now was written by industry lobbyists. You don't even address this point? What do you think they're putting in those regulations?

Almost all the regulations are easy to comply for a large corporation, because they'll just throw people at it until they're compliant ... and very difficult for a small business, because they don't have the ability to jump through the hoops.

This has nothing to do with safety. Businesses which don't do a good job of whatever it is that they're doing go out of business fairly quickly or learn how to do it right. Those regulations are almost never enforced.

It's the mountain of paperwork, reporting requirements, licensing requirements, it's those sorts of things that choke the life out of a small business and they are _designed_ to do just that.

> general public because our society has decided (by voting)

That is really naive. Your representatives don't write laws. They just sign them. And they sign whatever is put in front of them and they are told to sign. Who do you think tells them to sign those laws? Hint: It's not you.

<comment><USER31> In this disaster of a post you assume that all regulations are evil and conclude that all regulations are evil; there are certainly a lot of words there, it's too bad you aren't actually saying anything.

I could take your post apart piece by piece but honestly almost every claim you've made is laughably absurd; your assumption about the level of corruption that supposedly completely dominates every moment of the lives of every regulatory decision maker is a joke, super villians like that aren't as common as you seem to believe. Every discussion starts with some token of good faith; a willingness to accept that people who disagree with you are not literally Satan. Without that you cant reasonably communicate with anyone about this topic so I'd suggest you do away with the extremist rhetoric or stay out and let the adults talk.

</comment></comment></comment></comment></comment></comment></comment><comment><USER32> Something else of note is that the majority of occupational license requirements exclude felons. Sometimes they'll put verbiage into the law saying that once someone has completed the requirements they can petition the board for an exemption, but what person would put in 1000+ days for a license to cut hair without knowing if their work was for naught?

</comment><comment><USER33> A lot of the examples seem to involve professions involving grooming people - barbers, manicurists, etc. While the required training amount might be out of line, it seems like some state supervision for these professions is needed because unhygienic or unsafe practices could serious consequences - ie, spreading disease.

So this seems less totally insane than it might.

<comment><USER34> This is licensing based on paying fees and completing classes, not - as in health codes for restaurants - based on the cleanliness or safety of the work place.

<comment><USER6> Most states require food prep employees to carry some form of food safety certification.

Any additional checks are above and beyond this and other basic requirements.

Of course, there's a good reason that both exist in food prep. Downgrading a restaurant only _after_ the typhoid outbreak isn't really serving the best interest of the public. And continuous monitoring/enforcement is too expensive.

</comment></comment></comment><comment><USER35> Although not directly related to the article, in some fields you just need to work under someone that has a contractors license. Many plumbers, electricians, builders, etc, aren't licensed, but they are employed by someone that is, and the owner of the company signs off on their work saying it is acceptable.

</comment><comment><USER36> If you'd like to see the fantasy paradise that would exist if we abolished these foolish regulations, come to England some time. Then hire the first guy in the phone book who calls himself a "plumber".

You would not believe the number of unnecessary holes in my house directly caused by a single plumber's mate (defined: guy willing to work for £8/hr) attempting to do his profession before we could physically remove him from the property.

Same goes for "builder", and to an extent even "electrician." It's amazing to watch, coming from America where people are required to be qualified for their jobs.

<comment><USER37> I've never lived in London, but I find this story intriguing, esp given the stories of the rigorous exams needed to become a black cab drive in Lomdon.

I'd expect that there are private certifications or organizations that guarantee a certain level of competency. Otherwise some sort of review site for contractors like Angies list should either exist or be a massive opportunity in a market like you describe.

<comment><USER38> There are private certifications eg [1] and review sites eg [2].

[1] [http://www.electricalsafetyfirst.org.uk/find-an- electrician/](http://www.electricalsafetyfirst.org.uk/find-an-electrician/)

[2] [http://www.mybuilder.com/](http://www.mybuilder.com/)

</comment></comment></comment><comment><USER39> Text only cache because site is broken at the moment: [http://webcache.googleusercontent.com/search?q=cache:www.bro...](http://webcache.googleusercontent.com/search?q=cache:www.brookings.edu/blogs/up- front/posts/2015/01/26-time-to-examine-occupational-licensing-practices- kearney-hershbein-boddy&hl=en&gl=us&strip=1)

</comment><comment><USER40> This has always baffled me about the US. Always complaining about the bureaucracy and lack of freedom of "socialist" countries, yet maintaining this absurd professional licensing that defies parody.

<comment><USER41> People in the US complain about the lack of freedom and bureaucracy in the US as well, a lot. The US isn't a Capitalist, low tax, low regulation, small government system (and hasn't been in a very long time); it's a highly regulated welfare state, with mid-upper tier taxation.

We have a total government system the size of Japan's entire economy. What else could come out of something that massive, other than extreme regulation, and eventual suffocation? It's not like they're just going to suddenly stop passing thousands of new regulations each year. The professional political class has nothing else to do, it's partially how they justify their existence.

<comment><USER17> >People in the US complain

This article isn't 'people' complaining. It's a mouthpiece mainly for a group of select US corporations.

You know they don't give two shits about hairdresser barriers to entry, either. Judging by the list of members, they want deregulation for the finance industry.

</comment></comment></comment><comment><USER42> Funny. The Greek economy has been criticized by many economic commentators for also having this kind of "closed-shop" paradigm. Not sure what their percentage is in comparison to the U.S.

</comment><comment><USER43> [http://fee.org/freeman/detail/does-occupational-licensing- pr...](http://fee.org/freeman/detail/does-occupational-licensing-protect- consumers)

"[A]n Oregon board regulating cosmetology raised the number of training hours required for entry from 1,500 to 2,500. According to Cato Institute author David Young, pressure for the change came not from disgruntled cosmetology consumers but from beauty schools that were able to charge more tuition and serve more consumers in school training salons."

</comment><comment><USER17> NEVER read a think tank's opinion before checking out who funds them first:

[https://en.wikipedia.org/wiki/Brookings_Institution#Funders](https://en.wikipedia.org/wiki/Brookings_Institution#Funders)

In this case, the fact that JP Morgan is a major funder should make you more than a little suspicious that they're proposing tearing down 'regulations'.

When they try to convince _you_ it's a good idea they talk about hairdressers. When they start writing bills to give to Congress it becomes about reducing capital requirements and deregulating derivatives.

<comment><USER44> Companies like JP Morgan _love_ regulation. They have the regulators in their pocket and it helps keep out competition.

<comment><USER17> So explain why they are fighting tooth and nail to deregulate derivatives, if they love it so much.

</comment></comment></comment><comment><USER45> Brookings has a long history of very biased studies. They seem to decide the outcome first, and then carefully craft a study to get the desired outcome. And since Brookings is constantly advocating for less regulation and "free markets" \- no matter the cost to society - I'm not surprised that they found some way to find that most people need licenses. Honestly, it isn't even worth my time to read the study to figure out how they gamed the data. I'm just posting this comment in case readers aren't familiar with Brookings reality distortions.

<comment> daniel-levin Can you substantiate your comment?

</comment></comment><comment><USER46> Anytime you purchase a permit for anything from the government you should stop and realize the government has confiscated your right to perform that task and it's selling your rights back to you.

</comment><comment><USER44> Interesting tidbit:

The Ewing Marion Kauffman Foundation surveyed over 12,000 small business owners in 38 states and 82 metropolitan regions to determine how friendly cities and states are towards small businesses. Licensing was "the most important regulatory issue" and "second only to the strength of the local economy in determining how friendly a state is to small business."

</comment><comment><USER47> Working in US is getting difficult for us.

</comment><comment><USER48> That's the problem with having 52 states having many smaller decentralised legislatures makes it much easier for low level corruption to exist.

Look at the dodgy court in Texas the "specialises" in patent law and the cases of tiny hamlets with massive police forces and speed traps.

</comment><comment><USER44> Just as a comparison, in the 1950s, only 5% of workers needed a government license to work.

</comment><comment><USER49> I'm a licensed CSSTWP [http://csstwp.com/](http://csstwp.com/) ;-)

</comment><comment><USER50> Citation for the 30% figure?

</comment><comment><USER51> "The more plentiful the laws, the more corrupt the state." -Plato

<comment><USER52> I don't think Plato's critique there is necessarily getting at what you're intending. Plato is arguing that direct commands by a ruler are superior to written statute laws, because they allow for the use of good judgment and have less scope for bureaucratic idiocy and corruption than a lengthy statute book does. He's not against the state imposing restrictions on anyone, he just thinks it should be done by direct command of wise philosopher-kings, rather than by codified law.

His system if anything quite strongly restricted what people could do in the economic sphere. The "producers" were one of the three classes kept strictly separate (the other two being warriors and rulers), and must follow the directions of the rulers, as enforced by the warriors, in order to ensure that production is in keeping with the needs and morals of the _polis_.

</comment></comment><comment><USER53> This is probably a good thing.. mainly for people to have job security.

</comment><comment><USER54> John Oliver rant about this in 3..2..1..

</comment><comment><USER55> License licenses license license.

</comment><comment><USER56> this article makes a lot of broad assumptions ("If licensing an electrician is for public safety then...") and relatively shallow conclusions ("upholsterers need a license, wtf?") based on them.

Full of weasels without a doubt.

<comment><USER57> Why did you cut off the quote? The full quote is: "If the rationale for licensing an electrician is to protect public safety, it is difficult to see what rationale supports licensing travel guides."

Moreover, the assumptions they're making are charitable. I think most people agree with licensing engineers, electricians, doctors and the like where doing their job wrong has serious consequences. But for the same reason, it's less clear what public benefit there is behind requiring florists, interior designers or ballroom dancers to be licensed in order to practice their craft.</comment></comment>


Scientists Discover Potent Antibiotic - <AUTHOR> http://www.wsj.com/articles/scientists-discover-new-antibiotic-a-potential-weapon-against-a-range-of-diseases-1420654892#b01g14t20w15 <comment><USER2> Previous discussion: [https://news.ycombinator.com/item?id=8852487](https://news.ycombinator.com/item?id=8852487)</comment>