Ask HN: Are you contracting on the side (while working full time)? - <AUTHOR> I'd like a secondary source of income. I like the idea of not having all my eggs in one basket. But I'm not sure there are any side jobs I could get that wouldn't require full days. Have any of you done this. If so how and what was it like? <comment><USER2> I tried taking on a side job last year and it made me miserable. The work was fairly easy, the people were great, and the money was decent, too. But taking on a whole new set of responsibilities and losing a chunk of my free time was just too much for me. Ultimately it just wasn't worth the toll it took on my mental health.

One issue in particular that I ran into was the difficulty in context switching between my day job and my side job. I imagined being able to do an hour here or there before or after work. But in reality I found it really hard to get any meaningful work done in an hour, which meant I needed to allocate larger chunks of time than I originally planned. That meant I often ended up sacrificing entire evenings, or chunks of my weekend on my side job. The difficulty in context switching also caused me to procrastinate a lot, which also made me feel terrible about myself.

<comment><USER3> Absolutely this.

I had the exact same experience last year and it fucked me up good with anxiety (which I've never experienced before) and I couldn't eat properly for weeks causing me to lose a stone in weight.

I had the exact same preconceived notions you did with the 1 hour block a day mon-friday. Seemed like it would be a breeze at first and easy money. The problem with this is it just turned into feeling guilty when I wasn't working on it, even outside of the allotted hour. I think I felt like this because there was no clear seperation of environment as I was be doing the work at home and the result was I felt like I was just working all the time.

I did learn a valuable lesson though and that is that my free time is a lot more valuable than I realise.

I will never again consider doing side gigs for anyone other than myself.

</comment></comment><comment><USER4> Yes. You have to learn a skill with demand that cannot be met. That is the easiest way to get side work.

Learn Salesforce development. I've accepted a new contract role that is full time hours and my older employer straight up told me, "We cannot match your new hourly rate, but here is still a raise. Feel free to work on things for us whenever you want, whenever you have time, remotely."

I'm nothing special, an average developer. But businesses cannot find enough Salesforce developers, so some take what they can get, even if it's part-time.

<comment><USER5> I would imagine that clients that would want to get contractors for Salesforce development would want those individuals working during normal business hours, which would conflict with an existing job. Have you found clients are more flexible in hours?

<comment><USER4> More flexible indeed.

</comment></comment></comment><comment><USER6> I suppose in a sense I do, although my "full time job" isn't development. I take care of my son at home during the day (and occasionally parts of the night), and otherwise work part to full time on software.

I've also worked part time contract gigs while working full time on software. It gets to be a lot pretty quickly.

I've come to think the impact on my quality of life isn't worth it. I'm so sleep deprived and the monetary rewards have never felt that great - especially now since I'm paid less than I have been in almost ten years. I think I'd feel a little differently if my son wasn't such a schedule mangler or I was earning what I'm used to, but... I'm fairly firmly in the camp now that my time is worth more than anything I can manage to get paid after a certain point.

Something worth considering is intermittently taking on smaller but lucrative contracts. Be selective. Don't commit to a long term slog in which you'll sacrifice your personal life and appreciation for your career.

</comment><comment><USER7> I actually did some paid technical writing on the side in 2019 on top of my full time job as a developer.

It helped a lot that the company I work for started a technical content agency as a new division of the company and was okay with me doing extra paid work for them outside of normal work hours.

If you're a developer who is also a decent writer, maybe something like this would work for you?

I actually found technical writing to be a nice change of pace from my day job. If I'd tried to do extra paid software work on the side I think I'd have felt burned out rather quickly.

If you want to know more about getting into technical writing, my email address is in my profile.

<comment><USER8> Could you please define what you mean by technical writing? I'm curious since it is such a broad topic.

<comment><USER7> Sorry for the slow reply.

Most of what I've done has been for clients that want to document how to accomplish something specific with a company's library or API. Usually this ends up being 1200-1500 words including detailed instructions and code samples.

A few weren't product specific, but instead about how to accomplish a specific task with React or Angular. Companies pay for articles like these because they hope to attract customers by providing useful information to developers. I think that's a fair trade, as long as the article is actually good and teaches something new to the people who read it. Personally, if I've read a good article or blog post I don't mind if the company mentions their own products at the end. It's not like they're forcing me to but anything. :)

I've done one whitepaper as well, though I'm not sure that qualifies as 'technical writing'. More like writing a high level topic that is _about_ a technical subject, but aimed at managers and executives who are thinking of adopting that product or technology.

<comment><USER8> Thanks for the reply!

That's interesting. I had always thought of TW as manuals and documentation. It never occurred to me that it could be "marketing". At my job we've payed people to write articles for Trade journals That relate to our products. But I never thought of it as TW. Now that you mention it, it think it obviously does.

How do you find these gigs? What's the going rate for 1200 words?

</comment></comment></comment></comment><comment><USER9> a few years ago i quit my full time job but negotiated a consulting arrangement with the company on an hourly basis.

it was beneficial for them because i was able to offboard and knowledge transfer much more effectively over a few months of part-time work as opposed to the standard 2 weeks notice.

it was beneficial for me because right out of the gate i had a consulting contract with a yc startup at a rate that was slightly higher than my yearly salary which i could use as social proof when reaching out to new clients and negotiating rates.

i ended up consulting for about a year as my only source of income where i took on a couple other clients through my network (ex-coworkers starting companies and needing help faster than they could hire, ex-coworkers referring me to others who were stating companies) and a few lucky connections through upwork (he contacted me on linkedin so upwork never got a cut of the invoices i sent). i've also tried toptal and moonlight but no contracts have come out of those platforms.

a year ago i took on a new full time job and i've been consulting on the side since. i agree with ananonymoususer in that i can have as much extra work as i can handle however i was lucky to have already created relationships with clients before getting a full time job. i'd imagine approaching a new client while maintaining a full time job is a harder sell than simply letting an existing client know that your availability will be reduced moving forward.

<comment><USER10> This.

I moved on to a company that was paying me a lot and i couldnt say no. Instead of 2 week notice i offered my former employer this option.

I fully disclosed to my prospective employer this relationship. I even carved out a clause that lets me leave the office once per month to be working elsewhere.

I also converted a job recruiting attempt into a contractual arrangement.

I dont have more time for anything anymore.

A few tips.

Former employers are a balancing act. If you were working full time for them, and doing good work, that is effectively their expectation. It will be hard to change it. Learn to manage it. Make sure the contract specifically states what you will do and what you wont.

Make sure you clearly state who you will be reporting too. Contracts can go sideways quickly if your expertise is no longer trusted by way of new hire with something to prove. This is mostly true for new contracting engagements. Former employers know your depth of expertise, new guys do not.

Don't take additional problems at your new FT employer until you know you can manage all the work across all co's.

Particularly, be choosy with your clients. Do not take startups for cheap unless there is significant upside. Your time is valuable and it should be paid well. Taking a job below market rate for your experience is a quick way to utterly destroy your motivation in doing a good job. Unless you are bored, the project is interesting, or unemployed.... Do not do it.

I am not a developer. I cant even write SQL. I work in a rather mundane field. However i am an expert in scaling that field with a good tech stack, and I can speak semi intelligently about tech infrastructure. I can even read a SQL query and immediately understand what it is doing.

</comment></comment><comment><USER11> I've been doing it for 35 years and it has been great. I've had as much extra work as I can handle. (Sometimes I have more than I can handle.) It's a great way to build/maintain skills, earn extra money, and create a reputation for yourself.

<comment><AUTHOR> Any tips on how you've found that work?

Is it all a local network of people that you've worked with or have you gone out and found clients?

<comment><USER11> I have never had to seek work. It has always been from people I knew or people who knew my coworkers. If one has good skills, the work will speak for itself and lots of repeat business/new customers will come knocking on the door.

<comment><USER12> Exactly. That's the reason why I don't understand that reasonably senior people ever have to go through that whiteboarding crap (or actually through anything more than a friendly chat).

<comment><USER13> Not everybody has done as good a job maintaining their network. I'm really bad at that sort of thing.

<comment><USER14> And for regular jobs (permanent or a long 6-12m contract), you might get referred by your network, but the company needs to whiteboard you all the same (it's policy!). The referral probably prevents your CV getting binned at least.

<comment><USER12> If you apply where you have no clout; if I get an invite from my network I assume no hurdles aka based on that they know what I can do for them and that the CTO (in my case) simply removes this requirement.

<comment><USER14> Interesting. Honestly that feels alien to me, and it might be for a number of reasons, including inadequate networking, not "selling" myself well enough, or being too much of a team player to not stand out as the 5X-er or 10X-er who you just have to hire to solve those tech issues that will double your business or whatever.

To counter this, my experiment at the moment is in freelancing at moonlight, but where the client is non-technical and so getting a non-tech to non-tech referral means the client couldn't whiteboard me* if they wanted to, no more than I can white board my dentist. They will base their decision on the trust of the referral, and the fact they can try me out first / easily fire me anyway.

My question to you, is what sort of companies let you skip the hoop jumps? Would Google / Netflix etc allow this, or are they too standardized? I can see a startup allowing this or even needing it as an early employee is much more than just an algo remembering machine. What about a medium size co?

* I just noticed how similar "whiteboarding" and "waterboarding" sound. :-/

<comment><USER12> > My question to you, is what sort of companies let you skip the hoop jumps?

Hard question as I did not apply to many, but the largest offer I had was a company with some 150k+ people and I could just go in and start. I knew the CTO from a project in another company (he was the CTO there and we were contractors); the project failed but we kept in touch. I find (my prejudice) that kind of scale very much not interesting to work for; I like companies < 500 people.

For Google/Netflix(/Facebook/...) I definitely cannot answer as I never wanted to work for those companies and my network is local so I am nothing to them. In working for a very-large-company I think I would only consider microsoft research as I really love what they are doing [0] (and would work there almost for free), but like said, my network is far more local.

[0] [https://www.rise4fun.com/](https://www.rise4fun.com/)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> I'm a full-time freelancer/contractor but I did a lot of on-the-side freelance work when I was permanently employed years back. You need two things. 1. Your daytime job needs to be relatively easy and low-stress so you have surplus mental capacity to work more in the evenings and weekends. 2. You side gigs need to be simple, repeatable processes. I used to do things like custom email newsletter and blog design, which I could easily churn out using common templates. Pay-by-the-hour services such as SEO and PPC management can also be pretty lucrative.

</comment><comment><USER16> I've done it off and on. There is apparently insatiable demand for "cheap" web development FWIW. Check with the local rotary club or "business club" in your area that has a bunch of local business owners.

Embedded development is also pretty much in demand, more so if you have FPGA skills as well.

As with most things different skills give you different places where you might hunt for piece work.

Don't do contracting on the side if you work for any of the big tech companies. They will find out and they will fire you for it, whether that is legal or not.

<comment><USER17> >> Embedded development is also pretty much in demand, more so if you have FPGA skills as well.

Extremely so. Demand is vastly outpacing supply for engineers in this growing sector.

<comment><USER18> Doesn't that fall in EE realm, where salaries are lower than software or even web dev?

<comment> non-entity Not just that, I can get work as a software developer without any formal education whatsoever. I cant imagine that happening in a more mature engineering field like EE.

<comment><USER18> Good question. i wonder what areas FPGA programmers are needed. It seems an fpga for interfacing electronics would be somewhat different than just using fpga's to speed up machine learning processing.

</comment></comment></comment></comment></comment><comment><USER19> A card game to complement my lectures on innovation (adjunct prof with a 10 session syllabus). I figured rather than do only case studies and maybe a simulation (those are typically not great), I'd leverage my interest in board games to craft a game with a strong academic foundation. (I'm not a developer, so my options are a bit limited for side projects, but no-code is giving me a lot of hope and I have a couple of ideas for later this year)

</comment><comment><USER20> I've found I can handle an extra 10 hours of work a week without negatively impacting the rest of my life -- work, social, sleep, hobbies. I've gotten all my contract work from prior work relationships or referrals from friends.

At this point, I'm looking to switch from hourly to project-based pricing -- I'm finally efficient enough to charge by value; there are only so many billable hours in a day.

<comment><USER21> This is really the key. Decide how many hours a week you're available and use that to estimate your delivery schedules. If you can work more than the estimate, great, but never commit to more than you _know_ you can do.

Life got a lot easier after I figured this out :-)

</comment></comment><comment><USER22> I have contracted on the side a bit, but only for close friends and family. It's not really for the money, these are people I care about doing things I'm interested in, but at some point I found that having a formal paying relationship made everyone behave better, and kept me more interested. I'll admit the family side can be a little fraught- I think one of my relatives is still sore I wouldn't work past a certain point for free, but I think the boundaries are worth it.

I'm lucky in that I've been a career generalist and my personal network includes business owners. A lot of small to mid-sized business owners really want a second opinion on whatever the heck it is their full-time IT person is telling them. If you are already serving as that second opinion, its not inappropriate to so "hey, I'm happy to help out here, but I could be a lot more available on this sort of stuff in a formal consulting relationship." If they are interested, you can pursue it, if not, you've established some boundaries.

</comment><comment><USER23> I do a side project once or twice a year, usually for one of the companies I've previously worked with. They usually get in touch when they've got a small, relatively self-contained project and need some additional resources to deliver it faster. As a former employee they know I'll understand what's going on and will be able to deliver, and I know what's expected from me. It's a good arrangement for everybody that's certainly much easier when you leave a company on good terms!

I'd be cautious about the idea of having it be a "secondary source of income" or anything - that's not feasible with a full-time role - but for my part I use the money to pay for hardware upgrades or similar. It's important not to over-work though; I'd be skeptical of doing any more than maybe the 120 or so hours I do in a year.

</comment><comment><USER24> I did this for a couple years when I was much much younger. I am not going to outright recommend no, but I should have been an order of magnitude more discerning. It is a wonderful recipe for burnout.

</comment><comment><USER25> I went down this route before going in full time with contracting. With a full time job, I was capable of billing between 10-15 hours a week and it was only sustainable for a few months for me due to the balance of downtime and family time. Besides the extra cash, the economic diversification and the new skills acquired during this time made the venture worth it, but YMMV. Good luck!

</comment><comment><USER26> Yes. I work on web design/development with a focus on brand development & auditing, and general marketing/seo. I've had a couple small gigs the last month and one ongoing partnership. Probably put in 15 hours of work last month between the two. [https://bigboys.nyc](https://bigboys.nyc)

</comment><comment><USER27> Yes, I've found that it gives me more variety in the work I do than I get in my day job. I find that for me an extra ~20hrs a week is all I can do without losing the will to live, but it's nice to know that if I got laid off from either position, I would be fine, and if I don't then it gives me investing money.

</comment><comment><USER28> I did some years back, and at first it was nice. But it wasn't long before I wanted some free time and was happy when a contract was done. It's a way to try out working with different things for different companies. Also a way to overload yourself and burn out if you're not careful.

</comment><comment><USER29> Currently no, but very often yes for the last 5 years or so.

It's a lot of work, sometimes OK and sometimes very stressful.

</comment><comment><USER12> I used to do that but it was quite stressful. I prefer creating products on the side instead.

</comment><comment><USER30> I did for a time but once my side gigs dried up I didn't look for more. Doing the work wasn't difficult but securing work is a huge PITA and I've got too much going on in my life to do that right now.

</comment><comment><USER31> Yes. I allocate 10 hours a week to this. It can be kind of overwhelming. I use the funds to pay for side projects and hobbies.</comment>


Crowdsource Your Company's Bonuses - <AUTHOR> http://blog.idonethis.com/post/24062277595/crowdsource-your-companys-bonuses <comment><USER2> Here's an idea: remove all politics from the process completely and do away with performance-oriented bonus systems.

They've taken what was essentially a way to make their work into a game and... made it into a game.

Making work into a game is an idiotic idea. Make work into work. Pay people a fair salary that gets their minds off of their salary. Align the goals of the employee with the goals of the company, not their own selfish instincts to game whatever system you put in place to try to "reward" them. Make the success of the company be their reward, whether that be with equity or simple fair across-the-board raises.

I worked for a company a few years ago that used to be full of politics and internal conflict. One year they did extremely well and decided to simplify and give everyone a straight $10,000 bonus, from the janitor to the CEO. There was no way to game this: everyone knew how much everyone got. Everyone was proud of the company and each other. Instead of secretly discussing how much bonus other people got behind their back, everyone was excited and happy and asking each other "so what are you going to do with your 10 G's?" It was the best day at that company.

You can argue against this all you want, but I experienced a level of alignment there that was unparalleled. The people who get off on doing all they can to advance their own paycheck and get a bigger bonus only ended up hurting the company through their politics and game-playing. They were invariably working in a self-centered direction tangent to the company's goals. When that was removed, the dynamic changed completely and it was remarkable how much improvement the company saw not just in the workplace but across the board. New products were released that year that were better than the last, quality improved, efficiency improved.

These fears that in order to achieve high performance, we must reward the high performers with carrots and hit the slackers with sticks are a bastardized religious fiction.

<http://en.wikipedia.org/wiki/W._Edwards_Deming>

<comment><USER3> > One year they did extremely well and decided to simplify and give everyone a > straight $10,000 bonus, from the janitor to the CEO

So the guy that watches YouTube videos for 3 hours, and the guy that takes 2 hours worth of smoke breaks a day got the same as the gal that works 50 hours a week and fixes the majority of the product issues?

Contributions are not equal so please don't treat them that way or you will only disenfranchise your _BEST_ employees.

And remember, your best employees are the ones that have the most options elsewhere....

<comment><USER2> I expected this response, thanks for taking the time to write it.

The problem is one of statistics. Your employees will always, no matter how hard you try, fit on a bell curve.

Here's the hilarious way most people think about this bell curve (just imagine this defines the set of employees actually working at a company, not just new hires; because it does): <http://www.intellectcorp.com/images/bell-curve- hiring.jpg>

Say you have 100 employees. There will always be 4-5 who will be exceptional—the upper quintile. There will always be 4-5 who are at the bottom—the lower quintile. The problem is, this will always be true. If you fire the bottom 5, then there will be a new "bottom 5". People will always be worried about their job, the pressure of not being fired will be a negative- feedback motivator (or that's the idea), and the top people at the company will continue to be rewarded.

Two questions:

1\. Do you truly think that the top employees are working harder because you reward them? How much harder?

2\. What about the other 90 employees?

Your top employees aren't what you should be worried about. Firstly, if you depend on them and (as you say they have the most options elsewhere) heaven forbid they leave, where does that leave you? Fucked, that's where. Second, even if you think the top employees are doing the work of 2 people each, or even 3 people (which is a lot to expect of anyone), 80-90% of your work output is _still_ being done by the thickest part of that bell curve.

What's the answer?

Improve the system. Making systematic, broad improvements will help everyone do better work. This is the true reason the straight 10k bonus worked so well: it was a systematic reward. But other things work even better: provide free lunch and your employees won't leave the office as much. Provide free dinner and they'll stay late. Bam, systematic across-the-board improvement in working hours and efficiency that no bonus would ever come close to. Allow frequent employee skill-improvement days, make them focus on honing their skill sets for 1 day a month without the stress of real work. Bam, everyone gets better, not just the top 5%. There are countless others.

Figure out how to make the 90% in the middle work the hardest—and trust me, it's not by promising them bonuses if they can make it into the top 5%. That might be motivating for the upper 10% or _maybe_ 15%, but not the rest. Improvements to the system they're in are the only good answer. The antiquated structure of bonuses and rewards and the punishment of firing is a religious myth left over from protestant and catholic beliefs in punishment and shame. They're not based on behavior, they're not based on science, and they're simply not true.

Are monetary rewards entirely bad? No, of course not, people should be rewarded for doing good work. I personally think that this reward should be in the form of simple, understandable fair compensation, with as few barriers to that as possible. Other reward systems may work too. But they should not be the focus—the focus should be on improving the system your employees work in, as it will result in gains an order above what's possible with carrot and stick.

Again, please read <http://en.wikipedia.org/wiki/W._Edwards_Deming>

<comment><USER4> > even if you think the top employees are doing the work of 2 people each, or > even 3 people (which is a lot to expect of anyone)

Claim: in software or engineering, your top employees are doing the work of a thousand people, or an infinite ratio of some of their fellow employees. No combination of administrative assistants at Google is going to program Google Chrome or even a sorting algorithm. No combination of HR people is capable of calculating structural loads.

Claim: (more arguable on Hacker News). Successfully managing a medium or large organization is likewise a skill shared by very few people. Managing humans is like programming on the most testy and finicky AWS nodes you could ever imagine. They don't do what they're told, they do other things, and they may return wrong results. You are responsible for making sure the group performs as a whole. This is engineering of a different sort.

There is a fundamental impedance mismatch between the amount of dollars required to sustain life (outside of serious health issues, this does not greatly vary from person to person) and the dollar productivity of each individual.

Arguably every great tech organization (commercial or non-commercial) has a few people who are 1000, 10000, or 1 million times as productive as others. People like Linus Torvalds, Richard Stallman, Jeff Dean, Urs Holzle, Guido van Rossum, or DHH. That is how they became great tech or engineering organizations.

The Bell Curve may describe the population distribution of intelligence (though ability on any given trait may be different). But as a manager or recruiter your duty is to select highly nonuniformly from the right tail of that curve. Your ability distribution should be as radically right skewed as possible, and should not really resemble a bell curve.

In short, "equal bonuses for all" -- with the same amount going to both the guy who didn't do much work and the guy who picked up after him -- is a great way to demotivate your best people. And this will cost you a lot more than 2-3 of your medium employees, it will cost you a guy who did 1000X their work, and perhaps it will cost your whole business. All that matters are your best, with them you can rebuild anything.

<comment><USER2> "All that matters are your best"

I agree with some of your ideas, but in my humble opinion, this attitude will cost you your business faster than anything.

</comment></comment></comment></comment></comment><comment><USER3> On the face of it this sounds like a good idea, but I see some problems. For example, this presumes that others can understand the value of my contributions.

If I can accomplish something in 2 hours that takes someone else 16 hours....I could very likely go unnoticed. But if I bring donuts for everyone every Friday I bet I get a bigger bonus because people really like me.

My concern is this exchanges reward for actions highly visible to your boss, to reward for actions highly visible to your peers. A combination of the two would be preferable to me

Actually, this already exists in many companies and it's known as "360 feedback" where your co-workers (in and out of your dept) are asked their opinion of your performance before your review. This feedback is factored in to your review.

<http://en.wikipedia.org/wiki/360-degree_feedback>

<comment><USER5> Shopify employee here - Unicorn makes accomplishments highly visible to both your boss and colleagues. The bonus is that if you do something for a colleague, your boss will find out via Unicorn rather than you having to say anything.

<comment><USER3> My point is that "Unicorn" is a reporting tool. It still takes peers (instead of just your manager, aka the "old way) to understand and accurately value your contribution.

My concern is that not all actions are equal, but the recognition seems to be.

My question is do I get more "points" for fixing the thread dispatcher in the kernel...or do I get just as many for helping you understand how to upload a file to Sharepoint?

That's where you can disenfranchise people. However, I like the idea and to me it is a good step in implementing 360 feedback as part of a review and bonus allocation.

IMHO, combine peer feedback as an equal component of bonus allocation along with management assessment and I think then you have a winner.

<comment><USER6> You get more for fixing the thread dispatcher:

"Everyone in the company sees [your] plaudits and can pile on more unicorns if they agree that [you] did an awesome job."

The only person who will be impressed by you helping Bob upload to SharePoint is Bob. Total score: 1-3 unicorns.

Every engineer will be impressed that you fixed the thread dispatcher. Total score: 1-3 unicorns * # of engineers.

<comment><USER7> Sounds great in theory, but that assumes that every engineer is spending time every day monitoring all of the accomplishments by every other engineer just to make sure everything gets valued appropriately. I suppose the answer to that is, "Well, you (or somebody) could tell everybody that you did this wonderful thing," but then you're right back in the position of having to do self-promotion to get recognition for your work.

<comment><USER8> Shopify intern here.

I've worked Unicorn in to my daily workflow. I can't say everyone (or even anyone) else uses my system, but Unicorn is my first stop of the day when I sit down at my desk. I look over all the unicorns from the previous day, distribute points as I see fit, and move on with my day. Rinse and repeat daily.

It takes all of ~2-3 minutes out of my day. I can see how this technique wouldn't scale well once employee numbers get too big, but it seems to work well at ~100 employees.

</comment></comment></comment></comment></comment></comment><comment><USER9> I haven't met anyone with a nice word to say about performance reviews.

If you are performing well and delivering results, to then have this annual review process which gives you a big list of all of the extraneous areas that you 'need to improve on' can be a complete sap on the old motivation.

Especially if it's accompanied by the typical 1-2% pay increment. That can really be a drag....

I've quoted this article on the topic a number of times, but it's spot on IMO - [http://headrush.typepad.com/creating_passionate_users/2006/0...](http://headrush.typepad.com/creating_passionate_users/2006/02/mediocrity_by_a.html)

If you're going to do them, performance reviews should be about identifying the areas where people are great, and working out how to extract more of that....

<comment><USER10> Yeah, the biggest issue with management in general (and performance reviews in particular) is that it's focused on what people are doing poorly at/where they need improvement.

Good managers find out what each employee is awesome at and get them doing it. If you hire someone and what they love to do and are great at isn't what you need at your company, then you've hired the wrong person. But I know lots of people who left a job because they kept asking to be moved to a different role, different team, etc, and nothing happened.

Managers: focus on what each person is great at and loves to do.

<comment><USER11> It's a pendulum. If management blows smoke and kissy faces all day at me telling me my poo doesn't stink, that's not helpful. If they only point out what is being done incorrectly, that's not good. A blend between the two plus upward reviews (my opinion) have been best when i've seen them in use.

Unfortunately, most companies and people don't design and execute performance reviews well.

</comment></comment></comment><comment><USER12> That is going to work well when the employees starts to gang up together and give each other unicorns in return for their unicorns.

<comment><USER13> I wrote the first version of this at Shopify.

We anticipated the need to see this kind of behaviour, so there's clear auditing trails for everything that HR and Accounting can see where the bonus money's going.

Having said that, we haven't seen this problem appear yet.

</comment></comment><comment><USER14> I hate bonuses. I'd rather get equity or a bigger salary. I'm shy and I don't like pandering for attention. I just like getting things done, finding ways to make it easier to get things done, and shipping code so I can go enjoy a beer. I could really care less for bureaucracy and competition. It's inefficient.

</comment><comment><USER15> Initial issue/concern I see is that it would seem people who have more internally-interactive/colleague-facing job roles would unfairly receive more unicorns/more $$. So workers who are pretty independent or mostly external- facing would be less likely to receive equitable bonus/appreciation for a job well done. Of course the client-facing positions can more easily have another metric for determining bonuses, though I think many times those metrics are pretty flawed.

Anyway. I like the idea of crowdsourcing a bonus, but think it needs to have a lot more nuance in it than it appears exists in Shopify's approach in order to actually be a fair and robust tool for bonus determination. Love the unicorn touch, though!

</comment><comment><USER16> This sounds similar to what Rypple is doing: <http://rypple.com/>

From the comments, it seems like no one has tried to game the system but I'm wondering if in a large corporation, anyone would try to game it?

</comment><comment><USER17> My approach has been to just to ignore reviews, compensation, and bonuses altogether. People are simply not capable of getting this right. Everyone knows how dishonest people can be, especially in the workplace. To have any sort of review system requires and assumption of honest reviewers, which isn't even close to reality.

The job market will sort things out in most cases over the long term.

</comment><comment><USER18> I don't remember the exact details, but I have been a long time happy customer of hotdrupal.net

The owner Steve made something like a request for bonuses for his employees and any extra money sent went straight to the employees.

I thought it was a nice gesture. Not exactly what the article is talking about, but it does seem to literally be crowdsourcing bonuses.

</comment><comment><USER19> I think a hybrid performance reviewing system would be the best: supervisors, supervised and peers. It is frustrating that managers do not get evaluated for their management capabilities - why not let those who they manage have a saying? They, better than anyone else, know how good of a leader this person is.

<comment><USER13> Shopify employee/original author of unicorn here.

This bonus/props thing is really just for fun and recognition more than anything else. Performance reviews and salary adjustments have their own separate process.

</comment></comment><comment><USER20> There is also this older hacker news item that's relevant: <http://news.ycombinator.com/item?id=620546>

</comment><comment><USER21> There's also DueProps, who turn this into a game: <https://dueprops.com/>

<comment><USER22> <http://angel.co/dueprops>

Looks like this is the tool that shopify uses. See the comment from the CEO.

<comment><USER23> DueProps is loosely modelled on Unicorn

</comment></comment></comment><comment><USER24> article snippet: "logs into unicorn"

me: _vomit and close browser_</comment>


Ask HN: anyone interested in forming a group to review each others' copy? - <AUTHOR>

I'm creating a new site for an iphone app I've developed, and I've been writing a lot of copy. It'd be very helpful to me get others' feedback, especially from folks here who are in the same boat. At the same time, I'd be very happy to provide feedback for others. I am not a professional writer but I do think I'm able to provide constructive criticism for most kinds of writing.
In the past I had created a web site, hallwaytesting.com, which was supposed to be a community for people to get usability and give feedback on their sites. I shut it down because I and one other person were providing the majority of the feedback, while most people would only ask for feedback and never give it. I'd like to prevent that from happening again, so I think it would be better to have a private, closed community (or group of communities) of people who could learn about each others' writing needs over time.
If it's an indication of the kind of the writing feedback I would give, you can have a look at http://www.usabilityfeedback.com/example/overall_impressions.html . I would probably not go into such exhaustive detail (the above is a paid service), but it should give an idea of how observant and articulate I am.
I'm not sure how to get something like this organized, so if someone's interested and capable of organizing - please lead the way! <comment><USER2> I am no longer a professional writer, but most of us I know are happy to give feedback if specifically asked. (As the saying goes, it's a lot easier to be an editor than a writer.)

The problem I've had with doing startup copy reviews is that it often bleeds into product critiques. As Sean Ellis says, if your survey.io question responses are in the 25-40% range, the issue is often your positioning, not your product.

I'd be happy to join you in this endeavor, but I think you're asking the wrong questions. I think you should really focus on getting real user feedback rather than "expert" feedback on how to make your positioning clearer. Again, your positioning itself may be wrong, and only real user testing and questioning will make this evident.

<comment><AUTHOR> I think you make many valid points. Get user feedback, whether by asking or by doing a/b tests or whatever, is definitely the surest way to know if your copy is effective.

Still, I think that getting feedback from your peers can be helpful. Your peers can answer basic questions like, "Does this writing make sense?" and "Is it interesting or boring?" They can also offer suggestions, like "Try speaking to the users emotions rather than simply stating what your product does."

I think it would also be useful to get feedback when it's time sensitive. For example, I'd like to get feedback on the copy of my iPhone app before actually releasing it, since most app sales occur within the first 6 weeks of release. Getting feedback beforehand seems like it would be useful.

I also want to clarify that my intention is not just to share marketing copy for feedback, but also blog posts of any kind - technical, personal, whatever. (Unfortunately I can't update the original post to specify this). In those cases I imagine discussion wouldn't revolve around marketing, but just around writing.

Thanks again for your feedback!

</comment></comment><comment><USER3> Lacking this type of a group, here are some ideas to get feedback on copy:

1) If it's a title or something short, take out Google Ads and see which ads yield the most clicks.

2) If you want to get more in-depth feedback, consider a service like <http://www.feedbackarmy.com>. (Disclosure: it's my service). Feedback Army is nothing more than a front-end to Mechanical Turk. I'd summarize what I expect someone to take away from the copy and ask those as questions to see if the reviewers "get it". Also when you do this, small mistakes (like spelling errors) will get picked up. I see this all the time.

3) I usually find a friend to read my copy. Barring those, I harass my sister on Skype. This works too.

Best of luck!

<comment><AUTHOR> What's your sister's Skype username?

I kid, I kid. I've been sending my writing to a few friends as well and that's been useful. However, I'd like it to be a reciprocal activity, as I'm quite happy to read other people's work and comment on it. I also think it'd be nice to, in a way, work together with fellow HN folks for an extended period of time.

</comment></comment><comment><USER4> Why waste 20 minutes of a professional developer's time, multiplied by the average number of reviewers, with a bonus for bad advice due to inexperience?

You know those clients who think programming is easy? Writing and reviewing copy is hard. So is pretending that you're an unbiased fresh-minded user, in a group of novice reviewers.

<https://www.mturk.com/>

1) Tell me what you think the site is for. 2) Is this site attractive? 3) Try to perform task X, cancel before it asks for credit card info, and tell me what the most annoying thing was. 4) etc.

Send them several sites to review, including yours and your competitors'. Save $200 or heaps of everyone's time. Or pay a professional.

<comment><AUTHOR> Personally, I would not find it a waste to spend 20 minutes reading and providing feedback. I think it would hone my own writing abilities. Also, I wouldn't mind if I got bad advice. Live and learn.

I picture this as a good way to a) get feedback, b) improve your writing skills, and c) connect with other developers. Mechanical turk can provide a, might help with b, but in no way can provide c.

That said, it's definitely a good choice if you just want feedback on your copy. An even better choice is a/b testing.

</comment></comment><comment><USER5> Really cool idea. I'd be interested in joining and perhaps adding some thinking to how it might leverage game mechanics to make it more interesting... letting the best/most prolific editors/proofreaders/copy writers rise to the top.

Do we simply create a www.stackoverflow.com type system for web copy?

<comment><AUTHOR> Something like stack overflow is not what I would desire. It's simply too large, whereas I'd rather "work" with a smallish group of people. Or perhaps have multiple groups of people, and mix up the groups periodically.

</comment></comment><comment><USER6> I'm interested.

I think the easiest way to kick things off might be a simple reply-all discussion by email.

<comment><USER7> Agree, was going to suggest a Google group.

Whatever gets setup, add me to the list: email@example.com.

</comment></comment><comment><USER8> I'd be interested as well. I think it would be best to follow the model used by online peer review sites like critters.org. Ie, you have to do n number of reviews before you would have your own copy reviewed. This worked very well.

<comment><AUTHOR> could you please send me an email? my address is in my profile.

</comment></comment><comment><USER9> It's interesting that you shut the previous community down. Why didn't you iterate? Force people to provide X feedback for others in order to get Y feedback for yourself?

<comment><AUTHOR> I just didn't have the time for it and wanted to use the server resources for something else. It also just seemed like the spirit of the community had changed in a way that I didn't know how to reverse. Too many people who didn't know each other at all.

</comment></comment><comment><AUTHOR> If you're interested please email me (my email's on my profile). Once it looks like the thread's quieted down I'll send out an email to everyone. Thanks!

</comment><comment><USER10> Just make a google group - I'd join it.

</comment><comment><USER11> Is there a Google Wave / Group for this? My email is the the profile.

<comment><AUTHOR> I don't see your email. Did you put it in your "about" section?

<comment><USER11> No, sorry – it's "pornografi", domain is gmail.com

</comment></comment></comment><comment><AUTHOR> update: google group created: <http://groups.google.com/group/writing- feedback>

</comment><comment><USER12> Probably part of the reason your community ended up the way it did is because it is a very common paradigm that there are a few people who are deemed "experts" and the rest are deemed "beggars". I've belonged to a number of lists where a few people were treated like they had all the answers and everyone else acted like they had nothing to contribute and were only there to get support, not give it. (This is similar to the school paradigm where the teacher and one or two bright kids are viewed as the only folks having answers. So most people readily adopt such a social assumption.)

I have managed on some lists to reduce that tendency. One issue is that giving advice is "status-y" and often the people giving most of the advice try to hog status. One way they try to protect their turf is by vehemently arguing with anyone who puts forth a different point of view. This kills conversation and makes most people scared to speak up, especially if the owner/moderator is someone who happens to be doing this. One thing that helps reduce this tendency is a requirement to 1) cite your sources or 2) speak from first-hand experience. The second criteria means that saying "I think" and "I feel" and "In my experience/view" works better than saying "You should" or similar. This is hard when the express purpose of a forum is to give such feedback but keeping it from coming across as personal criticism makes a big difference.

Another thing that helps is "greeting people at the door". Encourage new people to post an intro. Make sure you personally welcome them warmly no matter how boring, bland, and uninteresting their intro is. Set the example for others to follow in that regard.

On one list I belonged to, introductions got replied to only if someone said something interesting and engaging enough to inspire commentary and discussion. I noticed that folks whose intro inspired conversation jumped right into discussion with both feet. People who got utterly ignored seemed to never post again. When I became moderator, I had two personal rules: 1) Greet _everyone_ at the door and 2) Don't tolerate 'orphan' threads -- if no one said anything in reply to a thread, I would go back after a few days and reply even if I had no answers. Sometimes this did help get other replies. If it didn't, the person at least did not feel shunned. Within a week, the list went from cold and low traffic, to warm, lively and high traffic.

Good luck with this.</comment>


Latest Version (iOS Support) - <AUTHOR> http://mattgemmell.com/2011/12/05/latest-version/ <comment><USER2> What the post _doesn't_ mention- devices that are unable to upgrade. As the iOS product line matures there are going to be increasing numbers of devices left behind and unable to upgrade to the latest OS. Not the majority of course, but it's something to bear in mind.

Also, why automatically target the latest and greatest? The app I'm working on doesn't use any 5.0-specific features and I would imagine that a ton of apps are the same. Develop for iOS 5.0 when you're using a feature it provides.

<comment><USER3> Apple hasn't left a device behind since the iPhone 3G, and those devices are a minuscule proportion of the userbase.

No doubt they'll start doing this to the 3GS et al at _some_ point, but Apple still sells the 3GS _right now_ so it will probably be quite some time before it stops getting OS updates. I think that is the case of devices that don't support the latest OSes, they can be ignored, and newer devices losing out on hypothetical future OSes is a bridge which can be crossed when it happens.

</comment></comment><comment><USER4> I don't know whether this person is trolling or not but if he's not, I doubt he's going to be good at running a business (might be great at running an app/product though).

While all the stated reasons are correct and beneficial, they are only to one party - the developers themselves. And unless all your money is coming from the developer (which by definition is not), you probably want to care more about what your users need and want rather than tell them what you can and will not support.

Running a business (a profitable one) is all about meeting customers' needs, expectations and wants. No matter how ridiculous they are. No matter if they are wrong and you are right. No matter if they are running your app on a machine from the 90's while you only support the latest and greatest HTML5/Canvas/Node.js/blah blah.

One customer that you don't support is not just one customer that you've lost. It's one customer that you've turned away from your product AND incentivized to spread the bad karma to everyone they talk to about your product. The next time they hear someone discussing your product, they're going to chime in "Yeah, I loved using them until they turned me away by not supporting <whatever version they had>. They don't care about me at all." While this statement is false or at least untrue (I'm sure you care about all your customers right?), the reality is that it doesn't matter. They are spreading a negative review and it's only going to fester and grow from that point on.

So whenever you're ready to build a business out of your successful website/app/whatever, remember that you need to support whoever is ready to pay you. That's all that matters.

</comment><comment><USER5> Part of the reason a lot of users are running the latest OS is that Apple sells twice as many devices each successive generation and the last three generations (including the current) run the latest OS.

Getting the last few percent of users to upgrade (assuming their devices support it) will be even easier now that iOS has PC-free software updates.

</comment><comment><USER6> I work on apps every day and I always recommend supporting 3.2 and higher. There are relatively few "necessity" api's in anything above that and there is another much simpler way of blocking out the older devices if you need to. Set the opengles flag to 2.0 and higher, this will automatically cut out all of the older devices while not punishing people who just don't upgrade.

Don't kid yourself that instapapers numbers are fully correct as Josh mentions as they are Sku'd because his app is built to work best with iPad and therefore all OS's will be higher. iPad is also owned by more tech savvy people and thus they are more likely to upgrade.

If you are making a simple app which has a nice interface always aim for lowest common denominator. If you are making a 3D game cut your losses and use the tech of opengles 2.0, if you are somewhere in between, always aim for LCD and you can always put your OS up if need be.

<comment><USER7> Why 3.2? It's the initial, somewhat broken iPad release. 3.1.2 or 4.0 are better minimum targets than 3.2

</comment></comment><comment><USER8> _Customers are not entitled to updates unconditionally._

The missing ability to cut a new paid version of the same app is an oddity of the iOS App Store. Some app versions should have limited free upgrade lives. You should feel dirty upgrading from GoodReader 2010 to GoodReader 2012 without contributing to the extra years of development.

Apple could add the feature, but they would have to stop blatant abuses (like AdBlock saying there's a new version every day). A simple version EOL of 12 months with a 6-week-back free upgrade period would be sufficient. In the Updates tab, your [Update] button gets replaced with a [Purchase Latest Version] button. Problem solved.</comment>


Ask HN: Referencing documents and emails in a knowledge base? - <AUTHOR> In my team we frequently copy and paste information from Google Docs, Jira and Slack to our knowledge base in order to make it searchable and reference it in other documents. We would often copy snippets of text, add a link to the source and a timestamp. We tried switching to Notion but it didn't allow us to reference external documents and it's too generic for issue tracking.<p>Is there a better way to do that? We are doing that mainly for meeting notes, important technical conversations on Slack or when receiving feedback about something we are working on. <comment><USER2> We use GitLab. We push markdown meeting minutes[^1] with a template to a repository, which makes them easy to parse.

We use wiki and issues to document everything. We put links to Slack conversations and quote messages of decisions or plan of action.

We also use GitLab for our paperwork (financial, taxes, etc) in a checklist.

We have an Operator's Manual handbook that tells how to somehow run the company (all the things that took us time and experimenting to learn, whether how to make an invoice and the laws relative to which information should be present, to where to pay taxes with GPS location and a picture of the building you need to go, which story and office, and what to put in the cheque). These were born after we've had trouble sending an invalid invoice.

Conversations with new hires lead to writing an onboarding document that cites the books to read, why we consider they're good, and why they're useful. How we work (issues, merge/pull requests/commit messages). This was born also by being confused when a ne hire came before we had their email and accounts set up or making the same remarks on code, etc. Early version here[^2].

Hopefully I can disappear and someone could eventually have an easier time stepping in.

Doing this, one of our core contributors who was unavailable for a year has been able to stay informed on where we're going because they're cc'd in issues and we strive to be clear in technical exchanges.

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

[^2]: [https://jhadjar.gitlab.io/kbase/hiring/](https://jhadjar.gitlab.io/kbase/hiring/)

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

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

[https://news.ycombinator.com/item?id=21427886](https://news.ycombinator.com/item?id=21427886)</comment>


What Web Can Do Today - <AUTHOR> https://whatwebcando.today <comment><USER3> What the web is increasingly unable to do today: provide text content _without_ requiring a code execution environment. This site is another example of that.

All non-application websites should provide all their content in semantic HTML at appropriate HTTP endpoints, with CSS styling (in as few requests as possible) as required per the design, and JavaScript (in as few requests as possible) that takes the semantic HTML and makes it interactive (potentially adding and removing elements from the DOM) as required per the design. The CSS should not depend on mutations resulting from the JavaScript, nor should the JavaScript assume anything of the applied styles (as the user agent should be able to easily apply custom user-styles for your site; e.g. Gmail only providing a limited set of styles that are managed server-side is laughable).

Thus, all content is readable and styled properly without requiring an arbitrary code execution environment. That is what the web was meant to be. Unfortunately, most "web developers" have made the web worse over the past 10 years because simple, functional, minimal technology is not impressive, and hipsters love to show off.

Nor does it help that there are few capitalist incentives for the web being open and malleable -- e.g. so users can easily use a different front-end for Facebook, or users can easily choose to avoid analytics or advertisements, or users might prefer to use the website rather than the app (providing access to personal details, contacts, location, tracking, etc).

The state of the web is emergent and I'm not sure what anyone could do about it (perhaps make a better browser?), but it really irks me when web developers pretend like they're actually doing something good or useful, or that the web is actually in a healthy state. In my experience, it's the people who don't talk about web development who are the best web developers; these are the people who don't wince when they write a HTML document without a single `<script>`.

<comment><USER4> You're talking about " _progressive enhancement_ ". It's a romantic idea, but it never happened, probably because it's too hard and the cost is not justified given most users run with their browser's default settings.

The precursor of the web made by Tim Berners-Lee dates back to 1980, but it was not based on HTML or HTTP. These happened later in 1990 and early 1991. But then CSS happened in 1994. And Javascript happened in 1995 at Netscape, but then Javascript was completely useless until Microsoft came up with the iframe tag in 1996 and then with XMLHttpRequest in 1999, which was later adopted by Mozilla, Safari and Opera. And people still couldn't grasp its potential until Google delivered Gmail in 2004 and Google Maps in 2005.

Not sure what the " _the web was meant to be_ ", we should ask Tim Berners-Lee sometimes, but in my opinion the web has been and is whatever its developers and users wanted it to be, with contributions from multiple parties such as Netscape, Microsoft, Mozilla, KDE/KHTML, Apple, Google and many other contributors, being a constantly evolving platform.

<comment><USER5> CSS happened in 1996, the first couple of years of the web we had no CSS, all styling was done with inline attributes up to that point.

The frustrating bit is that CSS was supposed to separate content/structure and markup, but now we have pages _without_ content but with markup where the content is loaded after the fact. This really overshot the mark.

<comment><USER6> Also note tat the separation of content and structure is mostly nonexistent as it's currently practiced. People like to talk about it as a Golden Rule, a holy virtue, and then proceed to write _even worse_ code than they did with tables. Generally, if you find yourself writing a tangled mess of divs in order to support CSS tricks, you're not really separating content from the structure. HTML5 semantic tags helped a little, but I still rarely see them used live.

(I'm not really convinced that separation of form and content is a feasible goal anyway - some elements of form are also content at the same time - <USER2> it's still a good goal to have.)

> _now we have pages without content but with markup where the content is > loaded after the fact_

This is absolutely ridiculous and it, combined with the idea of routing everything through the cloud in IoT / home automation applications, makes me wonder what happened to some good old-fashioned _engineering sanity_. It's like people are trying to create wasteful and insecure systems on purpose. ("And what would that purpose be," \- the cynic in me asks - "maybe monetizing people's data?").

<comment><USER7> Have you considered that there may be an actual reason _why_ people write a tangled mess of divs. Could it be because the entire model is crappy and people don't know what to do to make it show things the way they (or their client) want(s)?

<comment><USER8> In my experience, as a front-end developer, the usual reason I need a mess of divs and spans is to support a design that's not a good idea for a web page to begin with.

<comment><USER7> What is a web page, and why would a particular design not be a good idea for it?

If a web page is not a good idea, then what other technology should be used to achieve that design, as well as remain equally easy to distribute?

This mindset is precisely why native mobile applications continue to exist on the market, and why articles like this one fail to convince me. Nobody (except perhaps Facebook with React) tries to really fix the web to meet the demands its been given. Instead everyone insists that the demands should change to meet the original vision and limitations of the web.

Regarding the HTML/CSS interplay, flexbox gives me some new hope that reconciliation is possible (getting both semantic markup and powerful / precise styling).

<comment><USER8> It's easy to find designs that are bad ideas for web pages. The most obvious culprit is a design that's excellent for a magazine layout. Such designs typically don't take into account the document flow nor the idea that different people open their browsers to different resolutions and browser window sizes. Heck, some won't even take into account different browsers with different capabilities. I think I understand where you're going with the "what is a web page?" bit, but it doesn't necessarily apply. Especially since a web page can be whatever anyone wants within the limitations of a browser, but that doesn't mean a design works based on some person's idea of what they think a web page is. In most cases a design is limited by the browser, not necessarily by the code of the page.

I have no idea what you mean by your second sentence.

And then, are you referring to my mindset or some other mindset? Because I fail to see how you can know my mindset on the matter. If it's the other, I would agree. Except I would say that "fixing" something in terms of making it do something it wasn't intended in the first place may possibly create more problems than we are attempting to fix. I would suggest attempting new things to see if they work, which there are some doing just that. I would point out that flexbox is an example of this.

I'm excited with flexbox and have started pushing to make use of it more often, when warranted. It's hard to switch current code to it, but I think it's worth it. But, in the end, someone will eventually start complaining about its limitations and that it needs to be "fixed". Then we'll be back where we started, it's inevitable.

<comment><USER7> My second sentence was the entire point. If a web page is not a good idea because it can't support certain designs, then what would you suggest instead (that also has the other properties of the web such as easy distribution and is ubiquitous)?

I was referring to the whole mindset of "the web was not meant to do that". Well, yeah, it wasn't. But its already doing that, so we have to do something to make it properly rise up to the challenge.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Why is the Network Information API still a thing? I don't feel like it should even be listed on this website, as it's an anti-feature. It only encourages discrimination on connection types, as it doesn't expose the only important part: is this connection metered?

Developers are going to use this API to serve me higher resolution assets over my metered WiFi & Ethernet connections (assuming they are unmetered) and lower resolution assets over my unmetered cellular LTE connection (assuming it's metered).

WiFi vs cellular vs Ethernet is not important. What's important is the usage policy behind the connection, and in its current state, the Network Information API can _only_ be used to harm my user experience.

<comment><USER10> How can a web browser or even native OS determine if a user's wifi network is metered? I agree it would be nice in theory if there was some kind of "dollars per MB" API, but I don't see how web browsers could implement that in practice.

I work on a podcast app. When people are downloading hundreds of MB or more daily, they emphatically want control over when downloading takes place. In practice, almost all of them are satisfied with a binary choice between cellular or not. Those who do sometimes use expensive or slow wifi networks can blacklist them, which is also what network info APIs support.

There are also other applications such as metering apps, utilities that trigger actions upon network changes. Some very popular Android apps (e.g. Tasker, IFTTT) rely on network info for that; web falls further behind if web apps can't access that data.

<comment> pi-rat Through DHCP, the DHCP server can set different DHCP-options to notify clients what type of connection it is. For example: Android Phones set up to be a hotspot will set DHCP option 43 to a value indicating that it's a metered cellular connection.

<comment><USER11> I had no idea DHCP could even do that. What do Android devices do on unmetered cellular connections? How do they know if the connection is metered or not?

<comment><USER12> In android settings you can set if your connection is metered or not, and set thresholds / warnings.

</comment></comment></comment></comment></comment><comment><USER13> More stuff the web can't do that native apps can do:

* Request stuff from arbitrary URLs without a CORS proxy

* Open TCP and UDP sockets

* Be in the play store/app store AS a web app (home screen installation isn't enough; people still search for your thing in the app store, so even if the other problems aren't issues for your app, you _still_ have to wrap your web app in a dummy native framework and upload it if you want users to discover you)

* Scroll like a native app without Safari's stupid rubber band scrolling the entire app at very erratic times

* Barometric sensors

* Background geolocation, background anything really

* launchActivityForResult so you can work with other native goodies

* Intent resolution for native actions

* Geolocation when the user has inadvertently blanket-blocked Geolocation for all of Safari instead of per-webpage. Thankfully Chrome comes pre-approved on Android and you can't accidentally make this mistake as a user

* Face tracking and other OpenCV-based stuff (it's been done, but JS is still not fast enough on mobile to handle these jobs)

* Display long lists of styled content and scroll without stalling

Still though I think touch gestures is really the killer missing feature. There isn't any canonically-supported way to do things like a simple Android ViewPager or pinch-to-zoom. You end up implementing a bunch of spaghetti code to do these things even in the best frameworks (Meteor, Phonegap + Polymer, Angular et al.). And then you find out the way your spaghetti code reacts is a tad different from the way someone else's spaghetti code reacts to the same gestures. This stuff really needs to be standardized on a OS, browser, or _at least_ JS-framework level.

<comment><USER14> I'm not saying that native apps > web apps isn't true, but…

> * Request stuff from arbitrary URLs without a CORS proxy

CORS isn't a proxy; it's a browser policy/algorithm that allows a site the opportunity to say "yes (or no), other websites may (or may not) make AJAX requests here". The native app (unless you've informed it somehow, or it has done something malicious) doesn't have the user's cookies, whereas the browser does, and needs to be a bit more cautious.

> * Open TCP and UDP sockets

There are websockets, which aren't the same, I'll admit. Frankly, I'm not sure I want my web pages to be able to arbitrarily open TCP/UDP sockets. (I don't really want my native apps to be able to on whim, either…)

> * Barometric sensors

You mean like current air pressure? Are there common devices out there with these? (None of my computing devices have anything like this, for example.) (and what would I want this for?)

<comment><USER15> > Are there common devices out there with these?

Most Android devices since maybe late 2012 have had one. It's used for enhancing GPS lock, and whatever developers can dream up. All I've heard about it being used for is a distributed air pressure sensor network used for weather prediction, tracking, etc. [0[

0: [https://www.pressurenet.io/](https://www.pressurenet.io/)

<comment><USER13> Yes. The barometric sensors in the iPhone 6 and most high-end Android phones of past 2 years are sensitive enough to determine +/-1 floor of building movement, among a whole lot of other things. Very useful if you're writing a hiking app, want to determine if the user is in an airplane or not, trying to do vertical geolocation in a vertical city like New York or Hong Kong (subtract user's barometric reading from the weather station and you'll have it accurate to +/-a few floors), and a whole lot of other endless possibilities.

</comment></comment></comment></comment><comment><USER16> I think this is a well thought out list. I find it saddening that the 'health' of the web has deteriorated to a point where it's arguably uncompetitive for a vast number of modern applications including information discovery. I find it troubling that information discovery is moving away from the open web into non-neutral native application environments such as Facebook, Snapchat, and Twitter. Sure, information discovery on the web was driven by search engines. But I think search engines are really just part and parcel of the web (and arguably a feature that ought to have been built into web browsers from the beginning). A search engine doesn't express bias towards any information source (at least not by principle).

What troubles me is imagining a future where a vast majority of information that we consume is selected and curated by commercially driven, black box, non-neutral platforms.

I read an article recently about how Google is experimenting with removing the need to download apps by 'streaming' app content through a search box. Presumably, this is how Google search stays relevant in the post-web era where more and more information flows through walled gardens installed on mobile devices. Now, instead of re-inventing the web, shouldn't we be working towards 'fixing' the one that exists? This list provides a decent 10,000 ft overview of the problems.

Eager to hear your thoughts.

</comment><comment><USER17> This is really awesome :)

The truth is that the 'web' is really becoming the cross-platform application architecture.

Just a few years back I despised the very idea of this -- I want to program in my favorite language, not JavaScript (no matter how nice it is these days). I'd love to write applications that can act like native ones while also being cross platform (and use multiple threads at that!).

The fact that WebAssembly[1] intends to eventually add support for multi- threaded programs and languages aside from JavaScript (including GC'd ones) is amazing. Personally I believe these are the two biggest blockers for most people who would want to write an app using web technology.

Although they explicitly mention that their goal is not to replace JS in their FAQ, that IMO is more akin to a _"nothing will ever replace C"_ statement rather than a _"no apps will be written using other languages than C"_.

[1] [https://github.com/WebAssembly](https://github.com/WebAssembly)

<comment><USER18> The truth is that web is getting deeper and deeper into identity crisis. And if any platform is further away from having coherent architecture, it is web.

<comment><USER19> Exactly the same could have been said 15 years ago, and yet I'd argue it is the platform which has advanced the most in terms of both use and technology, and all this in spite of great standardization difficulties that other platforms didn't have to deal with.

I expect the same to happen in the future on both desktop and mobile platforms, despite the FUD.

<comment> vezzy-fnord It certainly has advanced the most, but that's a misleading presentation. It has advanced the most technologically only relative to its own starting position, i.e. it spent all this time catching up from blank state to where everyone else already _was_ (and still is).

<comment><USER20> The web does things those other platforms don't. Like run unsigned applications from any server ephemerally on any machine or system.

It's not playing catch up so much as adding powerful features without sacrificing it's core attributes.

<comment><USER21> Yes, and yes. The things it can't do are a pain, but the things that it _can_ do are things that are _very_ difficult to do in a standardized way with desktop/mobile. A cross-platform UI that simply works on just about any device was considered the holy grail of computing at one point. Everyone gave up on it after a while, and very quietly the web just "became" the platform that enabled such a UI, without limiting how such a UI can be created.

</comment></comment></comment></comment></comment></comment><comment><USER22> I really wish there's a way to check what other popular browsers can do without having to install them and open up the website.

<comment><USER23> Just click in on any of the features and you'll get details including the full cross-browser support.

<comment><USER24> This only works for some of them.

</comment></comment></comment><comment><USER25> Proximity sensor, ambient light sensor, vibration, access to contacts, change screen orientation... gee, I didn't know Firefox could do all that on my laptop!

</comment><comment><USER26> Browsers are great at rendering.

But they are terrible when it comes to exposing the raw power and capability of a machine to web apps that the user wants to trust. They spec their API implementations by committee (and committees of committees) and they rarely implement any spec in its entirety. The web is becoming increasingly fragmented as a result.

The web is good for "web pages", but bad for "web apps". The web currently has no concept of a trusted web app.

For example, we have been waiting for years for browsers to give web apps some way to access the filesystem, and all we have is an open dialog and a file instance (and the debris of the failed filesystem api). And when will web apps (not "web pages") get TCP or UDP? The browsers will never be able to match the module ecosystem and core power of Node.

The way forward:

1\. Give the power back to users. Give them a boolean way to indicate that they trust and want to install a web app.

2\. If the web app is trusted and installed, give it access to Node.

In a matter of months, this could exponentially boost web apps, lighten the bloated browser codebase, keep the focus on browser rendering, and keep committee fingers off web app innovation.

<comment><USER27> > The web is good for "web pages"

That is, after all, what it was designed for. Making web pages interactive in any way beyond a <form> has always been a hack.

> give web apps some way to access the filesystem

> And when will web apps (not "web pages") get TCP or UDP?

First, if it's in a browser, there isn't much of a distinction between "web apps" and "web pages". The browser, by definition, exists as a sandbox that renders unsafe data and code. Allowing any kind of access to the filesystem or TCP or UDP will hopefully never happen.

 _All networked software needs to implementing security concerns as the first and highest priority,_ If you aren't, you're putting the people that use your software at risk.

The browser must always[1] be limited in what it an do. If you want to do more (which is fine), write a standalone application. If your favorite platform doesn't let you write such applications, complain to the vendor or change to something that isn't hostile to software development.

> the module ecosystem and core power of Node.

That ecosystem is tiny compared to what is available in /usr/lib64/. I _like_ Javascript, but there is a lot more to computing outside that single ecosystem.

[1] Unfortunately current browsers are already over the line with what they allow pages to access.

</comment></comment><comment><USER28> Great site - quick usability notes:

\- Left align all features

\- Align icons

\- Align check marks

\- Consider using heavier-looking icons for supported/not-supported.

\- Promote the checkmark / ex legend to the top of the page.

</comment><comment><USER29> There's some issues with the code. navigator.contacts for instance, is not supported in my browser (or any browser at all, except for the most recent mobile firefox - I'm on a desktop) yet the website says that indeed, my desktop browser supports it. Same is true with navigator.getBattery() which supposedly will run fine in my console (it doesn't).

</comment><comment><USER30> What's the framework powering the site itself? I'd assume Bootstrap, but it has a Material Design look to it.

<comment><USER31> It's on GitHub[0], looks like Bootstrap with a material design addon.

[0] [https://github.com/NOtherDev/whatwebcando](https://github.com/NOtherDev/whatwebcando)

</comment></comment><comment><USER32> I'm very surprised to see this claim that Safari on OS X[1] can't handle Push Notifications, because it's been able to do that for a few years now. It's just not using Service Workers. It uses a separate solution built around the Apple Push Notification service. Granted, this isn't cross-platform and isn't a W3C standard, but it _is_ a capability that can be used today. But of course the whole section on "Push Notifications" is actually just a description of Service Workers.

[1] Which isn't actually a listed browser, but it has the X next to it when viewed in Safari and the underlying caniuse.com data is for Service Workers, which Safari doesn't support.

<comment><USER33> This website is about implementation of W3C standards, from what I grasped.

So it is not surprised that it doesn't claim Safari can handle push notifications. As it cannot.

<comment><USER32> No it's not. It's about HTML5 device APIs.

> _Can I rely on the Web Platform features to build my app? An overview of the > device integration HTML5 APIs_

It's just relying on data from caniuse.com about W3C standards, but the page itself does not say anywhere that I can see that it's ignoring non-W3C browser-specific APIs. Which is rather misleading.

</comment></comment></comment><comment><USER34> I think this should be called "What the web can do someday." I mean, push notifications? If it's not supported by mobile safari, it's a non-starter for actual widespread adoption.

<comment><USER35> The ticks/crosses on the front page are related to "your current browser" (see key). Click through for detailed stats from caniuse.com.

</comment></comment><comment><USER36> I've been imagining a website lately that displays progress in a similar way for all kinds of things. Sort of like a global to-do list. Should be fun to build.

</comment><comment><USER37> This is pretty great! Looking forward to more service worker support for more offline and push notifications.

</comment><comment><USER38> What does the X axis in the "browser support" graphs mean? It seems to go up to 30, and has fractions along the way, both of which suggest it isn't a simple version number. A percentage of something, perhaps?

edit: I guess it's market share? but which measurement?

<comment><USER39> It looks like version number, which seems like a really dumb metric to put on the X axis.

<comment><USER38> If it's a version number, it seems out of date - Firefox is at 42, Chrome at 46, but the axis only goes up to 30. That's why I suspect it's market share, but that's just a guess.

</comment></comment></comment><comment><USER40> It's interesting to compare the site opened in Chrome vs. Safari. I count 12 features desktop Chrome supports that desktop Safari does not (on El Capitan). A mobile comparison would be intriguing as well.

</comment><comment><USER41> Excellent choice of colour and tasteful use of animations =)

</comment><comment><USER42> I just want to know what the web can not do today,because I think the web can do everything today.

</comment><comment><USER43> what a time to be alive!

<comment><USER44> You can't be serious.

<comment><USER45> I'm a troll and even I find you unbearable!

</comment></comment></comment><comment><USER46> Still, people think the web is going to die and native apps are going to rule.

<comment><USER19> _some_ people think the web is going to die and native apps are going to rule. I'm not one of them. I'm guessing the "web based apps are crap" agenda is important to those who stand to lose from less people developing native apps (less chance for platform lock in, less projects for native app developers etc. ), and from those who used web based apps developed by not so capable developers.

That does not mean that web based apps will (or should) replace native apps. There will always be enough applications where native will do the work better, even as processing power grows, but to say the web is going to die is just wishful thinking on the part of those who want it to die. Ain't gonna happen.

</comment></comment><comment><USER47> >Behave Like A Native App

The keyword is "like".

</comment><comment><USER48> The Web Platform will be always criticised and that's a good sign. So many eyes on it are improving it much faster than other platforms.

</comment><comment><USER49> One of the things the web can do, apparently, is animated transitions with very poor frame rates :-/

</comment><comment><USER50> Good as a quick reference for the cross-browser state of HTML5 in mobile devices, but highly misleading for building mobile apps with web technologies, because if you plan to build an APP for mobile, chances are you'll end using Crosswalk/Chromium.

[https://crosswalk-project.org/](https://crosswalk-project.org/)

</comment><comment><USER51> What can Go do that Python cannot? Nothing. Why are there droves of projects that are migrated from Python to Go? Because Go is fast.

Web apps are too slow on mobile.

<comment><USER52> what does python or go have to do with this web page? what does go have to do with making web apps faster?</comment></comment>


The day the Pintupi Nine entered the modern world - <AUTHOR> http://www.bbc.co.uk/news/magazine-30500591

<comment><USER2> >"... We could smell the faeces of other humans in the air" \- they were probably a couple of kilometres away - "and we saw smoke in the distance.

one may wonder about human's abilities dampened by the civilization. When my dog(boy) smelled a girl in heat from half a kilometer i was impressed. While from his point of view i guess it was nothing special.

<comment><USER3> That's nothing compared to:

 _" One of the members of the search party, Joseph Tjapaltjarri, was sure he recognised the footprints they were tracking - he remembered the shape of the foot from his childhood and knew it belonged to his "skin-brother", Warlimpirrnga."_

He remembered the shape of a _footprint_ from his childhood and knew it to be a particular individual!? Humans are fascinating indeed.

</comment></comment><comment><USER4> > McMahon did not want to put the group under any pressure to join the > community, but he witnessed the moment they were persuaded. "It was > unthinkable that they would stay out there because the modern world was so > seductive. One of the fellows suggested, 'Give them a taste of the sugar and > they'll be in for sure.'"

Indeed, the taste of sugar had a big impact on the Pintupi Nine and it is this aspect of their story which now animates them most. "I tasted the sugar, we didn't know what it was, but it was so sweet. I tasted the sugar and it tasted so sweet - like the Kulun Kulun flower. My mother tasted it and it was so sweet. It was good," says Warlimpirrnga.</comment>


Ask HN: Did you get today off work? - <AUTHOR>

<comment><USER2> We did. This is the first year they've offered this day off. Our clients are almost entirely in the public sector, so I'd imagine that our support lines would've been dead and our sales team without clients to sell to.</comment>


Docker and the Rise of MicroServices - <AUTHOR> https://timber.io/blog/docker-and-the-rise-of-microservices/ <comment><USER2> SOA is _not_ ESB</comment>


Man Charged in UK over Facebook Joke - mike-cardwell http://www.bbc.co.uk/news/uk-england-merseyside-19863228

<comment><AUTHOR> The word "joke" appeared nowhere in the title or story.

He's being prosecuted under section 127 of the Communications act:

"The Communications Act 2003 section 127 covers the sending of improper messages. Section 127(1)(a) relates to a message etc that is grossly offensive or of an indecent, obscene or menacing character and should be used for indecent phone calls and emails. Section 127(2) targets false messages and persistent misuse intended to cause annoyance, inconvenience or needless anxiety; it includes somebody who persistently makes silent phone calls (usually covered with only one information because the gravamen is one of persistently telephoning rendering separate charges for each call unnecessary). [...] Section 127 can be used as an alternative offence to such crimes for example as hate crime (including race, religion, disability, homophobic, sexual orientation, and transphobic crime), hacking offences, cyber bullying, cyber stalking, amongst others.

"

[http://www.cps.gov.uk/legal/a_to_c/communications_offences/#...](http://www.cps.gov.uk/legal/a_to_c/communications_offences/#an11)

<comment> mike-cardwell Ok. Here's another article about it where "joke" is used:

[http://www.mirror.co.uk/news/uk-news/april-jones-man- charged...](http://www.mirror.co.uk/news/uk-news/april-jones-man-charged- over-1365779)

</comment></comment><comment> mike-cardwell A number of places on the Internet are _claiming_ that the joke was:

      What's the difference between Mark Bridger and Santa Claus?

I'm not going to repeat the punchline as I'm British and don't want to go to jail. Google is your friend.

</comment><comment> mike-cardwell Appears it has already been on Reddit too:

[http://www.reddit.com/r/unitedkingdom/comments/113585/man_ch...](http://www.reddit.com/r/unitedkingdom/comments/113585/man_charged_over_grossly_offensive_april_jones/)

</comment><comment><USER2> Not sure I see anything wrong about this...

<comment> mike-cardwell This sounds like you are literally unable to identify the controversy... Is that the case? Or is it that you think it's totally appropriate to arrest somebody for making a crude joke which some people find offensive?

<comment><USER2> I meant that I can't see anything wrong with the joke. :)</comment></comment></comment>