Running LibFuzzer in a Browser, via WASM [pdf] - <AUTHOR> https://github.com/jonathanmetzman/wasm-fuzzing-demo/blob/master/meetup-Fuzzing-Native-Applications-in-Browsers-With-WASM.pdf <comment><USER2> Nice!

One application could be distributed fuzzing, where anyone can partake in fuzzing important software (eg. OpenSSL) by just running a web page in their browser. Native binaries are less suited for this because adequate sandboxing is hard, but the security properties offered by WASM and browsers make this no less secure than running any other web page. With this, anyone can contribute to the quality of OSS without any technical skills, anonymously and free/cheap. For vendors willing to pay bounties for (OSS) software bugs, their current process can be automated and participation is incentivized. Offering bounties (like Google does now for OSS-Fuzz integrations) for new bugs or code coverage incentivizes development of superior fuzzing/static analysis/symbolic execution tech and submission of custom-made inputs; without a centralized tracking and verification system, this would be much more tedious to organize. WebTorrent might be used for distribution of corpora/new inputs.

<comment><USER3> Right I think WASM offers some nice advantages over native for distributed fuzzing.

It's also worth pointing out that Mozilla made a (non-WASM) distributed fuzzing project, virgo: [https://github.com/MozillaSecurity/virgo](https://github.com/MozillaSecurity/virgo) but it appears to be inactive.

</comment></comment><comment><USER4> Are there any benefits of running the fuzzer in-browser rather than on a native binary? Does the fizzier exercise different code paths for each? Do other bugs pop up?

<comment><USER5> The potential application is hinted at with the slide "OSS-Fuzz@Home". Akin to the SETI@Home* mass-distributed computing project, this has the potential to scale in a HUGE way. Anyone with a web browser could simply load the fuzzer and contribute cycles... No need for any big downloads, any installs, special software, configuration or anything! Just visit a page and you're golden.

I wonder if Google will actually build on this. It's a great idea.

[1]: [https://en.wikipedia.org/wiki/SETI@home](https://en.wikipedia.org/wiki/SETI@home)

<comment><USER3> I don't think we have plans to build this for now.

I find it a really cool idea, but for now, running fuzzers natively on Google Cloud with ClusterFuzz ([https://github.com/google/clusterfuzz](https://github.com/google/clusterfuzz)) suits our needs.

One challenge for the WASM approach is it will always be at least as hard to build a project for WASM as it is for native.</comment></comment></comment>


Rate my Startup - Organise Twitter with tags - <AUTHOR> http://tags4.me

<comment><AUTHOR> R.E. eggbrain's inital question "I don't have any real good idea what you are doing right now -- Twitter is already partially organized by Hashtags, what more does your website do? Is it looking for bigrams and trigrams to determine tags? If so 140 characters might not yield you much useful data. If not, could you explain it a little more?"

Great question! Twitter's hashtags, as far as I can, see are a great idea but in most part under or misused.

For example, in the stream that I receive, just looking at the first 25 tweets there were a total of 2 hashtags, #email (which is useless) and #SXSW. I would have more luck searching for "#imjustsaying" than if I searched for something like "#programming #rrails". Plus the limit that 140 characters means in many cases there just isn't room for a descriptive set of hashtags, and do I really want to only be able to classify information based solely on the author's suggestion.

I totally agree that looking for bigrams and trigrams in such a limited set of data would not be very helpful.

So what I thought, and what is the idea behind tags4.me, is that having read the data and followed any linked information I am the best person to classify the information in a way that is meaningful to me.

For example the actual reason I created this is that a little while ago I remembered that I had seen a really good startup a month or so prior float past in my stream. I checked it out at the time and thought, "gee I must remember that and tell ___". Well of course a month pasted, I saw the person and couldn't for the life of me remember it, what the site did, and I couldn't find it after searching twitter. Hell I didn't even know what to search for.

Now if I had been able to classify that in a way that meant something to me, for example with the tags "Startup, Programming, Development, Analytics, Awesome". With my site it takes like 2 seconds and at anytime in the future I could enter any combination of those tags and see that tweet again.

I just thought that it might be a useful tool, and having followed HN and YC for a little while, thought I would love to get some feedback from the community.</comment>


Chinese Startups: How they differ from US - <AUTHOR> http://venturebeat.com/2010/04/27/5-insights-about-chinese-startups-from-former-google-china-president-kai-fu-lee/

<comment><USER2> Nice to see someone addressing the problem of early stage companies in China. As I was reading through the differences in China vs. the US, I was struck by the similarities to Japan as well. People are much more risk-adverse here and having a startup, to put it mildly, is not usually a source of pride, at least until you have serious funding. This also makes it difficult for B2B startups to gain traction.

A friend of mine told me that Japanese companies look for the following in vendors: 1. have they IPO'd? if not then, are they 2. funded by a big VC? and, failing that, have they at least 3. won some award?

It all comes back to a lack of desire to reward innovation despite its obvious risks and wanting to play it safe by requiring external validation.

This can be good, in a way, because it forces entrepreneurs who still decide to operate in this environment figure out the needs of what we in the US would call the "late-majority" on the technology adoption curve (which is also usually about half of the largest part of any given addressable market).

I'm guessing (though only guessing) that some of these things are also true in China. Perhaps it's very different in B2C.

<comment><AUTHOR> I am not familiar with B2B, but I had the impression that the B2C companies in the area of technology and manufacturing have been mostly founded by high-net worth individuals, and scalability has been a function of enlisting the help of provincial leaders and state-owned banks.

</comment></comment><comment><USER3> > It's like Y Combinator

....

> a $115 million fund in order to create five successful Chinese startups a > year

The funding levels imply it is less like YC and more like a standard VC. With those numbers -- even assuming 50% overhead, and five years of five startups each -- that's over $2 million per startup. YC starts at $17k to $20k per startup.

<comment><USER4> $2 million is an _astounding_ amount of money in China. You can get engineers for $10-15K a year, and designers, sales, and marketing people for a lot less. Equipment can be a little more expensive than the U.S., but office space is dramatically cheaper, as is virtually everything else.

I imagine that the high level of funding is to impress the hell out of potential partners and new recruits. For a variety of reasons, many people in China will shy away from a new and risky business. In order to get employees and partners on board, you need to give the impression that you are large, in charge, and not going anywhere.

<comment><USER5> The problem is that from my experience trying to hire here, it's extremely difficult to find good engineers.... Cheap engineers are dime a dozen, but quite a few I've interviewed can't even do the fizzbuzz test.

And of those that could most were needed a lot of hand holding to do any basic tasks (and some of those were people with 3 years experience, I can't imagine how they could have provided any value to the company they were working for)

</comment></comment></comment><comment><USER6> I'd like to say that all these points are valid for India as well particularly the 3rd point about Failure not being an option. I started an ecommerce startup (bad decision) with a friend of mine (again bad decision) whose parents were keep pressuring him to pursue "MBA" instead of doing business. Parents in these societies have lot of say in the future of their children and thus are very apprehensive about risky career options.

</comment><comment><USER7> Venture Beat should try visiting the links they publish in their articles.

Kai-Fu Lee's Innovation Works is www.innovation-works.com not www.innovationworks.org</comment>


You Do Not Need Blockchain: Eight Popular Use Cases and Why They Do Not Work - <AUTHOR> https://forkast.news/2019/09/09/opinion-you-do-not-need-blockchain-eight-popular-use-cases-and-why-they-do-not-work/ <comment><USER2> So, the article is basically saying that everything except Bitcoin is bullshit. I agree.

<comment><AUTHOR> I tried to avoid being so categorical. However, this is the conclusion I have come to so far)</comment></comment>


NY Top Court: Immigrants Are Entitled to Jury Trials If Deportation Can Result - <AUTHOR> https://reason.com/blog/2018/11/28/new-yorks-top-court-rules-immigrants-are <comment><USER2> I wonder how the decision from Jennings v. Rodriguez played into this courts ruling. While Jennings v. Rodriguez gave immigrants the right to periodic bond hearings [1], it gives them civil rights from the start.

1: [https://www.npr.org/2018/02/27/589096901/supreme-court- rulin...](https://www.npr.org/2018/02/27/589096901/supreme-court-ruling-means- immigrants-can-continue-to-be-detained-indefinitely)

</comment><comment><USER3> How much better is the jury trial than the alternatives for those who are not, uh, a "culture fit"? For example, those that are "highly melanated", or of "mestizo persuasion (and Mexican extraction who 'no speaka da English')" or covered head to toe in burka or limp -wristed homosexual or, again, Boris who is fresh off the boat from Belarus with the thickest of accents and broken grammar...how do they fare with the jury who I am assuming will be made up of those who represent the opinion and culture of the majority for who those listed above are not always the "most respectable of people"? I guess one could argue this is NY, not Alabama, but then again, NYC is not synonymous with Upstate New York.

I apologize for my own grammar. Asking the question for my friend :)

<comment><USER4> Presumably, some of those that are selected to be a "jury of your peers" are going to be the same demographic as you, that is if you have a good lawyer who can select the right jury.

<comment><USER5> How many people about to be deported are going to have access to good lawyers proficient in jury selection?</comment></comment></comment>


Ask HN: What Have You Learned at Google as a Software Engineer? - <AUTHOR> Hello Googlers (former and current ones),<p>What have you learned at Google, as a Software Engineer, that you think was interesting and helped you up your game as an engineer? Anything you can share with people outside of Google that can help them improve as engineers? <comment><USER2> Not Google, but another Big Tech company.

Visibility is very important to getting a promotion at a large company. Selling your work is important.

To move up, you must be playing the "choose a good project or team" game for at least 6 months before you try to get promoted. Preferably for a year or more to hit the right checkboxes for multiple cycles.

If you fail to do so, you can do absolutely amazing work but rigid processes and evaluation criteria will conspire to defeat you in a promotion committee setting.

At least, that's true in my company. From my ex-Google peers it seems to be true there as well.

Being in a smaller office means you get fewer of the best projects available to you. Reorgs sometimes steal them. Cancelling projects makes the last half a waste of time from a promotion standpoint.

As for what constitutes a good project. It will:

* Let you lead it

* Have peers at your level + one or two

* Work with multiple other teams

* Ideally work with multiple teams outside of your group, e.g. you're in, say, a chat app team and get to solve issues for some other app

* Good product manager and designers with a well thought out product; it's not fair, but if the project is successful business-wise people will often incorrectly attribute that to your own skills

* Have large engineering scope. Committees get confused and sometimes think simple designs to solve complex problems are bad. You want to solve problems that are complex even in terms of the solution (or can be made to sound complex) to check more boxes.

* Allows you to solve problems for other teams

I haven't optimized for promotion and thats personally hurt me in the quest to get to L6. I very, very close but didn't quite make the leap.

Don't ignore the flaws in this committee process. Exploit them.

Don't be me.

<comment><USER3> What does "promoted" look like for an software engineer at large tech companies? In my company you're either an individual contributor or tech lead. There aren't really any other rungs on the ladder without going to manager.

<comment><USER4> At Google there's an IC ladder from level 3 (new grads) to 11 (Jeff and Sanjay). Basically it's a pay scale. Half of engineers are below 5, and 90% are below 6.

Edit: pretty sure I was off by one originally. But you get the idea: it's a triangular organization with a lot of people at the base.

<comment><USER5> For pay ranges check out some charts we've compiled at [http://levels.fyi/charts.html](http://levels.fyi/charts.html)

<comment><USER6> I decided to focus on power engineering instead of software in the mid 2000s since I thought a lot of software jobs would be offshored. Big mistake in terms of compensation!!

</comment></comment></comment></comment></comment><comment><USER7> Other than having "Google" on my resume there is nothing special or applicable outside of Google. Most tools are internal, isolated and the choices are restrictive. Management is shitty - micro-management is in full bloom, display lack of management knowledge, skills and there's plenty of abuse of power. They don't show their appreciation to what we do. All developers are very competitive. My entire time of over a year in 2 different teams is spent in isolation and self learning without much help or directions. I'm currently actively interviewing outside.

<comment><USER8> How can you have micro-management and isolation?

<comment> D-Coder They ignore you for weeks, then complain about every line of code and solution you've produced and tell you how you should have done it. Repeat every month or two until crazy.

<comment><USER8> Complaining at the end is a different problem that gets solved during the requirements phase. They are not micro-managing your day but the end results against expectations.

</comment></comment></comment></comment><comment><USER9> I spent 9 years at Google, just left at the end of July.

The biggest thing I grew to appreciate was that for iterating large scale production systems, rollout plans are as important as anything else. A very large change may be cost or risk prohibitive to release at once, but with thought you can subdivide the release into easier to rollout and verify subcomponents, you can usually perform the same work as a series of lower risk well understood rollouts. That's critical enough where it's worth planning for this from the design phases: much as how you may write software differently to allow for good unit tests, you may want to develop systems differently to allow for good release strategies.

Google is a large company, and I think there are software engineers learning very different things from what I focused on. I worked on large scale machine learning in ads; someone working on chrome or Android likely learned very different things.

<comment><USER10> (Hi Danny!)

Yeah Google has a lot to teach about building and maintaining reliable systems.

I noticed that a lot of that, including the name SRE, gets cargo-culted by other companies without really understanding what it is.

I also guess that there might be people within Google that don't end up working in projects that invest in reliability (for whatever reason) and so might have had different experience.

</comment></comment><comment><USER11> 8 years; what I've learned -- working in absolutely huge code bases, good C++ style, good code review culture, intellectual humility.

What I haven't learned: how to thrive in a huge organization with people more bureaucratically ambitious/motivated than you. How to turn a blind eye to broken waterfall method dysfunction. Starting to get to me. Probably looking for the door soon; p.s. entertaining offers for remote (Canada) work.

<comment><USER12> > entertaining offers for remote (Canada) work.

want to add an email or something to your HN profile :-)

<comment><USER11> Is it not visible? It's there. Don't see an option to make it public.

<comment><USER13> put it in the about field. The email field is just for HN systems and staff to e-mail you.

</comment></comment></comment></comment><comment><USER14> Everybody comments about how there are all these amazing tools that help your productivity (which is true), but they don't talk about how the opposing force of organizational complexity ultimately results in "just normal" levels of productivity.

They don't cancel each other out exactly though, so some things are _way_ easier (spinning up a huge computation), while some things are _way_ harder (making a small change to shared components).

<comment><USER15> I thought the monorepo setup made cross-project dependency changes easy?

<comment><USER16> Well, it depends. If you have an API with only a few direct usages, you might do it in a single commit. Changing API's that have many usages is difficult to do atomically even if you have a monorepo, due to the difficulty of getting approvals and the risk you'll have to roll it back.

Often it's better to introduce a new function and migrate usages to it across multiple commits.

Either way, it's on you to fix everyone else's code, which is a different mindset from releasing a library and letting downstream users do the migration themselves when they feel like it.

<comment><USER17> In Chrome, more often than not it happens in one big commit.

<comment><USER16> That's a single project (though a large one). I'm thinking of lower layers where there are many downstream projects.

</comment></comment></comment></comment></comment><comment><USER18> I've been at Google for 1.5 years and before that startups. I've learned a lot about working at a large company (getting adjacent teams on board with my ideas, writing compelling design docs, etc). I haven't observed any changes in the quality of my code or ideas.

</comment><comment><USER19> * Always be learning and doing. Never be stagnant. Even if you are in a very boring team you can still learn and supplement your skills / knowledge on the side. This may or may not help immediately but definitely helps long term.

* Really practice open/active listening and critical thinking: there are very smart people and it's really good to assume good intent when they talk. Critical thinking and question is more around 'where is the disconnect? How do I try and actively move towards and see their point of view'.

* Questioning authority and being able to say no.

* Don't use code reviews as a debate forum but instead as a learning forum. Granted time is of essence, so a timely resolution may be necessary but learning and actively listening through reviews helps your skills as a coder.

* Cut through heirarchy and organizational politics to achieve the larger goals for the team, the project and ultimately for Google.

</comment><comment><USER4> The most important thing I learned there was that you hire and promote people not so management can tell them what to do, but so they can tell management what to do. I didn't even realize it at the time but the first post-Google job I had there was some clueless manager trying to set the roadmap and I was like "LOL what is this guy's problem?" That when I started noticing the reasons that Google succeeds.

</comment><comment> awinter-py A friend who spent a short time there said "you know that tool that you want to build before you start working on your real job? At G, it already exists"

This is less true now because a lot of their tooling has been exported either directly or by rumors leading to it getting rebuilt outside. I'm talking containerization / orchestration and protobufs specifically.

<comment><USER20> > At G, it already exists

quality of the tool has also significant impact on the end result. Looking at the number of unsuccessful external projects, I bet they also have enough mess inside.

<comment><USER17> Right search , maps , YouTube all run smoothly because of a "mess". Google code is some of the cleanest most organized I've seen.

</comment></comment></comment><comment><USER21> Not Google but similar. I learned that my motivation is proportional to the quality and amount of free food I receive. This includes willingness to participate in pointless meetings.

Note: this is not something I'm particularly proud of or anything. Just an observation.

<comment><USER22> The food isn't truly free.

<comment><USER21> I mean, nothing is truly free, but I'm not the one paying for it in this situation, so for me it is free.

</comment></comment></comment><comment><USER23> 1) All big companies inevitably devolve into Dilbert, no matter how cool they seem from the outside

2) Humans are easily fooled by signaling and vanity metrics, exploit this quirk

3) Depends on the team, but in general working at a big company is 10X easier and more relaxing than working at a startup. You'll probably never go back to working at a small company after realizing this.

4) Buddying up to the right people will dramatically alter your experience in a big company—meritocracy can never exist when human emotions are involved

5) the difficulty of the interview process is just plain bizarre given how simple the daily jobs of 95% of the engineers are

6) you will have the nagging feeling a high school kid could do most of the (non engineering) jobs in the company with a few months of on the job training

7) due to 5 and 6, unless you are a sociopath, you will feel guilty on a daily basis for building generational wealth while an immigrant contractor struggling to get by dishes out your free food

8) you will learn that at most big companies, the innovation is in the past

9) on the bright side, google does have really cool internal tools and perks

10) after leaving, people will grossly overestimate your intelligence and skill level due to the name google being on your resume (see #2)

</comment><comment><USER24> Big organizational problems can't be fixed by writing better code. Meritocracy sounds nice but you have to learn to play office politics. New products and new features should have a business case (yes, even at Google) so that eventually they can stand and be valued.

</comment><comment><USER25> Perhaps nice to mention here: "Talks at Google"

[https://talksat.withgoogle.com/](https://talksat.withgoogle.com/)

Not restricted to just software engineering, though.

<comment> forgot-my-pw I think Talks at Google is mostly not about Google?

For the engineering side: [https://www.youtube.com/user/GoogleDevelopers](https://www.youtube.com/user/GoogleDevelopers)

</comment></comment><comment><USER26> Even really smart people sometimes write really dumb code. Including you. :)

</comment><comment><USER27> At Google for 9 years, startup before that. Roughly half my time at Google I worked on individual products, and the other half on open source infrastructure (common libraries, compilers, linters, IDE plugins, etc).

The biggest thing I've learned is how software changes over time. Previously I thought of a good program as like a crystal. Write it correctly the first time, and it doesn't need to change much, if at all. Sure you might want to add features or fix bugs, but otherwise you write it once and it's good forever, right?

Most programs are closer to organisms than crystals. They're adapted to specific niche, and when the world changes around them they need to either adapt or die. This is the biggest gap I notice between senior devs and strong junior devs. Junior devs have mostly built things, released them or turned them in for credit, and then moved on. It's rare to find a junior dev that has maintained an app for the long haul, and it accounts for so much of the advice that I found strange when I was junior:

* code is read many more times than it is written

* be very mindful of your dependencies, if push comes to shove you could end up owning them

* commenting why is often more important than commenting how. it's good to comment about both, but it's much more important to comment why. the source code explains how, but it has nothing about why

* it's ok to love your code, but delete it the first chance you get. it will save you and the people around you a lot of time

Do you think I'm overselling things? Maybe that's a problem for people who write code in $cursed_language on $bad_platform but your tools favor writing True and Long Lasting Solutions That Stand the Test of Time!

Let me give a handful of real world examples:

* A major security vulnerability is found in an API that previously seemed safe. Refactor your code not to use it.

* Turning on a certain compiler optimization breaks a pattern common in your code. After some experimentation, you discover an ugly fix that you then need to apply to everywhere in the code that uses that pattern.

* A compiler/browser/hardware update adds support for a feature that your code has been using a bunch of ugly workarounds to cope without. Do you use the new feature? Do you still support running without the feature? Is it a breaking change to users downstream of your code? How much does it improve things, how hard will it be for your users to update, and how many users do you have?

* You need to migrate to the new version of one of your dependencies. Maybe this is just a version bump, maybe you end up needing to review every single line of your app.

* Your app for phones and desktops is working great! We want to run it on TVs as well! This means a brand new (and super weird) matrix of features that are and aren't supported, from hardware to OS to UI.

In short, the only constant is change. Write your code so that you can go away for six months and forget just about everything about it and still be able to maintain it. Lots of tests, document why decisions were made, and it's like Bruce Lee said, be like water.

<comment><USER28> I like your organism explanation. This is something I've learned over the past decade, albeit not at any company at the level of Google.

The way I've often describe software to clients is likening it to Formula 1 cars. With a normal car, you turn the key and drive, and it should definitely work for anyone. With a Formula 1 car, the tyres need to be warm, the driver needs to be experienced, and there are so many reasons why a working car can stall that careful monitoring, maintenance, and revision needs to be done long-term by an experienced team.

Sure, the software on your computer might run like the former, but in the background that huge pit stop team has been plugging away for years, and will continue to plug away with optimisations and fixes.

</comment></comment><comment><USER29> You should replace Google with "big tech company" or FAANG to get more responses.

<comment><USER17> FAANG don't share the same engineering culture.

<comment><USER30> Yes they do. In all these places except Amazon, the engineering culture is essentially identical. I've worked at 2 FAANG companies and a few startups that had a big influx of ex-Google engineers. In fact it's a whole process that startups go through to copy Google: monorepo + misguided in-house tooling for it, homebrewed canary deployment strategies, naming things "mon" like "altermon" or "datamon", etc.

It's a very miserable monoculture.

<comment><USER31> I assume the two FAANG you are referring to are the F and G. The rest of the letters aren't like that. At least no monorepo.

<comment><USER32> Or "mons".

</comment></comment></comment></comment></comment><comment><USER33> Google showed me the fine engineering at large scale. And the key is the people as they are behind everything.

That's why I changed my view on who was the key person for google success. I used to believe Larry and Sergei, then urs, now I put on Laszlo Bock.

<comment><USER34> they are ok at it, far from great. netflix is a good example of engineering at scale.

<comment><USER33> Well, I do not meant to be complacent, but I am pretty sure that anyone think Google are not the best at its scale, probably have only a superficial understanding of the Google engineering machine's reach and influence.

</comment></comment></comment><comment><USER34> decades of working for big companies on projects budgeted at billions. Sometimes as part of large teams, other times a three man operation!!! seen it all. Big companies taught me to be a politician and that skills alone were not enough. You'd need to make a strong relationship with everyone and I mean everyone. Insane working hours, a few projects had expectation of 24/7 and had I refused, they'd politely replace me with another without notice. Lots of talented people to do the work under that condition. Had enough of it, not like they paid me millions and when I complained, they'd say "make your own company and do it as you like it to be". Every big company I've been to had that sort of culture. As for small companies, there isn't much to the future. Lots of work to be done for free, always welcome to work for free. Finally here I am, looking for a remote job of sorts that'd allow me to travel without having to be online all day. At least I can enjoy programming and travel.

</comment><comment><USER35> Code search is a game changer.

<comment><USER36> If you want to hint of what code search looks like a Google check out code search for chromium.

[https://cs.chromium.org/](https://cs.chromium.org/)

What is internal is more featureful. And it covers the entire code base.

</comment></comment><comment><USER37> Contract Python / JS engineer, working on the largest GAE app (internal, but 2400% RoI so well regarded). \- GAE was missing basic functionality that we (as their biggest customer) couldn't get them to work on. The engineer in charge of GAE had other tasks and didn't care for this role. We ended up doing this work ourselves and I'm relatively sure this is now inside the App Engine SDK.

\- Delivery was incredibly badly managed, I have to shut one one eye when I sneeze due to sinus damage caused by working when ill on a project with global visibility and no cover.

\- 'Decisions based on data' isn't a thing: if you want an outcome, you research to that outcome or don't depending on how you feel.

As others have said having Google on your resume is great.

</comment><comment><USER38> Contract Python / JS engineer, working on the largest GAE app (internal, but 2400% RoI so well regarded).

\- GAE was missing basic functionality that we (as their biggest customer) couldn't get them to work on. The engineer in charge of GAE had other tasks and didn't care for this role. We ended up doing this work ourselves and I'm relatively sure this is now inside the App Engine SDK.

\- Delivery was incredibly badly managed, I have to shut one one eye when I sneeze due to sinus damage caused by working when ill on a project with global visibility and no cover.

\- 'Decisions based on data' isn't a thing: if you want an outcome, you research to that outcome or don't depending on how you feel.

As others have said having Google on your resume is great.

</comment><comment><USER39> I've been at Google for almost 4 years, mostly working at startups before that. First and foremost, there's nothing special about Google (compared to any other tech company) and it's best not to evangelize any one company. Learning comes from experience, which means trying things (even if you end up making mistakes) and figuring out the shortcomings of a particular solution. I've seen a lot of bad (and a lot of good) code at Google.

What I learned, design-wise, came from a coworker. They planned everything out in advance and would draw out components on a whiteboard and define what they'd do. A few weeks would pass before they'd write any code. In contrast, I would start with writing skeleton classes and intuit the breakpoints for building a new class. We ended up with similar code structure at the end of the day, since we were both designing the architecture (even if our methods were different). But in code reviews, I would focus on if the new code made sense within the scope of the change; are there any clear bugs, code duplication, is there a more simple approach, etc. My coworker always went back to the whiteboard and drew up the components again, making sure the new code fit within the originally defined scope or if a larger change would make more sense. Because my skeleton classes were quickly replaced with implementations, I lost my original frame of reference and only focused on what was in front of me. I could still tell when something was obviously wrong (stop sending me CLs with global state to cross talk between components!), but there was creep in the CLs I approved and the code would slowly get more complicated until I realized it needed to be refactored.

There's a tradeoff (like in anything). You can't design your own solution for every code review, as it takes too much time and removes autonomy from your peers. But remembering to step back and look at the big picture was something I needed.

There were other things I learned, like structuring code in ways that it's hard to write bugs. For example, you could write a method like...

      void foo(Callback callback) {
        if (error1) {
          callback.onError();
          return;
        }
        if (error2) {
          callback.onError();
          return;
        }
        if (error3) {
          callback.onError();
          return;
        }

        doWork();
        callback.onSuccess();
      }

but it's easy to forget to call 'callback.onError()' in a future CL. A small refactor, like...

      void foo(Callback callback) {
        if (bar()) {
          callback.onSuccess();
        } else {
          callback.onError();
        }
      }

      boolean bar() {
        if (error1) {
          return false;
        }
        if (error2) {
          return false;
        }
        if (error3) {
          return false;
        }

        doWork();
        return true;
      }

has the compiler help you catch mistakes. Unit tests obviously help too, but doing both reduces the number of bugs that slip through. Similar tricks include annotating methods as @Nullable so you don't forget to nullcheck, annotating which thread is calling a method (eg. @FooManagerThread, @UiThread, etc), and doing all the if checks as close to the top of a method as possible so that you only do work if you're in a good state.

Oh, and here's one last tip that I only realized needs to be reiterated because most of my coworkers forget it. Validate incoming data! Every API needs a wrapper around the entry point that...

      * Verifies the caller is allowed to call that method
      * Verifies the method can be called at this point in time (eg. hackerNewsApi.postComment(threadId, msg) only works if the threadId is valid)
      * Verifies that the arguments make sense (eg. 'msg' is not empty/null/above the max comment size).

And this is needed at every layer (application, server, etc). Trust no one, even if the only caller is supposed to be yourself.

Glossary: CL = changelist ~= pull request

<comment><USER40> Choosing the right language also helps reduce errors. There are languages with no nulls and no runtime errors.

<comment><USER41> Not sanctioned for general use at google tho :D

</comment></comment></comment><comment><USER42> All big tech companies are approximately the same, since people job hop a lot and these places have tens of thousands of engineers, it's basically the same people at all of them anyway. I am not sure why people have these starry eyes views of them

<comment><USER17> No it's not. Microsoft is way different from Google.

<comment><USER42> Having worked at both I can say it's not that different. But I had a great team at Microsoft

<comment><USER17> I had great teams at both but the bar was consistent across Google unlike Microsoft. And 9/10 engineers will accept offers at Google over Microsoft given both.

<comment><USER42> Oh I totally agree, I guess for me when I think of "work" I don't really think too much about other people's engineering ability. It makes a difference but less of one than most people think.

</comment></comment></comment></comment></comment><comment><USER17> My quality of code has been immensely helped by code reviews by senior people. My team also has a good culture of getting feedback on design. I've learnt a lot on designing with security on mind - sandboxes, SELinux etc. I had no clue about them before I joined.

Design docs and comments by great engineers like Jeff Dean are openly accessible. Treasure cove of knowledge that I try to dip into everyday.

</comment><comment><USER40> I think I'm a good engineer, but I don't think I have the intelligence to get into google. Most people can't. There's definitely some sort of difference between an engineer who can get in google and one who can't as displayed by the interview.

Most companies that interview people outside of FAANG tend to have easier interview questions in my experience. Some even forego algorithms all together.

For googlers who worked at companies outside of FAANG or startups. Is there a noticeable difference when working these people? Will you learn more from a google level engineer then you will from someone who can't pass the google interview? What are your thoughts about it?

If you think that FAANG engineers are genuinely better, say it. There's no need to be politically correct here, honesty is appreciated.

<comment><USER42> I'm not sure why many people seem to think this, there are like tens of thousands of engineers at google, and there are other good companies out there that also have tons of engineers, you don't need to be that special to get a job at google. As long as you can get your first interview all you need to do is be able to solve data structures and algorithms problems and talk about software design. Let's not put google on a pedestal

I will say, those problems do filter out a lot of bad people. But it only ensures a minimum level of competence. It doesn't mean everybody is insanely smart.

<comment><USER40> The interviews at google are hard enough such that only a fraction of software engineers can make it through.

Thus by statistics and logic, the majority of the worlds engineers cannot get past the google interview. This is not something I am thinking, this is a statistical reality.

Literally, in order for those engineers to work anywhere else the algorithm questions must be significantly easier in other companies outside of the elite FAANG. This is inline with logic and my observations.

My question is... for googlers who have spent time outside of google at a more scrapy startup. Does the interview filter actually create a better class of engineers? Do you learn much more working at google then you would at a company who's engineers typically can't get into google? What's the experience like if there is any?

Don't get me wrong. I'm not worshipping googlers or asking for tips. A real dichotomy exists in the interview stage for the few engineers who pass and the majority who don't... I'm just curious if this dichotomy becomes obvious outside of the interview... like on the job? Do you notice a difference when working with a google engineer vs. someone who probably can't ever get into google. It's a complicated question with a complicated answer. I'm not really looking for some humble answer telling me that google engineers aren't that much different from other engineers when the interview essentially disproves this statement by filtering out everyone except for a certain type of person.

I want an honest and candid answer.

<comment><USER42> Ok sure I'll give you an honest and candid answer. It's basically analogous to top schools. Yes the average engineer at Google is going to be better than the average engineer at some random company because google generally has a higher hiring bar. Similarly your average student at Harvard is going to be a better student than your average student at Random State University.

As a result you will on average learn more than at most other companies. Of course there are trading firms, quant hedge funds, and a few other big tech companies with even higher hiring bars where you will learn more. And some of the things you learn, anywhere, while very useful to getting stuff done at where you work, will not be readily transferable elsewhere.

But large companies as I've said before are basically all the same. The people you interact with are a vanishingly small subset of the entire company so it doesn't even really make sense to speak in terms of what it's like at the entire company.

The interviewing filter mostly does one thing which is that it biases the engineers at google to be generally good at solving data structures and algorithms. This, by the way, is a skill that can be taught — and even though it might roughly approximate engineering ability it doesn't map directly.

<comment><USER40> Thanks for being candid, is this inline with your experience? Have you worked at a smaller company and google as well? Your logic is really sound but I'm also asking this question for the purposes of gathering anecdotal experiences as well.

Your answer is great, btw, I just noted that you used the word "average" over a personal example so I wanted to get an idea of where you're coming from.

<comment><USER42> Yeah I've worked at G, other big companies and smaller places. My own anecdotes roughly fit my "average" explanations.</comment></comment></comment></comment></comment></comment>


Geeks in Cambodia – Tech News from Phnom Penh - <AUTHOR> http://geeksincambodia.com/

<comment><AUTHOR> I was quite gratified to stumble across this just now.

I started following the tragic events in Cambodia in 1972, when I was just eight years old. I have never been there myself, but my father served in Vietnam. Many years after the end of the war my father quietly said to me one day, with no explanation whatsoever:

"We should not have been in Vietnam."</comment>


Starting a Bank Is a British Town's Solution to Funding Cuts - <AUTHOR> https://www.bloomberg.com/news/articles/2017-05-30/short-of-funds-and-long-on-dreams-a-british-town-starts-a-bank?em_pos=small&ref=headline&nl_art=4 <comment><USER2> This makes a lot of economic sense to me. Governments can capture some positive externalities through their ability to impose taxes on the catchment area of those activities. There's therefore some things that make sense for governments to do but not private actors - infrastructure is a great example of this.

For loans, there's some that would make sense for governments but not private banks. Suppose a dollar of this loan has an expected value of 99 cents for the bank, while generating $2 worth of taxable economic activity at a 10% rate. Private banks would lose a penny, municipal governments would make 19 cents.

It does leave two big questions. First is how big this class of loans actually is in practice. If there's not much there, the overhead of running it through government doesn't make sense. Second is how to keep incentives aligned and un-corrupted. I'm pretty worried that "drive economic development" will become a pretext for "give handouts to friends and political supporters".

<comment><USER3> " _For loans, there 's some that would make sense for governments but not private banks. Suppose a dollar of this loan has an expected value of 99 cents for the bank, while generating $2 worth of taxable economic activity at a 10% rate. Private banks would lose a penny, municipal governments would make 19 cents._"

While technically true, this is misleading. The numbers are still the same whether or not the government runs the bank. The private bank would lose 1 cent, as you mentioned, but no matter what the government is still getting the $2 in taxable revenue resulting in 20 cents to the government at the 10% rate.

Then you also need to factor in that banks have operating costs. In the case where the government gets both the tax revenue and profits (or losses) of the loan, this means that the only way for the government to make this work is if the government can run the bank more efficiently than the private bank would be run. Or, at least equal. Otherwise, the additional operating cost is a net loss to society from the inefficiency.

I don't know about you, but I would never, ever count on the government running anything more efficiently than the private sector. This is a bad idea.

<comment><USER4> > While technically true, this is misleading. The numbers are still the same > whether or not the government runs the bank. The private bank would lose 1 > cent, as you mentioned, but no matter what the government is still getting > the $2 in taxable revenue resulting in 20 cents to the government at the 10% > rate.

This doesn't seem misleading at all: in your scenario, the private bank would not lend so the government would not be able to collect tax revenue.

> I don't know about you, but I would never, ever count on the government > running anything more efficiently than the private sector. This is a bad > idea.

Why? What is the inherent quality of the government run enterprise compared to the privately run enterprise that makes the former less efficient?

<comment><USER3> " _Why? What is the inherent quality of the government run enterprise compared to the privately run enterprise that makes the former less efficient?_ "

Because there is far less motivation to be efficient and well-run. The government can, for the most part, determine its revenue by the tax rate. How efficient would a private sector company be if they could mandate how much money was going to be guaranteed to them from their customers as a matter of law?

Also, when government agencies that are supposed to be self-sufficient lose money, they just get subsidized instead of shut down. Take a look at the USPS for a perfect example. It loses billions of dollars every year, and has for quite some time. No private sector company would survive that when it goes on for as long as it has with the USPS.

<comment><USER5> USPS has several laws affecting it's profitability due to battles in Congress that simply a small government would not have (or be able to sustain).

One is being required to over pay it's pensions to shore up the deficit other federal agencies have not made to the federal pension. Another is a requirement to serve mail all 5 working business days regardless of how rural a location it is. USPS actually delivers foreign letters, that can contain small items below cost, as do all nations mail systems due to international treaty. Congress has also has placed limits on how much USPS can raise the cost of a stamp.

And then there is the USPS union battles.

There are plenty of small government agencies that run very well simply because private enterprise has been uninterested or incompetent. Chattanooga TN's utility provider can match Google Fiber on $70 gigabit internet.

<comment><USER3> I realize you didn't intend this, but as I read what you wrote I can't help but take it as supporting my claim. What you said about the USPS is a perfect example of why the government frequently does a terrible job running operations like this. None of that (except the union battles) would exist if it weren't for government nonsense.

I would be curious to see the details on Chattanooga's ability to provide those lines for comparable cost. My guess is that they get tax breaks that Google doesn't and/or don't have to pay for something else that Google has to - i.e. the land to run the lines. I would be utterly shocked if they didn't have some advantage that existed purely as a result of them being a government agency and were able to compete with Google. Because if they have any advantage, it's not really a fair competition.

<comment><USER5> I don't think you see my point. There is a reason why I wrote "due to battles in Congress that simply a small government would not have (or be able to sustain)."

Mandates, turf battles, happen in large corporations as well as government. Chiefdoms, out of touch executives, in large corporations are as common as partisan battles in Congress.

Small governments, like small businesses can operate with a certain quickness and laser focus that larger organizations do not operate under. Which was a point of the article, large banks were ignoring small business lending in these small towns.

> I would be utterly shocked if they didn't have some advantage that existed > purely as a result of them being a government agency

I believe you shall be shocked. The state of Tennessee actually barred them from extending service to other towns because Comcast lobbied/bribed the state.

The reason they put in fiber is because the locally owned power municipality needed the fiber to monitor for down lines. The municipality claimed the cost savings for having employees drive around every time the power was cut paid for itself in a few years. The fiber broadband itself is a profit center.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> In a similar vein, there's an enjoyable documentary called Bank of Dave about a British millionaire trying to create a small bank in his home town. The first part's here: [https://youtube.com/watch?v=0fIGZOe- Oa0](https://youtube.com/watch?v=0fIGZOe-Oa0)</comment>


UBC Researchers: why the brain loses capacity to re-grow connections - <AUTHOR> http://www.brainmysteries.com/research/Researchers_Discovery_Could_Rejuvenate_the_Brain.asp

<comment><USER2> _Drugs that could promote neural plasticity could potentially treat a wide range of neurological disorders, as well as boost the effects of other treatments under investigation._

Just for once, I'd like to hear one of these things say that the discovery could lead to mind blowing lifestyle drugs for everybody. Has it really become so politically incorrect to suggest that we might use science to enhance our lives instead of just helping sick people, or is it just lack of imagination?

<comment><USER3> The problem with drugs are their side effects. It's not ethical to allow human experiments when the only positive of a drug is "it's fun."

<comment><USER4> 'It's not ethical to allow human experiments when the only positive of a drug is "it's fun."'

Not even if all parties (ha ha) involved are aware of the purpose of the drug and agree to the experiment anyway?

Fun is a legit ambition.

<comment><USER3> I highly doubt it would ever pass a medical ethics review board, and these are necessary for the FDA to approve it for commercial sale. They look at whether the pros outweigh the potential cons. If the only pro is "fun", this is unlikely to happen. But philosophically, I agree with you haha :(

<comment><USER5> Just call it an "anti-depressant".

</comment></comment></comment></comment></comment><comment><USER6> So it sounds like if you want to increase the level of growth of new neural connection you would risk losing some (many) of the old ones have have formed. That would be an interesting tradeoff. Definitely somewhere to tread lightly.</comment>


Why We Can't Walk Straight? - <AUTHOR> http://www.youtube.com/watch?v=dYcvLw_jkkk

<comment><USER2> Great animation... but I was really hoping that it'd answer the question at the end!

potential: [http://en.wikipedia.org/wiki/Inertial_navigation_system#Erro...](http://en.wikipedia.org/wiki/Inertial_navigation_system#Error)</comment>


Google is creating a startup haven to prevent staff from leaving - <AUTHOR> http://www.engadget.com/2016/04/24/google-startup-incubator/ <comment><USER2> Good luck with that :-) Is 20% time still a thing? There are mixed messages coming out of exit polls. The Reynolds company did this pretty well, they actually funded their smart execs and had them run the new business, and if it was successful the company had first right of refusal on purchasing it outright. That meant a payday for the employees who had just spent all their time nurturing their idea into a successful company. Sun on the other hand kind of tried to do this and if you were "successful" your idea became an official project and maybe you got a promotion maybe you just got to keep working on it. Very low risk (you wouldn't be burning your personal credit history to get the idea flying) but also very low reward if it became a thing. Needless to say that version didn't actually get much participation.</comment>


'Evapotranspiration' taking unexpected turn - <AUTHOR> http://www.sciencedaily.com/releases/2010/10/101010133630.htm <comment><USER2> Why is evapotranspiration in quotations? It's the accepted scientific terminology.

<comment><USER3> When you're quoting someone else and you don't understand the term, quotes are appropriate. It means that you are just repeating something someone else said. I have to assume that's what happened here.</comment></comment>


The Spy Who Added Me on LinkedIn - <AUTHOR> http://www.bloomberg.com/news/articles/2016-11-15/the-spy-who-added-me-on-linkedin <comment><USER3> This is a good story, well written. I remember the previous case with the sleeper agents. The one theme I see is waste. Seems like such a wasteful way to do things -- spend decades planning and setting everything up and then they go and just ask companies for random info. Or during the Soviet times I like how they sent this spy to acquire info on the Space Shuttle, so he went to a public library and photo-copied stuff from there. Years of training and all that setup to go and press the "copy" button in a library.

The timing of the story is not a coincidence I am guessing. They mentioned the "election" so I am assuming it is playing along with the Russians have rigged the election and KGB agents are everywhere. And that's why Clinton's campaign resulted in worse Democratic election performance in 28 years. I don't know about anyone else, I but I am getting a little tired of blaming the Russians for everything. Wonder if editors would agree that we should be a lot stricter with our immigration policy and vet people better before letting them come in...

<comment><USER4> years of training and all they do is press the copy button

:-D that is a funny take at their life. they do have to live in "enemy" territory as a double life, living that itself would account their intensive training!

<comment><USER5> I'm missing something, but what would be so difficult about living in enemy territory? I don't believe anyone in their daily interaction was hostile to them (apart from exceptions who would be hostile to anyone).

<comment><USER4> as far as I have read from spy novels:

There is a constant fear of being caught. He was an illegal foreign operative in "enemy" territory. they were having his handler under surveillance for many years.

I assume it to be highly stressful, living a double life, the constant fear of being caught and thrown into prison or worse, fear of being killed one day.

Just being a spy does not mean that everyone is hostile to them, the article itself says, counter intelligence != catch then really fast, it means identify them and feed them incorrect intelligence, that way you control what your "enemy" gets from their operative, it is way cheaper that way rather than busting the spy rings. Also, this guy went too far, taking something given by foreigners into their secret office! That is ludicrous even by fictional standards(Jason Bourne novels).

The mind plays games!

</comment></comment></comment></comment><comment><USER6> Blatantly off topic from the article but related to social network spies, and because this community takes privacy concerns seriously — anyone who joins your neighborhood on Nextdoor can immediately see your full address (apartment number included) _with the default privacy settings_. Also, it's possible to join a neighborhood with no verification if just one bad actor is in it and invites you. I think it's an absolutely absurd setting. I've clicked through many people in my neighborhood and get the feeling most people don't realize the exposure at all.

<comment><USER7> Thanks, I had not realized that! Fortunately I registered under a fake address, but still, didn't want that published either.

<comment><USER6> Exactly the same case for myself. It was up for over a year before I realized too.

<comment><USER8> How are there still no federal regulations on default privacy settings in 2016?

</comment></comment></comment></comment><comment><USER9> Anyone else feel that if the Russians really wanted to influence the election, the actual methodologies used and people targeted were not that impressive or well thought through? I mean it was hardly Stuxnet.

If your wanna change an election why not hack a wider range of targets? I know that "Who gains most?" is one of the best ways to attribute blame in the intelligence world but I have not (like the North Korea / Sony hack) seen evidence that even nearly proves it was a hack directed by the Russian Government. Possibly a malicious sympathiser but hardly state level techniques...

Also, how slow and useless are the NSA that they weren't watching to protect senior people in one of the two major parties in the country? If so many intelligence folks are as sure as they claim to be that it's the Russians, where is the counter-response? You mean to tell me that the TAO can't do better then some leaks about Russian businessmen close to Putin - <USER2> that is one of his weak points but he doesn't care about that right now. I get that they don't want to reveal warfighting capabilities but seriously - if you think it's really the Russians, throw a shoulder...

<comment><USER10> "why not hack a wider range of targets?"

They need to have 'plausible deniability' so it's hard to do without fully leaving your tracks and showing your hand.

<comment><USER9> But let's red-team it for a second and think about who you would go after if you were Russian and wanted to hand the election to Trump. There's a lot more people on that list worth going after than the folks that "Guccifer" did manage to get a hold of.

<comment><USER11> I've been thinking along those lines for over a year and a half since Hillary's email server was leaked by the NYT. Based on the fact that her email was not state.gov, that would have made the server a target. To get her detailed info - along with Bill's - that would have been useful.

In all honesty, can you imagine what's sitting in Bill's email? Or worse, browser history?

Further, why just drop Podesta's email? While he's important in political circles, the average American has no clue who he is.

I think if you _really_ wanted to take down Hillary, you'd release all the nasty, snarky, etc email that you _know_ she sent to people. Not just the nasty things she said about Republicans but other Democrats. Convince her colleagues that she'll insult and sell them out in a heartbeat and enthusiasm dips from both them and their supporters. With enthusiasm goes funding, rally attendance, and turns into a loss.

<comment><USER9> EXACTLY what I've been thinking...If the Russians really wanted to take her down, they did a pretty crap job about it. Especially if you think about the ways they have taken down their enemies covertly before - in much much smarter ways.

Also, while I get that the Russians have always been way better at HUMINT than the West is at SIGINT (or better at playing dirty?), it doesn't seem quite as successful any more. I accept there is definitely an element of "known unknowns" but the quality of access obtained by the past few Russian spies who have been uncovered has been pretty poor.

</comment></comment></comment></comment></comment><comment><USER4> I started reading the article, in the middle it said "this is how they linked the DNC hacking to Russians" and I finished the article and there was no revelation at all, did I read it incorrectly? Or is the article misleading?

<comment><USER12> I'm raising an eyebrow at the existence of the article, to be honest - I'm not proposing that suppression of information would be a good thing, rather that perhaps this is being published with a purpose.

There was a case earlier this year involving a pair of brits caught red handed spying in Russia - it made international news for a day, and that was it. Both were repatriated, and the matter didn't go any further in the public eye.

So - what I'm getting at - Russia declined a deal, and this lengthy exposé going into methods and so-forth is the fallout. In the instance earlier this year, Britain and Russia evidently played ball.

So, while it's perfectly valid journalism, I think there's also a bit of "throw 'em to the lions".

</comment></comment><comment><USER13> Has anybody managed to extract what was actually "spy" worthy that the guy did?

"Asked people for information" isn't saying anything. What do I miss? What were the secrets?

<comment><USER6> > On May 24, 2016, Buryakov was sentenced to 30 months in prison, and he now > resides in the federal low-security prison in rural Lisbon, Ohio.

Sentenced to just 30 months in a low-security prison... must not have been too severe.

</comment></comment><comment><USER14> Written by Howard Dean's former staffer [1].

This article smells like DNC propaganda. Firstly, this is an old story. The heart of the news is about 2 years old [2] and it's Graff's first article for bloomberg [3] though he has been writing for Wire and Politico (his former paper)

Secondly, the author is exploring political career of his own in Vermont [4] and it's very possible his Politico article (that changed the blame to lack of technology skills by Hillary) [5] and this article are meant to curry favor for DNC players as he is making his own political bids.

Lastly, the author makes conclusion the hacks were done by Russians, _perhaps one of the greatest foreign operations in decades, has undoubtedly been Russia's successful effort to influence this fall's presidential election through hacking_ however as others pointed out there is no clear evidence of this.

Overall, this shows the sophisticated state of political propaganda in US and how it operates to shape the minds of the readers. We're in for a bumpy ride.

(edited for formatting)

[1] [https://www.linkedin.com/in/gagraff](https://www.linkedin.com/in/gagraff)

[2] [https://www.ft.com/content/315343d2-a59d-11e4-ad35-00144feab...](https://www.ft.com/content/315343d2-a59d-11e4-ad35-00144feab7de)

[3] [http://www.bloomberg.com/authors/ATEO_DMrDvA/garrett-m- graff](http://www.bloomberg.com/authors/ATEO_DMrDvA/garrett-m-graff)

[4] [http://m.sevendaysvt.com/OffMessage/archives/2015/11/06/garr...](http://m.sevendaysvt.com/OffMessage/archives/2015/11/06/garrett- graff-exploring-run-for-lieutenant-governor-of-vermont)

[5] [http://www.politico.com/magazine/story/2016/09/hillary- clint...](http://www.politico.com/magazine/story/2016/09/hillary-clinton- emails-2016-server-state-department-fbi-214307)

</comment><comment><USER15> My favorite part of this is that rewards for spying seems to be a $3k per month house in the Bronx. Sounds like you're better off working for Facebook.

<comment><USER16> I don't think most spies are in it for the money. I can pretty much guarantee that FBI/CIA/NSA salaries are all lower than those of the top tech companies.

<comment><USER15> I would really like to see some hard numbers. I know the salaries are public, but I wonder if there are bonuses that aren't included and benefits such as housing/car/food/etc. I'm sure some are contractors rather than employees. I wonder how much they make.

<comment><USER17> I once saw an advert for a job in British Intelligence that was offering £45k PA. Comparative jobs in financial services were paying £75-£120k.

Base salaries, doesn't include bonuses, benefits, etc.

</comment></comment></comment></comment><comment><USER18> Anyone watched the movie, Salt?</comment>


Magic: Without the People - <AUTHOR> http://techcrunch.com/2015/05/18/api-ai/

<comment><USER2> api.ai is the best tool I've come across all year</comment>


'KinectFusion' Kinect 3D Scene Recreation Based on Feature Point Tracking - <AUTHOR> http://research.microsoft.com/apps/video/dl.aspx?id=152815

<comment><AUTHOR> it's amazing to see how much advancement has been made w/ the kinect - <USER2> example, this is where the kinect community was just months ago:

[http://www.adafruit.com/blog/2010/11/14/hacked-kinect-is- now...](http://www.adafruit.com/blog/2010/11/14/hacked-kinect-is- now-a-3d-video-capture-tool/)

gj kinect hackers - keep it up! =]</comment>


Hook.io microservice platform adds support for 11+ programming languages - <AUTHOR> https://hook.io/blog/new-multi-language-support <comment><AUTHOR> If anyone has any questions about the software please let me know and I'll do my best to answer.</comment>


Snowden: Assange's Arrest and Mueller Report Show 'Two-Tiered System of Justice' - <AUTHOR> https://motherboard.vice.com/en_us/article/597pvk/edward-snowden-assange-arrest-mueller-report <comment><USER2> Glad to see this hitting Vice, where more people might read it.

But for me, all I get is a "Well, duh!"

<comment><USER3> I'm quite surprised Vice/Disney would be publishing this type of content. Someone has probably just forgone their next promotion.</comment></comment>