Ask HN: Should I quit Uber? - <AUTHOR> I'm a software engineer at Uber.  I've been there for under a year.  I left my previous job because an Uber recruiter offered a large pay increase.  I had been there for under a year as well.
Is it worse to have the job hopping on my resume or a very unpopular company on there?
Staying for a while wouldn't be hard on me.  My team and the ones around me aren't toxic (yet).  I'm strictly concerned with the impact on my career. <comment><USER2> I've never heard of a company not hiring a qualified developer because their former employer is "unpopular". Job hopping from company to company based on popularity just seems like a bad career move.

It sounds like you're happy with the work environment, which is not something that should be taken for granted. Stay on board and continue to put in your best effort.

<comment><AUTHOR> Maybe I'm overreacting to comments on HN and other social media. The CEO of a successful startup publicly said he wouldn't hire someone from Uber.

Many HN comments on articles about Uber share the same opinion. Several of these commenters were founders of software companies.

<comment><USER3> >The CEO of a successful startup publicly said he wouldn't hire someone from Uber

Would you really want to work at a company where a CEO is so prejudicial? I know I wouldn't (and I find the publicized culture of Uber incredibly repugnant).

If you're happy at your current position and aren't complicit in the abuse that's going on (seeing abuse but not doing anything about it) then stay. If you're concerned that in a subsequent interview that your position will color you, volunteer for a noble cause:

-Encouraging young women to pursue STEM education / careers

-Domestic Abuse NGO etc

<comment><USER4> A CEO might prejudge a person coming from one company to another based on perceived risk to workplace culture the same as when assessing someone just out of school or coming from or into enterprise or out of military service or out of prison or back to the workforce from raising a family or when switching vocations or with gray hair or lip piercings.

Of course it could also be based on direct empirical observation, or just liking to hear the sounds of one's own tweets. On the other hand, the would- you-want-to-work-at-a-company-where position probably falls flat in the case of Uber...it already ate the cake.

<comment><USER5> Fact: Uber has a well earned reputation for tolerating or even encouraging a work environment that is hostile toward women.

Fact: If you're a male Uber employee, you're somewhat tainted by this association. Maybe just a little, or maybe more.

Conclusion: If you're competing against another candidate who is identical in all other respects except they don't have this association, you're at a disadvantage.

It's not fair to you, but that's the inescapable conclusion.

The bigger question is, do you believe that Uber is ultimately a force for good?

In addition to your salary and benefits, is it important to you that your efforts contribute to making the world a little bit better?

<comment><USER6> > Conclusion: If you're competing against another candidate who is identical > in all other respects except they don't have this association, you're at a > disadvantage.

How many hiring managers actually care about this? I know it's PC to say that you care, but I doubt it would affect the actual decisions of many managers.

</comment></comment></comment></comment></comment></comment><comment><USER7> The impact on your career should not be much.

As an employer, I would not turn down any ex-Uber, as long as he or she did not trigger warning lights during the interviews.

Just focus on the technichal side and the money. If you feel good every morning when you wake up to go working for them, then stay.

If not, then that would make a great explanation to your next employer for him/her not to consider you a job hopper. Along the lines of "I quit at Uber because, as you very well know, the culture there was toxic and yours looks much more interesting, blah blah...".

Good luck!

<comment><AUTHOR> Thanks!

As long as I stayed with that employer for longer than a year I would be fine, or would the period of job-hopping look bad permanently?

<comment><USER8> I'm going to disagree with a lot of the other responses you are receiving.

If it happens once or twice and there is a good story/explanation that goes along with it that is fine, but I actively avoid candidates who switch jobs every year or so. In my opinion it takes a decent amount of time to understand everything within any given company or codebase (especially one that has a decent level of complexity or specialized knowledge). I don't want an unstable environment where people are leaving just as they begin to fully understand things to the point where they are extremely productive.

Along those same lines I think it is the responsibility of an employer to give raises that are equivalent to the salaries they would pay to poach people with a similar level of experience. If you are willing to give someone a significant raise to leave their current company you should be willing to do that for someone within your own company.

<comment><USER9> > Along those same lines I think it is the responsibility of an employer to > give raises that are equivalent to the salaries they would pay to poach > people with a similar level of experience. If you are willing to give > someone a significant raise to leave their current company you should be > willing to do that for someone within your own company.

What would you say is a reasonable amount of time for an employee to stick around if an employer isn't providing pay increases?

<comment><USER10> _What would you say is a reasonable amount of time for an employee to stick around if an employer isn 't providing pay increases?_

Two years. If you came in at market value, the median market value shouldn't increase that much. Two years is also about the time to get enough experience to "level up"

<comment><USER9> Appreciate it!

</comment></comment></comment></comment></comment></comment><comment><USER11> A bunch of people here on HN are / were working for the defense industry. A lot of social networks we ought to trust our private data on were founded by them. I never heared them complaining about not getting a job because they used to violate the privacy rights of humanity or developed the software for drones being used for killing people. Don't be afraid, a lot of companies need mercenaries with broken moral compass.

[Edit] I am working for a company doing "legal spamming" -according to German law. It is kind of useless shit the world would be better off without but the work makes fun and pays the bills. Is Uber hiring in Germany?

<comment><USER12> Harsh but true. I'd go even further and say to be successful in tech, finance, etc, by all means keep your moral compass in good working order, just leave it at home.

<comment><USER13> Good techies can absolutely afford a moral compass. You might lose your chance to be the next Zuck, but that's highly unlikely either way.

</comment></comment></comment><comment><USER14> I left a Fortune-100 company recently, in part because I wasn't happy with the ethical choices being made by management. I was being asked to implement software that I didn't want to be part of.

I had management assure me that legal had been consulted, and don't worry, they say it's not technically illegal. If the media finds out and we get bad press, PR has already made plans for how they'll respond to it. The responses they gave me really made me lose respect for the managers above that.

Uber is (imho) a morally bankrupt company- even by the standards of companies. The question you should ask yourself isn't whether that will look bad on your resume, but whether you're going to live regretting you were part of it.

I make a bit less money overall now. I also sleep a lot better at night.

</comment><comment><USER15> I wouldn't worry about what it looks like to leave Uber at the moment. Job hopping is bad when it is unexplained. There's not a tech company in the valley that would fault you for leaving Uber in solidarity or because you didn't realize the extent of the sexism until the story broke. Companies view job hopping as a negative because they worry you'll move on and not stick with them if things get tough. But there's certain varieties of tough that don't fall into that category and the kinds of allegations that are being made against Uber right now (HR complicit in sexual harassment) are at the top of that list of exceptions. I might worry about how it looks to have stayed at Uber, since it might seem like tacit support.

As an aside, the Otto scandal might even be enough reason to want to leave. It's now far less likely that your stock options will ever amount to anything. But leaving for this reason won't be as widely respected, so don't mention it to recruiters.

</comment><comment><USER16> I was a technical recruiter for startups in SF from 2005 to 2013. I filled hundreds of startup jobs. I wouldn't worry about it. Good engineers are always in demand, so if you're good, you'll be fine. Even if Uber is evil, and Lyft is good, I bet Lyft would hire you.

The thing that will prevent you from being hired, even if you are good, is not owning the fact that you chose to stay at Uber. If you're 100% okay with staying Uber, and you're only worried about perception, I'd say don't about what other people will think. But if you're ashamed to don your Uber hoodie in public and/or you cringe to answer the question "where do you work?", that's harder for you. That may have more to do with how you feel about it, and less to do with what other people will think.

Imagine this... You're the hiring manager for a startup that needs a darn good engineer. Someone applies to your company, and their two previous employers were Ashley Madison and Adult Friend Finder. You've previously interviewed candidates from both companies. If those candidates had been amazing, then you will do anything you can to get that applicant in the door for an interview. If the applicants all bombed, you'll be likely to think the engineering talent at AM and AFF wasn't any good. Neither situation have anything to do with the fact that both companies were adult-oriented websites, which carries some social stigma with it. The AM/AFF applicant might have a tough time getting a job at Eharmony because of their personal values as a Christian-friendly website.

</comment><comment><USER17> I just left Uber after only six months. It was the best decision I ever made. I'd also been bouncing around the bay - A year at my previous company, merely nine months at the one before that.

My reasons for leaving Uber were simple - My team was toxic. You're not having this problem... or maybe you are and don't realize it. Much of what made it so toxic felt like my failures - Inability to understand the deployment strategy, things moving faster than I could keep up, objectives changing/not well documented.

After a while, I realized that the whole organization was engaged in gaslighting. We were always at war with Eurasia. My manager changed OKRs middle of the quarter. Decisions that I had written agreement on were questioned in the next meeting. Changes were made based on people's personal preferences, without regard for negative effects on others or the moving targets they presented. Coworkers were being cagey about giving advice or plans because they wanted to be 'the hero' and solve problems that I was trying to fix, or they didn't want to admit mistakes, or...

Anyway. I suggest you move on. But it may be worth sticking around for your bonus/stock options. On the other hand - People are going to be willing to give you the benefit of the doubt if you're getting out of Uber now. In six months, it will be a real black mark.

</comment><comment><USER18> Don't quit necessarily, but quit if you feel it's the right thing to do. I've never thought highly of Uber, so having it on your resume is similar to having military experience or working at Amazon to me, it immediately sounds the "probably not a good culture fit" alarm in my head.

I'd personally give a thumbs up to any qualified engineer interviewed with me and mentioned that a big part of the reason he or she left Uber was because of their lack of morals. That takes balls, and so does leaving before the "standard" two year mark, so people who do that are either stupid and ballsy or principled and ballsy - the latter type of person is almost always a great person to work with as long as their principles make sense. There's nothing worse than a principled, ballsy Machiavellian.

So, to reiterate - quit if it really aligns with your principles as a person and you're ready to explain that, stay otherwise. It could also be that in 6 months staying at Uber will be against your principles, making that a great time to jump ship. I think the advantage you have is that since a lot people know Uber is toxic they won't fault you for wanting to get out.

</comment><comment><USER19> You know, in the 90s, Microsoft was considered to be a deeply unethical company. Would anyone now consider Microsoft on someone's resume to be a black mark?

<comment><AUTHOR> Did Microsoft have a reputation for sexual harassment and toxic managers? I don't know much about Microsoft in the 90s.

<comment><USER20> No, Microsoft has generally (I'm sure at the size they are they have had some issues) never had major problems like that.

Their reputation was more around 3E's (Embrace, Extend, Extinguish), they didn't play well with others (intentionally).

<comment><USER4> My perception is that Uber does not enjoy a PR bonanza based upon its ability to work with others.

</comment></comment></comment></comment><comment><USER4> Random advice from the internet:

Should you quit? Probably not. Should you be exploring other options? Maybe...and that's mostly orthogonal to being employed at Uber but not entirely. Personally, I don't think it is likely that Uber is going to significantly change its culture based upon its responses (they look like hunkering down and lawyering up).

Now in terms of 'strictly concerned with the impact on my career' that looks like a moral/ethical the-ends-justify-the-means-approach. Here, there are two relevant factors. One is that there is very little certainty regarding how job hopping or staying at Uber will effect your career. The other is that there is a near certainty that people will judge your decision on moral/ethical grounds and that some will judge it as being reflection of a character that is ok with Uber's culture as described by recent events.

When hiring includes consideration of 'cultural fit' time spent at Uber will weigh into those considerations as a risk for companies with an orthogonal culture. Since the longer someone spends in a culture the more likely a person is to become acculturated, the duration of one's 'post-Fowler' employment might be considered when assessing the 'cultural fit' risk/benefit of previous experience at Uber.

I am not pretending that I know what will help or hurt your career: careers vary on an individual basis. I am pretending that what you do or don't do is a choice about who you are. The internet is not going to give you permission for either choice.

Good luck

</comment><comment><USER21> I can't see any good reason why you need to switch, your team mates are not 'toxic' and I believe pay is also fine. So why you want to switch? I agree sometime we need to switch for better carrier growth but when going to a new environment, there are chances that you have to adjust. Transitions phase in most cases are difficult. One last advice, don't switch only for money, job is and should be much more than that.

</comment><comment><USER22> If you don't like the job, the culture, the company, the taste of the free coffee, the commute, the whatever, find a different one. You're fortunate to be employed in a field where job hopping generally does not matter due to high demand.

Aside from the outrage/noise you read on the internet, I don't think is much or any stigma associated with working at any particular company.

</comment><comment><USER23> People are "tainted" to an extent that future employers/recruiters can be worried that you'll bring Uber culture with you. People can debate how much that happens and if it's valid/fair etc but it does happen.

Uber's brand has become toxic not just on the commercial side but within the tech industry to an extent too and things happen as a result of that.

</comment><comment><USER24> One thing I haven't seen people mention is that you're leaving a lot of money on the table by staying less than a year at each of these places where a large part of the compensation is in stock. Why not stick it out for a full year until the cliff, get your options or RSUs and then switch if you must?

Just something to think about.

</comment><comment><USER25> Yes, quit.

Do it because it's the right thing to do, not because you're worried about having Uber on your resume.

But since you say you're strictly concerned about the impact on your career, I can tell you that seeing Uber on a resume beyond March 2017 would be an instant red flag for me. I wouldn't bother phone screening that person.

Plenty of companies won't care though, so if you just like money and don't have qualms about your employer's rapidly growing list of unethical activities, then by all means stay.

<comment><USER26> > I can tell you that seeing Uber on a resume beyond March 2017 would be an > instant red flag for me.

That's insane - you think everyone at Uber can afford (both literally and metaphorically) to simply quit their jobs without a landing place?

The flip side of this is that I would be happy to avoid working for someone who's so easily prejudiced against someone before ever meeting them. That kind of social bigotry is also very toxic...

<comment><USER25> > That's insane - you think everyone at Uber can afford (both literally and > metaphorically) to simply quit their jobs without a landing place?

Uber's unethical behavior didn't start recently, but it has recently reached a point where I don't think anyone at the company can still claim plausible deniability. If you're still at Uber, you've had a lot of time to think about this stuff.

> The flip side of this is that I would be happy to avoid working for someone > who's so easily prejudiced against someone before ever meeting them. That > kind of social bigotry is also very toxic...

I wouldn't consider hiring someone who I suspected of being involved in theft of trade secrets, knowingly violating laws, or knowingly evading oversight, because those are behaviors I don't condone and would not tolerate at my company.

I can't say for certain that anyone who works at Uber beyond March 2017 is involved in unethical activity, but I can say for certain that anyone who works at Uber beyond March 2017 either knows that they're working for a company with a long history of unethical activity or is completely oblivious, and both of those things tell me this is a person I may not be able to trust to make good decisions at my company.

I also discard resumes that show a lack of relevant technical expertise, because that's another indicator that a person may not be able to make good decisions at my company.

I'm not interested in hiring robots without pity, remorse, or fear. I'm interested in hiring humans with empathy and good conscience and a capacity to do the right thing even when it's not easy, because those are values I want my company to have.

</comment></comment></comment><comment><USER27> From the tone of your post, I take it you're young and just starting your career. A few short jobs shouldn't be a red flag at this point in your career, especially if you have a reasonable reason for leaving previous positions (and company culture at Uber certainly qualifies).

As for having a known toxic company on your resume, that should only be a red flag if you were in a position to alter that toxic environment (senior manager, HR roles, etc).

If I were in your shoes, I might be looking to move elsewhere. But, unless you're unhappy, there's no need to hurry.

</comment><comment><USER28> I think much of the stigma on job hopping comes from it really having a lot of advantages for a worker who is up for it (it gets progressively harder to deal with the first 6 months in a new job the longer you are stably employed and the more specialized you get.)

If I felt I had an external justification to explain a hop and I had doubts about my employer, I would look immediately for a job filtering for ones that I would actually want to keep for 3-4 years. If a new employer accepts you and you actually stay a few years, I would consider a future employer that had an issue with your resume rather odd. While sticking it out at an employer that you feel uncertain about can leave you in a worse place with the wrong timing.

</comment><comment><USER29> If your own work environment is a good one, then why would you leave? Don't worry so much about reputation.

</comment><comment><USER30> This has happened before. Yahoo used to be a hot company to work for. Now, if you still work there, people wonder why you haven't left yet. It is definitely harder to get a job with Yahoo on your resume. Will the same thing happen to Uber? It's possible. You won't feel it until the feeling is very strong, which means it will be too late for you to move.

If you are concerned now, and can find a better offer that you are very comfortable with, I'd say jump ship.

</comment><comment><USER31> Quitting Uber on principle might be ok, but don't quit because you're worried about being employable in the future. Loads of people will employ someone who is ex-Uber, despite the negative press. Largely, the negative association is with Uber management and execs, not its employees. I doubt you'd have trouble finding a job down the line. If you like your job, don't quit! If you feel guilt, just do what you can to try and shape the culture.

</comment><comment><USER32> I think you'd be crazy to leave a team you like unless you have something better. The "harm", if any, to your career for staying at Uber would be less than the harm for being a "job hopper" and leaving in less than a year or two.

If you don't like your job, then look around. Maybe look around just to know what the market is like. But don't leave something you enjoy purely because you're afraid of what others will think on your resume.

</comment><comment><USER33> Stay for the experience, if your personal morals are okay with it. Job hopping is okay in moderation, if you're genuinely not a good fit for the company, but sounds like you're doing okay work.

If it comes up in an interview, focus strictly on your work and how you contributed your skills to the business.

Software engineers ought to be fine moving on from Uber. It'll be the high- level execs who, rightly, will end up having trouble explaining their role in Uber in an interview :)

</comment><comment><USER34> I think that being at two jobs in a row for under a year is a little concerning. I'd certainly ask questions about that in an interview.

That said, I think leaving Uber would be a significant advantage compared to other companies. In most cases you need to convince your interviewer that the previous company had poor culture without sounding bitter - but for Uber they will probably already know how bad the culture can be.

</comment><comment><USER35> You shouldn't be worried about job hopping - you should be worried about your own judgement and conviction. Do you really believe that Uber is a bad place to work? And that the problems its facing cannot (or will not) be remediated? You say your team is not toxic (yet). Do you think it will be?

The same media that's slamming Uber today slammed every successful company... these armchair analysts, who haven't been through 0.01% of the struggles that entrepreneurs go through, predicted that Amazon, Netflix, Tesla, Uber will all go down. Now they're working overtime to paint Uber as a frat house with no ethics.

Every company has issues. Some even as severe as recent Uber events w.r.t harassment. But they fix it. They learn. They move on. Uber is not Travis, or the CTO, or the few people that came to limelight for bad culture. Uber is bigger than all of them.

Don't quit something because the press is saying bad things about it. Don't run away from problems. Fix them. That's what engineers do.

</comment><comment><USER36> Im surprised this is a serious question. I'll cut you some slack because I realize that being a current employee at Uber must mean that every other conversation in your life has to do with your company's morals.

The most important thing to realize right now is that your caught up in a news cycle (albeit, a pretty bad one), but eventually the talks will quiet down and it will be a thing of the past (not saying that there aren't serious issues at Uber, but it won't get media coverage because people will be tired of it).

I agree with brandon272. No one has ever been disqualified from a job because their former employer was unpopular in the media (unless there is a major political statement that comes along with the employer i.e. marijuana advocacy, NRA, etc).

Stay on board, keep doing the best you can, and most importantly, don't get caught up in all the negative crap. Treat everyone else with respect and support your female coworkers if they need you.

</comment><comment><USER37> The fear of job hopping is overrated in tech. Especially if you are leaving Uber, it'd actually make you look more attractive for actually having a backbone and a conscience.

In a period of about 3 years I went through 4 jobs. I never once was asked or told that my job hopping was a concern in any interviews (probably 50 all together) or offers.

Interestingly the only time I got push back on my "job hopping" Was when I left my first job that I was at for 3 years. I was being interviewed by my potential manager and one of his reports. As the interview was wrapping up the report piped up "How do we know you aren't just going to leave us in 3 years?"

The manager took control and smoothed that question over and I didn't have to answer it but it was an obvious power play and I'm glad someone else was in the room.

<comment><USER38> This may be true, but it's hard to get a sense of why you are or are not getting hired / getting interviews from the _job-seeker 's_ perspective, since you are not really privy to the decision-making process and can't really trust that the reasons given for them not hiring you are the real reasons (generally they don't owe you the truth and strategically it's often better not to say anything or to give some mundane reasons).

I've been involved in a small number of interview processes from the hiring perspective, and I've definitely seen some concern regarding job-hopping where it could easily make the difference on a marginal candidate. That said, this is only at one team in one company - and I was not involved in the initial resume screens (where people with a _lot_ of job-hopping may have been eliminated entirely before I ever saw them). Probably would be best to get a broader perspective from people who have a lot more experience with hiring.

<comment><USER37> Indeed. I added my anecdote as a data point for arguments for being ready with a good explanation as to why you've left your previous employers.

Either they care and they don't call you, or they don't care and they don't ask.

In my experience the number of employers that don't care and don't ask are sufficiently large enough to not be concerned about the former employer type, especially for someone looking to get out of an uncomfortable employment situation.

</comment></comment></comment><comment><USER39> If you're not upper level management I don't think having Uber on your resume is gonna be a big black mark, unless it fits with an overall picture you give off of being an asshole. If you seem like a nice person otherwise, I think people will give you the benefit of the doubt, if you are just an engineer.

</comment><comment><USER40> Ha. Silicon Valley can be really pathetic sometimes. As an employee, you should really go with whoever pays you more. If employees of another company want to shame you into accepting a lower wage why should you?

Silicon Valley is always talking about "changing the world" while building pointless apps that will only exist for 5 years at most as they try to sell to a bigger data mining company. All in the name of "being passionate about what you do".

Fuck that. Starting a for profit business is mostly always about making money, so as an employee you should try to get as much money as you can from them. If you start a company and really believe you are changing the world or making the world a better a place, then make it a non profit. Otherwise, get your head out of your ass.

<comment><USER41> I wouldn't work where I'm paid more unless I needed the money. I would rather work with a great team that I get along with, and love the product I work with.

<comment><USER40> All else being equal, would you reject an extra 20k?

All of the stuff you mentioned is still part of "compensation".

<comment><USER41> When I lived in Australia, I did some contracting then decided to go back to full time. I narrowed my choices down to 2 jobs, one at 120k, and one at 80k.

In the end I picked the 80k one because during the interview they asked me to come in for the day and do a 'test' for a few hours, which was building a small project, then I got to sit with a couple of the members of the team and take them through it. I had a LOT of fun (more fun than I imagined) and ultimately decided to go there.

One of the best jobs I've had.

Obviously between 2 great jobs then the 20k would be the tipping point. But money isn't the sole reason I work. I love what I do for a living.

</comment></comment></comment></comment><comment><USER42> This is crazy. I use Uber all the time and I think it's a great company. (Of course, I don't approve of harassment/discrimination - but the people directly involved are now gone, and people really should just calm down.)

Don't quit now - good jobs can be hard to get!

<comment><USER43> On what basis do you claim that "the people directly involved are now gone"? They fired an executive hired after most of the allegations took place, and in one story the worst offending supervisor has left. There's no evidence that the culture has changed, and the people that put that culture in place are still there.

</comment></comment><comment><USER44> I agree with general sentiment expressed by others; a reasonable next opportunity shouldn't judge you because you worked for an unpopular company.

In fact, we're thinking the opposite: let's use this as an opportunity to hire engineers in your position (and we're currently hiring).

</comment><comment><USER45> If you were in upper management then this would be a valid concern and you'd be more or less to be forced to take a position on the moral standing of the company.

However in your position no one could _reasonably_ hold it against you. Perhaps it doesn't hurt to put out feelers though.

</comment><comment><USER46> How much under a year? I've rarely stayed at the same company for more than 2 years, and haven't seen any objections to my job hopping. And if anyone asks you why you left Uber, then toxic culture or not really believing in the company's way of doing business, is an excellent reason.

But there are far more important reasons to stay or leave than fear for what others think. Do you like it there? Are you learning? Can you look at yourself in the mirror every morning for working there? If yes, then stay. If no, then leave.

Of course the smart thing to do is to first look for another job, and only then leave. That way you don't have to leave until you know it's safe to do so.

</comment><comment><USER47> Job hopping early on in your career to maximize your baseline salary won't affect your career. What may affect your career is the opportunity cost of picking the wrong company (esp Startups) if you had a choice, and the one you didn't pick takes off.

</comment><comment><USER48> You can do some freelance or personal stuff too and then when you leave you only so your personal projects during your time at uber, if it is really better. Otherwise you can stay for a little longer and do a good harvest now that everybody is leaving.

</comment><comment><USER41> If you are good at what you do, working at Uber won't affect your career in the long run.

Are you happy? If yes then why leave? Leave if you're unhappy. Stay if you're happy or you have a family and a mortgage and have a good salary to pay it asap.

</comment><comment><USER49> You are a techie, not on the executive board. So the Uber taint does not apply to you. As long as you are not required to implement some immoral program, there is no reason to leave as a matter of principle.

As a potential employer I would be more concerned about you changing jobs with less than a year at both previous jobs. Assuming you are not looking to take a pay cut, you would have to be stellar technically to even be considered with so little experience. Finally, I would consider you overly sensitive to outside influences and question whether you would stay with a new employer through thick and thin.

</comment><comment><USER50> As a former MySpace employee I can confirm that being at an unpopular company is irrelevant. Employers are looking for increasing levels of responsibility, among other things. Do your best and you will be ok.

</comment><comment><USER51> It depends. Do you like your job or are you trying to rationalize your regrets?

If you are subconsciously trying to look for an excuse to leave, well now is as good as any of a time to stop kidding yourself and get out of there.

</comment><comment><USER52> Unless you're at the level of decision making where you're participating in the decisions that are creating the bad reputation around Uber, I don't think you'll be held accountable for that.

</comment><comment><USER53> No. Even if the chance of someone excluding ex Uber engineers is extremely high like 50% (which it's not), the Brand name is still valuable since Uber was once one of the hardest places to get into.

<comment><USER54> The brand name has clearly taken a hit, otherwise we wouldn't be having this conversation.

<comment><USER53> Brand name in terms of engineering ability, the interview barometer during the years OP interviewed? Nothing in the press suggests this has changed. (I'd hesitate regarding senior management types more than ground level engineers -- kind of like Zynga tbh with great ground level engineers and PMs, but pretty questionable upper brass)

Zenefits sales guys don't have a problem landing their next sales role, though you might do a sanity check for cultural values just in case.

</comment></comment></comment><comment><USER55> Apparently, they have managed to recruit Zoubin Ghahramani [to lead their machine learning efforts] despite the recent mess. While this particular recruitment may not be representative of the broader reception of Uber employees in the job market, choosing to stay at Uber for _professional reasons_ does not seem to be a bad idea.

Uber appoints Zoubin Ghahramani as chief scientist: [https://news.ycombinator.com/item?id=13876497](https://news.ycombinator.com/item?id=13876497)

</comment><comment><USER56> Don't overreact. It's easy to have Internet commando types give all sorts of bad advice.

Take a look around, but don't do anything drastic out of an emotional reaction.

</comment><comment><USER57> Lots of people at Theranos stood around and watched it burn, plenty stained their career by association. Forget the pay, what do you feel as a person about Uber (not just your team) but Uber the company? Feel good? stay, feel bad? listen to your gut and get out.

</comment><comment><USER58> Are you being harassed or discriminated against? Are you learning something in terms of career?

There are idiots everywhere. I don't see Americans running out of American as they are ruled by idiots, lead by a pussy grabber.

Uber is an innovative company. Stick around.

</comment><comment><USER59> Pretend you have golden handcuffs.

Stay as long as you can for being overpaid.

Imo at some point years from now the large $$$$ won't be there any more.

Bottom line. Most of us work for someone else. No matter what we do.

</comment><comment><USER60> Uber is up there with Monsanto, and circa 2000 Microsoft in terms of nasty. I wouldn't work there no matter how much they paid me.

</comment><comment><USER61> Team/Environment seems ok, great pay,

Stick it out.

Save money, learn as much as you can, do interesting things at and outside of work.

Plan what you want to do in the future.

</comment><comment><USER62> I definitely recommend staying for at least year, probably longer to offset your previous job being shorter than a year.

</comment><comment><USER63> Yes Uber is toxic wasteland, definitely a big black mark on your resume. Quit while you can!. Good luck.

</comment><comment><USER64> Why exactly do you want to change jobs?

</comment><comment><USER65> No, unless you want too. I know a ton of non sv companies on the east coast starved for any talent.

</comment><comment><USER66> Anytime you pop the question of "Should I leave X?" That answer is always yes. The question is when.

Plus everyone eventually leaves X, since they die. You don't have a plan for immortality, do you?

</comment><comment><USER67> at least round it up to a year or double it.

</comment><comment><USER68> I guess I'm a little out of the loop here, what has Uber done to become unpopular? Last I checked they were Silicon Valley's favorite darling.

<comment><USER69> There were several stories that broke over the last couple of weeks. It started with Uber and the travel ban. I don't want to get too into it so you can read about it here: ([https://www.nytimes.com/2017/01/31/business/delete- uber.html](https://www.nytimes.com/2017/01/31/business/delete-uber.html)).

Then there were several sexual harassment claims that were handled poorly. They can be read here: ([https://www.google.com/webhp?sourceid=chrome- instant&ion=1&e...](https://www.google.com/webhp?sourceid=chrome- instant&ion=1&espv=2&ie=UTF-8#q=susan+fowler&*), [https://medium.com/@amyvertino/my-name-is-not-amy-i-am-an- ub...](https://medium.com/@amyvertino/my-name-is-not-amy-i-am-an-uber- survivor-c6d6541e632f#.pz1kvmlbc)).

Their SVP left because of similar claims against him at Google ([http://www.recode.net/2017/2/27/14745360/amit-singhal- google...](http://www.recode.net/2017/2/27/14745360/amit-singhal-google- uber)).

Their VP of product also left under similar circumstances ([http://www.recode.net/2017/3/3/14805384/uber-ed-baker- resign...](http://www.recode.net/2017/3/3/14805384/uber-ed-baker-resigns- travis-kalanick)).

Google is suing them over potential stolen IP (involves a former Google employee leaving to start Otto, which Uber promptly acquired). This has still yet to be settled but you can read about details here: ([https://danielcompton.net/2017/03/14/uber- bombshell](https://danielcompton.net/2017/03/14/uber-bombshell)).

</comment></comment><comment><USER70> Yes, you should, come join other ex-uber folks at Mixmax. Mixmax.com/careers

<comment><AUTHOR> Not a bad idea ;)

</comment></comment><comment><USER71> Yes.

</comment><comment><USER72> why leave a good and high earning job? don't ruin your life. stay at uber.

</comment><comment><USER73> I don't know why you would let HN's opinion on the integrity of the companies leadership influence your decision to work there. The question seems preposterous to me. If you are happy with the work you are doing and the way your team conducts itself and you don't have a better offer on the table why leave? It's not like uber is building a nuclear bomb. Unless you are high up enough to influence any of the things that have come up in the bad press, why would anyone look down on you for working there?</comment>


Localtunnel exposes your localhost to the world for easy testing and sharing - <AUTHOR> https://github.com/localtunnel/localtunnel <comment><USER2> Just want to point out how easy it is to do this using SSH tunnels. ssh -nNT -R :<server port>:localhost:<local port> user@domain

<comment><USER3> that requires you to have a server to ssh to, and doesn't give you free https.

<comment><USER4> "Free HTTPS"?

SSH encryption is your "Free HTTPS"

<comment><USER5> There's still no client-server encryption over the http leg. Someone snooping on packets can see the traffic of the person using the web-service in plaintext. HTTPS would mitigate this.

<comment><USER4> That's why you route your plaintext traffic it through the tunnel. ssh -L 8080:localhost:80 then go to [http://localhost:8080](http://localhost:8080)

<comment><USER3> How does that help you access your app from some other machine? And how does ssh help you get secure access from a remote browser to the tunneled port? The ssh security is only from the tunneled port to your local port.

<comment><USER6> There commands above are suggesting two tunnels, appropriate for when both parties have private IP addresses behind NATing routers. This requires a rendezvous server with a publicly visible IP address, The first (with -R) forwards the listening port of the local private server to the rendezvous server:

        ssh -nNT -R 8080:localhost:80 rendezvous.example.com

This allows connections to the private local server from processes on rendezvous.example.com which connect to _their_ localhost:8080. This requires configuring "GatewayPorts yes" on the rendezvous server, which is disabled by default. The person you are sharing with then sets up their tunnel to using the forwarded port:

        ssh -L 8081:localhost:80 rendezvous.example.com

(port number changed to distinguish between the endpoints) This creates a tunnel from _their_ localhost:8081 to rendezvous.example.com:8080, which is then forwarded to port 80 on your server that you wanted to share.

Both tunnels are encrypted. While traffic analysis is still possible, the tunnels also obscure the details of each request; eavesdroppers only see the tunnels as a stream of encrypted data regardless of how many GET/POST requests actually happen.

If one side has a public address that can be directly accessed, the rendezvous server is not needed; just use one tunnel. The fact that we ever need a rendezvous server is part of the incredible damage IP Masquerading (private IPv4 addresses behind NAT) has done to the internet. Working around "party lines" is incredibly frustrating.

If you're setting up many forwarded ports, it may be easier to use a SOCKS proxy server (ssh option -D <local_proxy_port) instead of many "ssh -L" tunnels. The other side (-R) will be the same.

<comment><USER7> With a public address, and control of the firewall, this isn't even needed.

We have a /23\. I've opened ports 7000-7010 to a few developers' computers, so they can easily share what they're working on when they want to.

With IPv6, anyone can do this.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> I must have overlooked this when I unhappily settled for ngrok -- thank you for sharing a FOSS alternative.

<comment><USER9> I'm curious, what don't you like about ngrok? Is it just that it's a paid service? You do need a server somewhere to forward connections and that normally costs money to run

<comment><USER10> Well indeed - I wonder how these folks are gonna pay for hosting once someone starts testing a video streaming site...

<comment><USER11> It would be nice if there were flattr, Patreon, Venmo, BTC/LTC donation links all over it to pay for VPS/AWS charges. (Not PayPal, F them.)

It's good to ensure survival and utility of cool things such that Tragedy of the Commons doesn't spoil them.

</comment></comment></comment></comment><comment><USER11> LT is probably the best free tunnel out there. I've tried most of them free and non-free.

 _thumbs up!_</comment>


Ask HN: How to negotiate salary for Dev position? - <AUTHOR>

I did a summer internship for this company and now they're offering me a full-time position, so they know I'm a good worker. However, I'd like a little bit higher salary than they're offering by a few thousand dollars (~8k). I also have one other company offering me 10k more than they do, but I like this company much better. What should I do? What's the best way pursue this? <comment><USER2> Ask for $15k more and after some back and forth, offer to meet in the middle at $8k more. Working in your favor is the fact that they already know you are good and that you are a good fit. By hiring you, they are also saving the time and expense of a lengthy candidate search, interview process, and 20% recruiting commission.

</comment><comment><USER3> 1\. You can make this as complex/simple as you want. 2\. The negotiation is simple, if you "think" you are worth "x" salary (by believing things like 'I will bring these xyz virtues to the table for abc company'), just let the company know in a polite and unemotional fashion. 3\. This usually works for me. Best of luck !

</comment><comment><USER4> An excellent article: [http://www.kalzumeus.com/2012/01/23/salary- negotiation/](http://www.kalzumeus.com/2012/01/23/salary-negotiation/)</comment>


Speeding up Linux disk encryption - <AUTHOR> https://blog.cloudflare.com/speeding-up-linux-disk-encryption/ <comment><USER2> > otherwise, we just forward the encryption request to the slower, generic > C-based xts(ecb(aes-generic)) implementation

This seems like at least something of a bad idea, because that implementation (if my search-fu is correct) is:

[https://github.com/torvalds/linux/blob/master/crypto/aes_gen...](https://github.com/torvalds/linux/blob/master/crypto/aes_generic.c)

Which is obviously not constant time, and will leak information through cache/timing sidechannels.

AES lends itself to a table based implementation which is simple, fairly fast, and-- unfortunately-- not secure if sidechannels matter. Fortunately, AES-NI eliminated most of the motivation for using such implementations on a vast collection of popular desktop hardware which has had AES-NI for quite a few years now.

For the sake of also being constructive, here is a constant time implementation in naive C for both AES encryption and decryption (the latter being somewhat hard to find, because stream modes only use the former):

[https://github.com/bitcoin-core/ctaes](https://github.com/bitcoin-core/ctaes)

(sadly, being single-block-at-a-time and constant time without hardware acceleration has a significant performance cost! ... better could be done for XTS mode, as the above algorithm could run SIMD using SSE2-- it isn't implemented in that implementation because the intended use was CBC mode which can't be parallelized like that)

Can't the kernel aes-ni just be setup to save the fpu registers itself on the stack, if necessary?

<comment><USER3> Curious why CF needs to worry about side-channel attacks when all software run on those machines belong to / written by them. They do have a "workers" product with 3rd party code but they can easily keep storage servers out of that pool. Typically storage encryption is all about what happens when a machine is physically stolen, hard disk discarded on failure or other such actions beyond network security. Please correct me if I am wrong.

<comment><USER4> You could measure the timing over the internet.

<comment><USER5> Users aren't interacting directly with the storage layer so any timing attack via the network is going to be once or twice removed. Can attackers really gleam useful and mount a successful attack in this type of setup?

<comment><USER6> This is almost certainly true in practice, but it's a big risk, compared to the risk tolerance that we usually engineer into crypto. For comparison, suppose someone was suggesting: "Why not use 80-bit keys instead of 128-bit keys? No one in the real world can brute force 80 bits, and we'll save on storage." Yes, that's true, but it's taking a relatively large risk for relatively little benefit. Hardware will get faster over time, and an extremely high value target might justify an extremely expensive attack, etc etc. We prefer 128-bit keys because then we don't even have to consider those questions. I think timing attacks are similar: Yes they're very difficult in practice, but they raise questions that we'd rather not have to think about. (And which, realistically, no one will ever revisit in the future, as hardware evolves and new APIs are exposed.)

<comment><USER7> I always imagined key size to relate to computation cost and not storage — what algorithm are you referring to?

<comment><USER8> The point is that you need more bits to store a longer key, but the storage space saved is very little in this case compared to how much easier it is to crack.

<comment><USER7> Sure, but a difference of 0.1% of storage to go from 80-bit key to 1024-bit key for 1 Megabit of data (that's 118 bytes out of 128KiB), or 0,00001% for 1Gbit (128MiB) seems not worth raising as a concern.

(I've chosen example numbers just to make calculation trivial)

So I can't ever imagine storage size being the driver for choosing the key size, though from the other threads, it seems that there are algorithms that do have a storage overhead that might be related to key sizes.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Did this commercially for 15 years. Always the same problems.

We ended up with several solutions- but all of them generally work the same conceptually.

First off, separation of I/O layers. System calls into the FS stack should be reading and writing only to memory cache.

Middle layer to schedule, synchronize and prioritize process IO. This layer fills the file system caché with cleartext and schedules writes back to disk using queues or journals.

You also need a way to convert data without downtime. A simple block or file kernel thread to lock, encrypt, mark and writeback works well.

Another beneficial technique is to increase blocksizes on disk. User Processes usually work in 4K blocks, but writing back blocks at small sizes is expensive. Better to schedule those writebacks later at 64k blocks so that hopefully the application is done with that particular stretch of data.

Anyway, my 2 pennies.

</comment><comment><USER10> The blog post reads like this all happened recently, but their linked post to the dm-crypt mailing list is from September 2017[1]. I'm curious if they've interacted with the dm-crypt people more recently.

[1][https://www.spinics.net/lists/dm- crypt/msg07516.html](https://www.spinics.net/lists/dm-crypt/msg07516.html)

<comment><USER11> Yeah, the time frame is somewhat unclear. The patch they link to in their tree is dated December 2019 however [1], so I assume this blog post is about stuff they've completed recently.

[1] [https://github.com/cloudflare/linux/blob/master/patches/0023...](https://github.com/cloudflare/linux/blob/master/patches/0023-Add- DM_CRYPT_FORCE_INLINE-flag-to-dm-crypt-target.patch)

</comment></comment><comment><USER12> Did they reach out to the Linux kernel mailing list? Or just the dm-crypt team, I found the answer they received rather arrogant and useless to be honest.

<comment><USER13> I'm a huge "fan" of F/OSS but, unfortunately, such condescending answers are all too common in this "community".

</comment></comment><comment><USER14> Ages ago I benchmarked truecrypt overhead on my machine at the time (2006, I think?) and it was about 3%; I assumed that's a reasonable and still applicable number, also do dm-crypt and modern VeraCrypt. Guess I was get gradually more wrong through those years, according to the git archeology....

<comment><USER15> Also, disk speed in 2006 was probably much slower. Disks have gotten faster at a greater pace than processors during the last 10 years.

</comment></comment><comment><USER16> > Many companies, however, don't encrypt their disks, because they fear the > potential performance penalty caused by encryption overhead.

There is also the overhead of automatically unblocking a remote server during an unattended reboot. Reading the encryption password on a USB stick or fetching it through internet is a no from me. I think there are solutions about storing the password in RAM or in an unencrypted partition, but that's the overhead I'm talking about. I wonder how companies deal with that.

<comment><USER17> Debian offers a dropbear shell in initramfs which you can use to SSH in and provide keys. I only have a handful of servers so currently I do this manually on a reboot but it would not be difficult to automate using for example SSH keys unlocking key material. The downside of this is your initramfs and kernel are on an unencrypted disk so a physical attacker could feasibly backdoor them. I'm sure there's some secure boot UEFI / TPM solution here.

<comment><USER18> You are missing an integrity checking step. You can do it by sending some sort of ephemeral binary over ssh that does integrity checking and requests a key with the resulting hash of the check to proceed, don't blindly trust sshd running from an unencrypted partition. But still at the end of the day it's all about obscurity and obfuscation, you can't make it provably secure. You can go far and make that binary one time randomly generated, obfuscated, bound its running time, you can use a TPM and what not, but it probably won't matter for pretty much any realistic threat model.

</comment></comment></comment><comment><USER19> Wow those speed improvements are very neat. And an awesome blog post accompanying them. Prior to reading this, I've considered Linux disk encryption adding negligible latency because no HDDs/SSD can be fast enough for a CPU equipped with AES-NI, but that view has changed. Two questions: 1. are there any efforts to upstream them? 2. Invoking non-hw-accelerated AES decryption routines sounds quite expensive. Has it been tried out to save the FPU registers only if there is the need for decryption?

<comment><USER20> The existing Linux system is useful for hardware that does less than 200MB/s, so you should be fine with HDDs.

Cloudflare is optimising for SSDs.

They don't talk about latency: all their crypto benchmarks measure throughput. Near the end they hint at response time for their overall cache system but there's no detailed discussion of latency issues.

The takeaway for me is that I'm OK with what's currently in Linux for the HDDs I use for my backups but I'd probably lose out if I encrypted my main SSD with LUKS.

At the end of the article they say that they're not going to upstream the patches as they are because they've only tested them with this one workload.

I'd also be interested to see a benchmark comparing SW AES with FPU-saving + HW AES. Unfortunately their post does not include stats for how often their proxy falls into the HW or SW implementations. Whatever those numbers are, I'd expect FPU-saving + HW AES to be somewhere in the middle.

<comment><USER7> You can easily achieve more than 200 MB/s with HDDs in RAID, but the bottleneck might be altogether different — I think it is an important distinction.

While I applaud their wins, they have basically profiled the wrong thing, established the full overhead when disk speed/latency are basically removed, and only gone to actual production workload at the very end — in the worst case, their improvements could have been for naught, but they were "lucky" (not really, they were smart, but profiles did not really guide them — they just optimised the heck out of the system, but they could have been unlucky and not gain anything if the bottleneck was in a particular place unaffected by their code analysis).

It's great that Cloudflare allows this kind of engineering to happen (investigative, explorative, and not necessarily RoI focused), but it's rare to find a company that does.

</comment></comment></comment><comment><USER21> Has anyone already tried to compile the kernel with these patches for their desktop/laptop with encrypted drive? [https://github.com/cloudflare/linux/tree/master/patches](https://github.com/cloudflare/linux/tree/master/patches)

<comment><USER22> Yes, I'm running them on kernel 5.5.13 (which came out today)

<comment><USER23> Wow, I'd be so happy if you could share the steps you took to achieve this. Let's say I have a Debian machine, how could I try it out?

<comment><USER22> I use Gentoo Linux so it was as easy as putting the patches in a directory, and then rebuilding the kernel with the option to enable the synchronous cipher.

For Debian it's almost as easy: [https://passthroughpo.st/patch-kernel- debian/](https://passthroughpo.st/patch-kernel-debian/)

</comment></comment></comment></comment><comment><USER24> Interesting. One other thing they don't mention that I found interesting when doing my own digging on dmcrypt speeds a while back is that the 'cryptosetup benchmark' command is only showing the single core performance of each of those encryption algorithms. You can verify this by watching the processor load as it performs the benchmark. That lead me to find that if you have a Linux software RAID you can get much better performance by having 1 dmcrpyt volume per disk and then software RAID the dm devices instead of putting a single dmcrypt on top of the software RAID. Curious if that would stack performance wise with what they found here or if that just happened to help with the queuing issue they identified.

<comment><USER25> i remember somewhat recently efforts to parallelize the work of dm-crypt where applicable had been merged. However, i guess having multiple separate encryption parameters and states (read: disks) leaves more opportunity for parallelization of the work especially if disk access patterns are not spread wide enough.

</comment></comment><comment><USER26> >Being desperate we decided to seek support from the Internet and posted our findings to the dm-crypt mailing list

When I see a company such as CloudFlare being so transparent about their difficulties, and trying to find an answer using their community members, it makes me love them even more.

No ego, pure Professionalism

<comment><USER27> Correspondingly, the response they received reflects just as strongly on the community itself.

<comment><USER28> Yep, the response they received was incredibly condescending. The follow-up from Cloudflare remained polite and added a lot more data, and was ignored.

It's a shame because I've seen this condescending attitude quite frequently in the crypto open source community, and am not really sure how it arises. At least in this case it seems to have had the good outcome of motivating Cloudflare to dig in deeper and solve the problem by themselves.

<comment><USER29> Full response: [https://www.spinics.net/lists/dm- crypt/msg07517.html](https://www.spinics.net/lists/dm-crypt/msg07517.html)

From the PoV of the person who responded they didn't provide any relevant information that would indicate what platform they run, or what speed they expect, or why they think 800MiB/s seems slow to them. On many platforms this would be a pretty good result. At first look, it looks like they expected the speed of unencrypted storage, because that's what they tried to compare against.

So the response seems reasonable at first glance to me. They got the answer to their main question. (which they omitted from their blog article)

<comment><USER30> I disagree with your assessment.

> If the numbers disturb you, then this is from lack of understanding on your > side.

This is arrogance on the part of the person replying that hand-waved away their problem "you just don't understand" when in fact, they (Cloudflare) do/did understand. They then went on to prove that it was due to queuing within the kernel, not the hardware as commented by this person in their flippant reply.

<comment><USER29> Cloudflare did not understand at the time. Anyway, I'm not questioning that the reply was not very helpful, I just don't see it as unreasonable. I liked the technical parts of the CF writeup overall.

<comment><USER31> >Cloudflare did not understand at the time

And neither did the people who responded to them it seems.

</comment></comment></comment></comment></comment></comment></comment><comment><USER32> > Unlike file system level encryption it encrypts all data on the disk > including file metadata and even free space.

Anyone have a source on how full disk aka block-level encryption encrypts free space? The only way I can imagine this could happen is by overwriting the entire disk initially with random data, so that you can't distinguish between encrypted and true "free space", i.e. on a brand new clean disk. Then, when a file (which, when written, would have been encrypted) is deleted (which by any conventional meaning of the word 'deleted' means the encrypted data is still present, but unallocated, thus indistinguishable from the random data in step 1), then gets overwritten again with random data?

I would argue that overwriting an encrypted file with random data isn't really encrypting free space, but rather just overwriting the data, which already appeared random/encrypted. It is hardly any different to having a cleartext disk and overwriting deleted files with zeros, making them indistinguishable from actual free space.

<comment><USER33> The point of encrypting free space is just so you can't say how full the drive is.

This way, an attacker can't focus cracking on the fullest disk, match stolen backup disks to hosts based on non-sensitive health metrics, etc.

>The only way I can imagine this could happen is by overwriting the entire disk initially with random data

Traditionally, for speed, you'd write all zeroes to the encrypted volume (causing the physical volume to appear random), but yes

>Then, when a file (which, when written, would have been encrypted) is deleted

You'd just leave it. Crucially, you don't TRIM it.

>I would argue that overwriting an encrypted file with random data isn't really encrypting free space

Yup, that's why it's not done

</comment></comment><comment><USER34> > Data encryption at rest is a must-have for any modern Internet company

What is it protecting against — data recovery from discarded old disks? Very stupid criminals breaking into the datacenter, powering servers off and stealing disks?

A breach in some web app would give the attacker access to a live system that has the encrypted disks already mounted…

<comment><USER25> being able to purge old disks confidently in a secure manner is a upside huge enough to make this statement true in my opinion. There have been numerous incidents even involving companies specializing in securely purging disks. If your data is encrypted there is basically nothing to do you could even outright sell those from your DC or something. Just delete the keys/headers from the disk and you are safe.

Its also not possible to get data injected offline into your filesystem without having the keys. Without encryption you could just get the disk of the targeted server running somewhere and set your implants or what you have. When the server sees the disk back up it looks just like a hiccup or something.

<comment><USER35> > Its also not possible to get data injected offline into your filesystem > without having the keys.

This is, in theory, possibly against volumes encrypted using AES XTS (which seems to the how the majority of FDE systems work) as the ciphertext is indeed malleable.

<comment><USER25> i am no expert on this but i was thinking it is only possible to inject noise which is likely corrupting the filesystem in the process. copying/moving valid blocks should be prevented by XTS as far as i understood (which might not be that much). I guess using a filesystem with integrity checks helps a bit although its still not authenticated or something.

<comment><USER35> There's some more details/links here (I'm also not an expert): [https://en.wikipedia.org/wiki/Disk_encryption_theory#XTS_wea...](https://en.wikipedia.org/wiki/Disk_encryption_theory#XTS_weaknesses)

</comment></comment></comment></comment></comment><comment><USER4> > one can only encrypt the whole disk with a single key

You can still use partitions.

> not all cryptographic algorithms can be used as the block layer doesn't have > a high-level overview of the data anymore

I do not really understand this. Which cryptographic algorithms can't be used?

> Most common algorithms require some sort of block chaining to be secure

Nowadays I would say that from these only CTR is common, which does not require chaining.

> Application and file system level encryption are usually the preferred > choice for client systems because of the flexibility

One big issue with "Application and file system level encryption" is that you often end up leaking metadata (such as the date edited, file name, file size, etc).

Regardless I think that this is a really nice article. I can't wait to try their patches on my laptop.

<comment><USER36> > I do not really understand this. Which cryptographic algorithms can't be > used?

CBC - which is one the most common stream cipher algorithm.

It's not clear me whether GCM would work or not.

<comment><USER37> GCM requires somewhere to put the nonces and authentication tags. In principle, you could use a layer of indirection not entirely unlike a page table to store that information. For example, a 64-bit nonce, 64-bit block pointer, and 128-bit authentication tag could pack together in a radix tree for the job, retiring 7 bits of the virtual-to-physical mapping per level for 4 kB blocks.

Of course, the downside is that now the block layer must tackle all of the write ordering issues that a filesystem does when updating the tree. The block layer would find itself greenspunning up a filesystem inside itself, even if it was a filesystem of only one file.

<comment><USER38> The 128-bit tag length, which offers less than 128-bit strength depending on the nonce size, makes GCM and similar AEAD constructions poorly suited for archival storage. If you want to store more data without rekeying you need to reduce the authentication security. GCM makes perfect sense for ephemeral, message-based network traffic. Traditional, separate, keyed MACs still seem preferable for archival storage, especially with tree-based modes--native as with BLAKE3 or KangarooTwelve, or constructed like SHA-3-based ParallelHash.

<comment><USER37> The tag's strength doesn't depend on the nonce size in cases where you can use sequential nonces. Longer nonce sizes are valuable only when using randomly allocated nonces and you need to avoid the birthday paradox. 64 bits is considerably longer than the total write lifetime of modern disks. Even if you used a nonce per 512-byte block, you'd need well over a yottabyte of writes to roll through that counter.

The profile that authenticated encryption defends against is an attacker who is attempting to feed the victim specially crafted bad blocks. 128-bit tags are good enough that the disk will be completely trashed long before the victim executes something of the attacker's choosing.

</comment></comment></comment></comment></comment><comment><USER39> That response from the dm-crypt mailing list is unreal.

</comment><comment><USER40> Offtopic, but why am I getting two scrollbars on this website? This is weird.

<comment><USER10> There is a scrollable div, the one that leads with:

grep -A 11 'xts(aes)' /proc/crypto

Is that what you mean?

<comment><USER18> I can confirm, they broke scrolling with CSS setting overflow-x in #main-body which for me also shows two scrollbars.

</comment></comment></comment><comment><USER41> Does anyone know what the picture is like on FreeBSD? Is it faster?

</comment><comment><USER42> Does CloudFlare plan to get their kernel patches merged upstream?

<comment><USER43> Second to last paragraph:

> We are going to submit this work for inclusion in the main kernel source > tree, but most likely not in its current form. Although the results look > encouraging we have to remember that Linux is a highly portable operating > system: it runs on powerful servers as well as small resource constrained > IoT devices and on many other CPU architectures as well. The current version > of the patches just optimises disk encryption for a particular workload on a > particular architecture, but Linux needs a solution which runs smoothly > everywhere.

<comment><USER42> I missed that, thankyou.

</comment></comment></comment><comment><USER44> Any chance of this patch making it to the mainline kernel?

<comment><USER45> Not this one, specifically, but they've mentioned that they're working on upstreaming some derivative patches.

</comment></comment><comment><USER46> Neat. Poorly optimized queues can have a significant impact on performance, doubling throughput for disk encryption with some queue tweaks is pretty significant.

</comment><comment><USER47> All this seems to me a series of very strong arguments for doing the crypto in your application.

<comment><USER45> That would be even slower and more complex.

<comment><USER47> Why? The slowness in this article comes from architectural brain damage inside the kernel. Doing the encryption and IO on your threads, when and where you choose to do it, is the solution. As your performance requirements increase, you are less and less likely to want kernel features.</comment></comment></comment>


Pokemon Go: Reverse Engineering of the Android App - <AUTHOR> https://applidium.com/en/news/unbundling_pokemon_go/ <comment><USER2> While unobfuscated code is really nice to have from a hacker's perspective, isn't this a rookie mistake on niantic's part?

Or perhaps was this a conscious decision, not do to it for some reason?

<comment><AUTHOR> Imho, it was more of a "why bother?".

Most of the code is inside Unity, which is harder to access, but they ended up putting more code in the Android part (for the Pokémon Go Plus for example), and probably forgot about it.

They can still obfuscate later releases, but the lack of certificate pinning is going to be harder to fix.

<comment><USER3> Sincere question, is Unity part of the reason the app is unusable (slow and crashes constantly) on my iPhone 4s? Lots of other similar apps work fine.

</comment></comment></comment><comment><AUTHOR> TL;DR:

\- the code is not obfuscated, which makes attempts at reverse engineering much easier.

\- possible to rebuild a functional project

\- dependencies could be better managed

\- no hint to future VR or Cardboard versions

\- it may be possible to downgrade the minimum requirements (below Android 4.4)

\- we can get access to quite a few things: code for location/network/sensors and communication with Pokémon Go Plus

\- the requests can be easily intercepted because of the lack of certificate pinning</comment>


Reddit is introducing User Profiles - <AUTHOR> https://www.reddit.com/r/announcements/comments/60p3n1/tldr_today_were_testing_out_a_new_feature_that/ <comment><AUTHOR> I think this really shows how hard it can be to monetize. So far this proposition seems unanimously unpopular among reddit users, because it goes against the spirit of the site.

Reddit already has a stable source of income - Reddit Gold - that could easily cover hosting costs, but thanks to the acquisition by Conde Nast they now have way to many staffers and are trying way to hard to justify their supposed valuation.

I am really fond of reddit (even though the content quality has decreased dramatically in the past months already), and I hope they will be able to come up with a monetization strategy. Frankly I have no Ideas here, anyone ?

I apologized if this comes across as rambling, I am tired and a bit sad about this.

<comment><USER2> I could see this leading to more youtube style personalities on reddit, even stuff like streams could find a place on their user profile.</comment></comment>


Western firms kowtow to China's increasing economic clout - <AUTHOR> https://www.dw.com/en/western-firms-kowtow-to-chinas-increasing-economic-clout/a-50797033 <comment><USER2> While the post goes over a few instances of companies that have acquiesced to China's political views, this reddit post has a much larger list: [https://www.reddit.com/r/HongKong/comments/dfg1ce/list_of_co...](https://www.reddit.com/r/HongKong/comments/dfg1ce/list_of_companies_under_chinas_censorship_orders/)

<comment><USER3> It's like an improved Soviet joke:

American: in our country we have the freedom of criticizing our president Chinese: we sure have the freedom to criticize your president American: no no I mean you need to have the freedom to criticize your president Chinese: we can't, but can you? American: well...

</comment></comment><comment><USER4> "Forced to", "had to" doesn't strike me as appropriate language. These are choices - some in reaction to threats or bans but many entirely speculative/pre-emptive.

<comment><USER5> Publicly shared companies have a legal obligation to make money for their shareholders.

If a stakeholder in a major market can influence whether or not these companies can make their revenue forecast (and therefore making institutional investors' pensions solvent and individuals' mortgage payments payable) then yes, they can force such companies to capitulate to them.

The third forcing function to reckon with -- the moral duty to uphold Western countries' increasingly nebulous, compromised values -- has barely any leverage in this equation.

What is a responsible, law-abiding executive supposed to do?...

<comment><USER6> This is often repeated, in part because of some dubious behavior between Ford and the Dodge brothers, but not precisely true.

"modern corporate law does not require for-profit corporations to pursue profit at the expense of everything else, and many do not do so."

See: [https://www.lawschool.cornell.edu/academics/clarke_business_...](https://www.lawschool.cornell.edu/academics/clarke_business_law_institute/corporations- and-society/Common-Misunderstandings-About-Corporations.cfm) and the linked Hobby Lobby case opinion.

<comment><USER5> Hair-splitting. The obligation is enshrined in law. Shareholders invoke it. The consequences are a change in leadership, not jail.

To quote the linked opinion:

> In nearly all legal jurisdictions, disinterested and informed directors have > the discretion to act in what they believe to be the interest of the > business corporate entity, even if this differs from maximizing profits for > present shareholders.

This is a perfect example. Western companies are antagonizing their US market in favor of developing a future Chinese one.

<comment><USER6> It's not, though. To counter your original point, a corporation could decide to not appease China, even if it means a loss in profits. They could justify it any number of ways, saying the US market may be more valuable to their company, or that trade tensions with China make things unstable. There is no legal basis forcing companies to appease China.

<comment><USER7> Exactly. And even if there was a legal obligation to make money at all costs, it could easily be argued that kowtowing to China is a short term strategy with severe long term consequences. You might make more money now, but that will be negated when they steal your IP and the government siezes your property.

</comment></comment></comment></comment></comment></comment><comment><USER8> I wonder if this will stop western firms from taking any political stances in the west, because right now the optics are... interesting to say the least.

<comment><USER9> Only taking the already prevailing political stance is safe, and has always been.

Free speech being seen increasingly less valuable than other things (fairness, care for the unprivileged, social peace, etc, depending on your country), and the ease of raising massive furor in social media, I suppose firms will firmly stay away from taking any political stance, except pleading allegiance to the currently prevailing view.

</comment></comment><comment><USER10> Alternative title.

People who want to make money kowtow to the opinions of people with money to give them.

<comment><USER11> Sort of, but in this case circumstances are somewhat complicated by the PRC's authoritarian government which is prepared to deny market access for political reasons.

So it's not the opinions if the people with money to give that are at issue here but the opinions of the gatekeeper, which actually is a remarkable phenomenon.

<comment><USER12> Was China less authoritarian in the 80s and 90s when mass manufacturing migration between West and East started?

The West gave China the capital they are now using. Soft and hard capital and power.

It seems cheaper to fight media-propaganda proxy wars than actually do anything about it - as in, promote reversals on this manufacturing divestment.

<comment><USER13> > Was China less authoritarian in the 80s and 90s when mass manufacturing > migration between West and East started?

No, but back then many people assumed trade would liberalize China. Turns out they were wrong, at least for the foreseeable future.

</comment></comment></comment></comment><comment><USER14> Economic clout or greed? "We've pretty much saturated western markets and China is the only market left to make more money even though we're doing just fine"? Pretty much all of the companies bending the knee don't need the money.

</comment><comment><USER15> The Great and Wise Randy Marsh has said all that needs to be said about this.

[https://www.facebook.com/southpark/photos/a.412559132004/101...](https://www.facebook.com/southpark/photos/a.412559132004/10156698439247005/?type=3&theater)

</comment><comment><USER16> I understand that companies need to do everything in their power to maximize profits. However, we as concerned citizens should also not 'enrich' these companies by continuously supporting them. We are simply lucky that we are living in a relatively free world when so many are not.

</comment><comment><USER17> Looks like though this is the future. It's Capitalism where you love a product, say freedom of speech or democracy, but the company that supplies it gets bought out. And now you can't get that product anymore because it's not a part of the new company's corporate strategy. It's the same thing really. All these companies get bought out by the Chinese. Same thing goes for natural resources and the environment. They are just being bought out. Get things you need while supplies last.

It would be interesting to see Trump pass a law prohibiting any US company from doing this... from stiffing freedom of speech to support China.

<comment><USER18> I'm not a huge fan of capitalism, but it's a bit of a stretch to call this situation a failure of capitalism when the whole debacle exists because the Chinese government is making demands of Apple, which is not very capitalist. It doesn't really make sense to attack the ideology using an example where the ideology isn't really in practice, unless your point is that capitalism fails because it isn't flexible enough to work in a world where it does not reach 100% adoption. If so, fair enough, but I think that same criticism applies to every other economic system.

<comment><USER17> What if on the other hand this is the fundamental aspect of Capitalism... Where the people with capital are always telling other people who might want access to whatever they are holding, money, markets, production, whatever, that if they don't kowtow they won't do business with them. And no one talks about it, just like no one talked about all the Chinese hacking so as not to ruin their reputation and anger China.

<comment><USER19> First of all, it's not a capitalism-issue. Pre-capitalism, any smith could've told you to take your horse elsewhere if they didn't like you.

> just like no one talked about all the Chinese hacking so as not to ruin > their reputation and anger China.

I feel like that's a bubble issue. I'm not particularly interested in the latest "China hacks XYZ" stories and I see them all the time. If you have the impression that nobody talks about them, I think you might need to read more main stream news, they do get a lot of play.

<comment><USER17> I don't mean currently no one talks about China, I mean there was a period after 2009 where there were a number of hacking incidents that no one talked about until much later.

As for a Smith refusing, yes, that could be the case. But there was no consolidation of power and industry as there is in Capitalism. So you could easily find many other Smiths to help you with whatever you needed. Going forward there are many specialized industries many of which are extremely consolidated. So you can't just go to someone else they own a whole spectrum. And that also makes it much easier for China to shut down things, as they could blacklist a whole set of businesses not just one.

<comment><USER19> > So you could easily find many other Smiths to help you with whatever you > needed.

I don't think that's accurate. The world expanded a lot since then, you can _now_ buy online, order something from across the world etc, but you couldn't do that 200 years ago. If you were in bad standing with whoever sold what you needed, you'd have to go through a lot of trouble to source it elsewhere.

I'm with you that nation states/blocs need to make sure not to rely on foreign companies for key industrial needs. It's why I consider Europe's reliance on US IT companies a problem. The US will make sure they don't depend on China, so I'm sure that there will be at least two choices in the foreseeable future. Just make sure you don't piss off China and the US simultaneously.</comment></comment></comment></comment></comment></comment>


Redstone Word Processor in Minecraft [video] - <AUTHOR> https://www.youtube.com/watch?v=g_ULtNYRCbg <comment><USER2> People use some sort of automation to do these kind of things, right?

It reminds me of the Game of Life image generator I made awhile back: [https://vimeo.com/3124876](https://vimeo.com/3124876) That was just a matter of writing a script to place a bunch of "guns" with the right patterns in the right places.

<comment><USER3> Sometimes WorldEdit is used to duplicate strips (create the first one manually and copy twenty times). Almost certainly used for the screen.

<comment><USER4> Yep, that's as far as you can go. Obviously you can fly around the world and place things from any distance, but it's a bit of work still.

Would love to see someone build a program that automates this, though!

</comment></comment></comment><comment><USER5> These types of creations always make me feel embarrassed about the things I've built in Minecraft.

Then again, I don't really have the free time outside of family and work to dedicated to building things on that scale.

</comment><comment><USER6> This is spectacular.

Redstone circuitry is an excellent exercise in the operation of digital circuits. I learned a ton about digital logic by trying to recreate stuff like this (albeit much more modest incarnations).

Building sophistication yourself out of base elements is the ultimate educational experience.

</comment><comment><USER7> What about unicode support?!

This is absolutely amazing. When people build things like this in minecraft (I've never played), do they have to place each individual block or are there scripts and things to let you repeat patterns etc?

<comment><USER8> There are many mods and tools available to assist with building large projects. However, there are many players that build things like this completely by hand. It's a pride thing I think.

</comment></comment><comment><USER9> How does redstone work in Minecraft? Is this the kind of stuff you're "supposed" to use it for?

<comment><USER10> Redstone is basically a cellular automaton. Every 'tick', the state of redstone cells changes based on their previous state, and their neighbors. Some redstone cells just forward 'activeness'; others invert it, or delay it. Obviously by connecting these elements together you can create simple logic circuits. redstone is "supposed" to be used for simple things like traps, automatic doors, and machinery to move things around. Obviously by connecting simple logic circuits together, you can create complex logic circuits. Minecraft's block grid places interesting constraints on how redstone circuits can be constructed (areas need to be separated to prevent their state leaking, messages take time to travel long distances). Making a truly complex, sophisticated system which operates rapidly and correctly takes considerable logic and minecraft engineering. This, for example, is hugely impressive. Redstone was not built with this sort of thing in mind, but was made sophisticated enough that this is possible. I guess that's turing-completeness for you.

<comment><USER11> > Obviously by connecting simple logic circuits together, you can create > complex logic circuits. Minecraft's block grid places interesting > constraints on how redstone circuits can be constructed (areas need to be > separated to prevent their state leaking, messages take time to travel long > distances).

The exact same thing happens in the real world, hence isolation and things like the speed of light.

<comment><USER10> Right, building things out of redstone more closely analagous to building things out of doped silicon, rather than out of discrete components or ICs. Building logic using pistons vs torches always struck me as being a bit like the difference between RTL and TTL, but maybe that's stretching an analogy too far. The point is engineering a digital device out of redstone requires tradeoffs in space and speed and complexity that I think make it qualify as a real form of engineering. Made all the more impressive for how impractical and pointless it really is.

</comment></comment></comment></comment><comment><USER12> "Your minecrafters were so preoccupied with whether or not they could that they didn't stop to think if they should."

P.S. Really, I'm just wowed beyond belief. This is amazing.

</comment><comment><USER13> Reminds me of this: [http://www.theverge.com/2012/5/21/3032765/minecraft- emulated...](http://www.theverge.com/2012/5/21/3032765/minecraft- emulated-6502-cpu-redpower-2)

</comment><comment><USER14> Wow! ... very impressed. By the effort, ingenuity and by minecraft too.

</comment><comment><USER15> Was something like this built by hand, or was the map programmatically generated by some kind of tool? Or a mix of both?

<comment><USER16> A mix. MCEdit was used to copy-paste segments around.

</comment></comment><comment><USER17> I'm wondering when someone will build a python interpreter and allow you to run simple scripts within minecraft.</comment>


OpenID: Great idea, bewildering consumer experience - <AUTHOR> http://miksovsky.blogs.com/flowstate/2007/08/openid-great-id.html

<comment><USER2> Great post. I'm working on an OpenID implementation for my site right now so I've been thinking about this stuff. I really want to use OpenID exclusively, but not sure it's ready for prime time.

What we really need is a way to wrap the OpenID sign up process within our site registration, and when the registration is done tell the user 'Hey, you now have an OpenID which you can use on tons of other sites!'. I doubt that many non-geek users will be wading through all OpenID pages to find out how to actually get one - they will use it if they can sign up for one _on my site._

Also, there should be an OpenID signup form right on the front of the openid.net site - why isn't there? They could just send it to a random provider or something. OpenIDs are so easy to use once you have one, yet so difficult to get.

Here's another thing I'm considering: since all AIM addresses are OpenID's now, just ask people for their AIM address and never even mention OpenID. Maybe make the login form default to AIM with a little text link to switch to OpenID, for people who know what it is.

If I figure out a frictionless OpenID strategy, I'll post it up here on news.yc.

<comment><USER3> Brian i think a wrap system would be a great idea. it would probably be the best way to get a program like this off the ground, while benefiting other webmasters at the same time. Unfortunately such a thing like that reqiures coordination between webmasters (or hackers should i say) that still doesn't exist in the commerical webscene (we all see each other as competitors trying to steal one anothers members).

It seems like the only way something like OpenID could get its start is if a big player adopts it like wikipedia and the rest of us follow.

But a great creators community is starting to emerge here at ycombinator, perhaps with a forum or something here at hackers news we can lead the way to a universal ID system that would make the web better for everyone.

<comment><USER2> The benefits of a robust, frictionless OpenID/reg solution probably outweigh competitive concerns for most people (on here, at least). Sometimes the potential benefits of cooperation outweigh the risks.

It would really help if a big player made a commitment to OpenID, but I'm not sure that's the only way it could catch on. If tons of smaller players could come together on a wrap-type system, we might eventually force the big fish to adopt it via pressure from the margins. It could happpen, it's a very compelling technology in a lot of ways. It would have to be really, really well-designed - that's key. I think it's do-able.

That being said, I want to see what YC-funded clickpass.com is like before I go crazy on some big new effort. If they have a killer solution I may just use that. Also, I doubt YC would appreciate it too much if I start an open-source competitor to one of their companies on hacker news.

</comment></comment></comment><comment><USER4> There's a YC company (sitepass, I believe) that is working on using OpenID. I assume they are working to assuage these problems?

<comment><USER5> I read where the name you mentioned was effectively unusable because it previously belonged to a (um...) salacious enterprise. As a result, it's blocked in nearly all web content filters, which is a problem in lots of schools, workplaces, etc. Something to watch out for if you re-use a domain name...</comment></comment>