After the discussion yesterday about how hard it is to know if your salary is comparable to your co-workers, and inspired by nostromo's "trick" (http://news.ycombinator.com/item?id=2439443), I decided to implement a website where everyone can compare notes, without having to disclose personal info.
It works by creating "salary pools". When you create a pool you get an unguessable URL (e.g, I created a pool at http://salaryshare.me/8a6e32dd8c9166905db6cfd588044bad). Share that URL with everyone that you want to participate, and after a minimum number of people have given in their salaries, the results are disclosed.
Apply any standard disclaimers that should apply for an application developed in less than 6 hours.
The way I see it is that you create the context yourself. You create a pool and only share the URL with people in a known context (such as your colleagues at work). That way you all get to discover where you are in the spread of your team, but without knowing which salary is tied to which individual.
Obviously, how you structure the context defines what it means to you. If you share it with everyone from managers to newbie graduates your context will be different than if you just share it with people you consider to be at the same level as you.
If the users create the context themselves, which makes sense, then why do you ask for 'US dollars only please'? Because you want to use this data yourself?
A similar remark: "annual salary". The context might include part-time folks, consultants paid per hour, etc. where comparisons of annual salary are much less informative than just $/h.
You don't even need the app to discern between annual and dollar per hour, to the app it's just a number. Actually even an uniterpreted string would do.
I work for a company with well over 100,000 employees, but if I gave my salary, title, and years experience (and as someone else noted, especially if I added my location), I wouldn't be anonymous. To my employer, at least. It would be trivial for them to narrow down the information to being provided by a very small number of people - if not the exact person.
I don't see this flying, where I work though. Even among the people I'm closest to, I don't think they'd take to this sort of information sharing amongst each other. Even pseudo-anonymously. I'm not sure if that's because they'd feel it's tacky or if it's because it has been drilled into everyone from corporate culture that you _never_ talk about it.
As an aside, I would actually much rather know not what the guys I've been working alongside for the past decade are making compared to me, but what new hires in the same positions as us are being hired at. Especially when you throw in all the hiring freezes and pay freezes over the last ten years.
Just one correction: your employer will also know exactly who you are by just your salary alone. Chances are not everyone is making the same amount and if you say you make 100,760,000 rubles, it's easy enough to just look it up. Your co-workers of course don't have this info.
I personally liked the other trick better: the one that gives you the average salary. Or maybe median is more appropriate. The point is that it'd give you an idea of whether you are making more or less than at least half your co-workers.
I agree that there is too much information here to stay anonymous from your boss.
Instead, you could generate the histogram of the entire sample set, perhaps curve fit, so it's not obvious for small sample sizes, how many people contributed. Then you put a little red "You are here" dot on the histogram so they see how they compare. This robs the employer of any data they can use to see who partook in the experiment, while still giving the same information back to the employee.
You could fudge the title or years of experience slightly one way or the other. The point isn't to be exact, but to differentiate between associate developers 3 months out of college and staff engineers with 20+ years of experience.
I think the use case is to get an informal survey among your peers. I wouldn't expect a C-level professional or someone more senior to be using it. But that doesn't mean you can't create a pool and send only to the half-a-dozen guys that you work with, or your cubicle-neighbors.
That is not the point of the site. From the inspiration linked above, it is clear that it is about comparing salaries in a single firm or in a similar fairly homogeneous setting.
So create a context. Suppose you're a junior developer in Slovenia and want to know how much your peers are earning. Create a pool named something like 'Slovenia junior dev position', enter your annual sallary and post the link to the pool here.
The only thing that kind of bugs me with this app is that the amounts have to be expressed in USD, so i have to recalculate them back to my own country's currency when viewing the results, otherwise, nice app :).
Just put the value in euros (if you're in Slovenia) or whatever, and ignore the dollar signs.
The results are for your own use anyway -- it'll work just as well even if you don't bother to convert.
Of course, that'll skew whatever larger purpose the developer is hoping to have with the data, but if the project seems to have legs, that just provides a big incentive to add support for other currencies. :}
Amusingly, I had exactly the same idea and registered a domain intending to create a site doing this as well. I then promptly kept working on my day job until 4am, so haven't done a thing with it.
I like your implementation. To everyone asking about context, I believe this tool is intended to be used when you have already created such context, where coworkers want to know group salary information while still protecting their personal information from each other.
I had imagined the use would be where people were already in a group and wanted to share information anonymously. I had a brief moment before I fell asleep wondering how to prevent someone from just reloading the page as others submitted their salary information, thus being able to know what salary mapped to what user by the order they show up. I see that you set a minimum limit on the number of users in a pool, have you addressed this once the pool grows beyond that size?
How about if you can set a time and date at which point everything will be released? The site could show that to all visitors, so it would be obvious that you should get in before that.
I am familiar with Glassdoor. In a way, I am "competing" with them on Job4Dev.
Thing is, this salaryshare is a way to compare salaries with people that you already know, while Glassdoor is more of a general market analysis tool.
What I'm wondering now is how (and if) I can apply the idea of SalaryShare on Job4Dev. If you create a resume there, it already links the companies you listed as working for with the company database. Should I ask for "last compensation received", as well?
I'm currently job-hunting, so I'll take a look at Job4Dev. You probably should be asking (optional, anon) for salary data. I had no problem providing that info on Glassdoor, though I generally know around how much my friends/associates make.
One small issue: https://salaryshare.me/ does not work. Considering who this is targeted at, I wouldn't want my office mates who are my co-workers to snoop on my POST to your site. Kind of defeats the purpose.
I don't think so, but why put them in a position where they'd be tempted? If I send out a link to the salary share pool on our internal chat, the assumption is that at least some people will go filling it out around that time. If someone gets the temptation to know exactly what's going on, they could start up a packet sniffer. OTOH, a StartSSL cert would prevent all of this from happening.
I imagine that this will deter people from quickly starting up a packet sniffer when they share links to your site. However, how are you able to use webfaction's cert? Do they just give you their private key? Or is it just a cert that is not really signed by anyone and the common name is set to *.webfaction.com? In other words, this does not mean that you can spoof www.webfaction.com's signature, corret?
It's a stopgap measure (because you have to click through the cert exception, because the domain name on the cert doesn't match the URL), but it will still encrypt the data just fine.
The warning will confuse some people (such as yourself); that's why the dev asked if it was okay.
So, I've been downmodded reddit style but for the life of me, I can't figure out exactly what part of this previous thread disputes the point that employees will overstate their salaries when asked, hence any representation of asking people their salaries is flawed from the start.
There is a reason large HR firms poll employers and not employees, as I said.
You should actually automatically generate the random string, less friction for the user (and leave the choice to choose the string, kinda like how you can do with etherpad).
It works by creating "salary pools". When you create a pool you get an unguessable URL (e.g, I created a pool at http://salaryshare.me/8a6e32dd8c9166905db6cfd588044bad). Share that URL with everyone that you want to participate, and after a minimum number of people have given in their salaries, the results are disclosed.
Apply any standard disclaimers that should apply for an application developed in less than 6 hours.