skysight-inc/HackerNews huggingface dataset:
A PostgreSQL (recursive) WITH query [1] can deal with that:

CREATE TABLE employee (
id int primary key,
name text,
manager int references employee(id)
);

INSERT INTO employee(id, name, manager)
VALUES (1, 'jane', null),
(2, 'john', 1),
(3, 'jake', 1),
(4, 'jeff', null),
(5, 'jessica', 3);

WITH RECURSIVE t(manager, managed) AS (
-- Direct managers
SELECT manager, id
FROM employee
WHERE manager IS NOT NULL
UNION ALL
-- Indirect managers
SELECT employee.manager, t.managed
FROM t, employee
WHERE t.manager = employee.id
AND employee.manager IS NOT NULL)
SELECT
(SELECT name FROM employee WHERE id = t.managed),
array_agg(employee.name) AS chain_of_command
FROM t, employee
WHERE t.manager = employee.id
GROUP BY managed;

Results of the query:

name | chain_of_command
---------+------------------
jessica | {jake,jane}
jake | {jane}
john | {jane}
(3 rows)

You can argue about the readability (syntax highlighting would help), but to my eyes it isn't that bad (if you know how WITH queries work). It's also more concise than the corresponding query would be in many a procedural language.

The efficiency should be pretty acceptable too (instead of having direct pointers O(1) to follow the manager, you follow them indirectly through an index O(log N)).

[1] https://www.postgresql.org/docs/9.6/static/queries-with.html
Do you have any evidence to show that the two skills aren't intertwined? Because in my experience, those who have been good at developing algorithms have been just as good at working with full applications.
$1e6 / (10 hours/day * 6 days/week) = ~ $330/hour.

As a consultant you might be able to get to this salary. But you will be able to bill only a fraction of your time.
I would say that working closely together with the front-end devs is key. Listen to what they are trying to do, and see where you can help. Mind you though, that it should be balanced, because you want to avoid doing work that is unnecessarily complicated to make the life of the front-enders better.
Patterns in Detroit: Four Key Factors Explain Motor City’s Conflicted Grid
https://keybase.io/inv/820655c2a8. Hmmm... is there a way to directly message one to you?
> It's not uncommon for AAA game developers (e.g. Developers for call of duty, GTA etc.) to have a profit share in their employment contract.

While having profit share in a game developer's contract is sometimes true, I'd say that it's definitely not a common occurrence to earn that much money. Profit share is based on royalties made after paying back development costs and the game being extremely successful. Due to rising development costs, and most games not being multi-million sellers, most developers earn minimal bonuses beyond their contractual wages, from my experience of the industry.

I'm based in the UK and wrote console games for 19 years. I'm estimating that I saw around £15k in game related bonuses over that time. I did hear rumours of the Tomb Raider team getting a £40k bonus back in the mid 90s but I'm not sure if that was true.
I think it's totally fine if only base salary, guaranteed minimum bonus and maybe liquid stock options are used in the calculations. Most people here who had experience with startups wrote that non-founding employee options should be valued at 0 anyways. Also Google doesn't abuse workers like some startups do, so it adds extra safety to immigrants.
Productivity tools: Are they the answer to your business performance issues?
Hmm. I read most of my Vonnegut after Twain, so it's possible that it's rather my own 'relationship' with cynicism that changed. I guess I'll have to re-read something from both!
Declarative data visualization is an active area of research, and there's a lot of cool projects in this space. Take a look at Vega-Lite [0] and Voyager [1].

[0] https://vega.github.io/vega-lite/

[1] https://vega.github.io/voyager/
I think I can explain the subway costs - the construction itself is relatively cheap - tunneling and excavating is something mine companies do regularly on a bigger scale.

It is the NIMBY, regulations and not breaking anything. Unlike China you cannot rule by decree - there be subway here - dig.
This is precisely what turned me off applying for a job at Gitlab after initially being hugely enthusiastic. My family and I moved away from London to the city we grew up in to save some money, partly because I knew I could work remote for the same sort of money I had been making while paying considerably less on rent and living expenses. The cost of living adjustments Gitlab do would mean entirely negating that benefit.

I'm not really sure what the justification for CoL adjustments is, beyond "we can get away with it". Apparently I'm worth paying $120,000 working from home in London, but if I move 70 miles south I'm worth half that. Not only does it make little sense logically, there's no way cost of living here is less than half that in London, so its not even calculated correctly.
> (restricting 25% to ~10%) AppAmaGooBookSoft

I would even be skeptical of the ~10% estimate. Even accounting for contributions in cash machines like AdX and Adwords, commanding one million dollars in engineer's pay seems to be a matter of having a rare set of skills in working on outrageously difficult problems (deep learning, managing complex networks, or large-scale cloud computing setups).

I am not too sold about cashing on "creating business value". It's not like Google lacks technical expertise to understand the scale of their problems. Likely, if you are working amongst super-technically-able people, the only way to reach that figure is pushing yourself to gain expertise in a valuable domain or move into management where your product decisions have a direct impact.
This is a little circular though. If you are not able to identify good developers and your criteria for promotion is development ability then you stand a solid chance of promoting someone who just looks like a good developer to the position where they're judging other developers. That can be disastrous.
Let's say if I was top 1%, what companies would pay me 1M?
MorphVOX Pro 4.4 63 Key and Activation Code Free Full Version
Firefox has the ability to save bookmarks and all settings for that matter to a local folder upon closing the browser, you could then use an open source and hopefully encrypted sync tool to replicate those backups. Might be a bit clunky at first but if it catches on I'm sure one of the open source sync tools will come up with some sort of integration.
Mind blowing git tips (for beginners)
I'm currently learning F#, and liked everything so far, in particular that you can learn both functional style as well as interaction with existing .net apis, which allows you to build typical use-cases faster (as you would know them from imperative/oo languages, like building a small crawler). I wish there was a good ML-style language for the JVM.

VS Code has good integration, check out the Ionide plugin.

For a language introduction, this wikibook is quite ok: https://en.wikibooks.org/wiki/F_Sharp_Programming
Maybe they got spoiled by ORM mappers that anything beyond standard CRUD may feel cumbersome to write.
Talent, grit, luck. All are important, only some can be optimised.

Why engineering? If money is so important to you there might be other industries better suited.

You sound Machiavellian, or that you may edge towards it. Be careful with that. Money is no good if it can't buy you what you want or need.
Have to look it better then, thanks.
I don't see how that scenario is anything but relational, even for queries, or are you talking in extension of the previous post about the managerial line? If so I agree, but instead of "poluting" the RDBMS with graph related constructs, I think the option here would be save the data in the RDBMS, and either build a graph on demand, or maintain an in memory graph, for queries. "Everything but the kitchen sink" are rarely a good idea for tools, it has a tendency to make the cost of switching some module unacceptable.
From my experience, the percentage share of the profit was normally based on time at the company and seniority of role. It was normally given to everyone who worked in the team but as I said in another comment, actually seeing a large profit related bonus was rare.
Rhetoric is not physics. If you should ever learn physics, post again.
You can see the kinds of bonuses involved with big game launches with all of the legal action around call of duty: http://m.uk.ign.com/articles/2012/05/23/call-of-duty-devs-ne...
Recursive CTE can be used for this kind of queries. Or you can use nested sets / intervals depending on your workload and the tradeoffs you're ready to make.
I write tons of pseudo-code on paper and it helps me organize my thoughts far better than I can do on the computer (maybe I haven't found the right tools). I seem to solve more complex problems quicker too on paper (ymmv of course).
Why? Do you think it will make you happy? I used to think money would at least make life easier, but past a certain point (and that point is vastly less than $1m/year), it really doesn't - you just end up spending it on stupid and pointlessly expensive things that mean you have to make more of it in order to be where you were before.

And when you look at the really rich people, like Zuckerberg, Buffett, or Gates, what do they do with their money? Why, they give it away.
Show HN: Initool
> EDIT: after thinking about this for a while, I wonder if the RethinkDB changefeed scenario is doable with the tools in PostgreSQL: get initial user data, then get all subsequent changes to that data, with no race conditions.

It's easier if you do things in the other order, and can make assumptions about the structure of your data. In my implementation, I have to first start listening for changes, then do the initial query (relevant code:
https://github.com/sagemathinc/smc/blob/ce594ff0574ce781bf78...).

As you say, race conditions aren't an issue for some applications. For me, (slightly simplifying) the main table that involves changefeeds is a table of (timestamp, patch) pairs, and for it, race conditions aren't an issue -- you get the data in whatever order you want and merge it on the client. I'm definitely making no claims to have implemented changefeeds for general PostgreSQL queries or general data.

I am concerned that there is an edge case with one of the tables where there is a race condition that causes trouble, in which case I'll have to explicitly change the schema in order to account for this. Somebody below writes "I strongly suspect that the author has ignored race conditions in his changefeeds implementation."; that's not exactly true, since I'm worried about them and try to structure my data to account for them.
I always see a post like this questioning a posters character in various random posts, and it bugs me to no end.

1) it's not relevant
2) why bother judging?
I'd have 100% more trust in a system written in COBOL than node.js.
You can easily see what decisions highly successful individuals have made. Executing them doesn't guarantee success. The decisions are a byproduct of a more important abstraction, which is just a mindset.

Be persistent, work exceptionally hard, and think very big.
That there are Android like OSes that run in hardware less powerful than home routers.
Zuckerberg shows off Oculus gloves for typing in VR
Well, "real talk" doesn't contradict "full of arrogance". In my opinion, maximizing pay just for the sake of accumulating/spending a lot of money is quite unsympathetic, and indeed to some extend arrogant. Unless of course you plan to make a positive impact on others or our planet with that money, but to me your posts don't make that impression.
Logic programming really falls in to two main categories: search and constraint satisfaction. In that light, there's really only two programming paradigms: Temporal and Spatial.

Imperative programming is programming with time. Functional programming projects time on to space. When you add concurrency, either effectively becomes logic programming: Search runs multiple spatial processes in parallel. Constraint satisfaction treats each constraint variable as its own timeline.

We only don't think of it this way because we've traditionally linearized logic programs. You can linearize search with backtracking and you can linearize constraint satisfaction with a constraint propagation queue.
Kodi addon used to create ddos botnet
> Ultimately you can't make any judgement of the developer without detailed understanding of the specifics of the work.

You've nailed it. This is why I would go so far as to say that someone with no programming experience can't effectively manage developers.
Sometimes the 'just' is where the magic is, we all know that slack is just a pretty irc that end users can grok.

That 'just' is worth a fee billion dollars though.

Makes you wonder if there are other tools in our world that could be a 'just' away from a billion dollars.
I must have had the literal tetris effect. I played so much (competitively) I would dream of the patterns and pieces all the time. That's when I knew I was playing too much.
I was under the impression that we were talking about mathematics and not physical reality.

In mathematics, cos/sin are just functions cos:R -> R and sin:R -> R. As far as functions go, Dirac delta is kind of a fiction because we don't have a function δ: R -> R. That's why I think that your initial characterization was correct.

Of course if we define it with distribution or measure then we don't have this issue.

> Maybe this way of thinking about the dirac delta in obvious to everyone, but to me it was a major breakthrough because I couldn't imagine how something infinitely tall and infinitely narrow could model anything in the real world.

By the way, if you're looking for intuition on the Dirac delta I think a good way to think of it is just the identity element under convolution. Equivalently, you can think of it as a thing whose Fourier transform is 1.
I'd take good domestic bandwidth as a good (albeit primitive) first start. Overseas bandwidth/peering can be a commercial next step - if the last mile and domestic bandwidth is the bottleneck then there's no catalyst to kick-start international connectivity negotiations.

Let me run a stable FaceTime chat from Canberra to Sydney. Then let's worry about Canberra to Los Angeles...
But would an educated Trump voter in California or New York bother coming out to vote?
6 ways to manage a partly remote team
Man Creates Tinder-Like Dating App Where He’s the Only Guy Available
Hours of work <> Hours of downtime

The bigger the database the more complex it will be to implement schema change while keeping track of transactions that happen while your are transitioning. However I see no reason why it shouldn't be feasible given proper amount of preparation. And if short downtime is a goal I don't see why a proper amount of time developing a solution wouldn't make it either.

And on top of that PostgreSQL community is implementing new way to solve problem with each release. I'm not in a huge live-data use case so I might be wrong, but upcoming logical replication look promising for such use cases https://www.depesz.com/2017/02/07/waiting-for-postgresql-10-....
You should be able to make that in computer crime, and it sounds like that would fit with your world view. At some point your lack of social skills might cause a problem but probably not for a while.
I've always wondered how ReQL didn't look intuitive from this comparison and stayed away but I guess that wasn't a wrong assumption.

"Definitely, the act of writing queries in SQL was much faster for me than writing ReQL, despite me having used ReQL seriusly for over a year. There’s something really natural and powerful about SQL."

https://www.rethinkdb.com/docs/sql-to-reql/python/
I know software engineers at one of the startups I was at that went public pulled down $2-10m depending on when they joined (and sold). They all are top 1%. Also they spent 4-6 years pre-IPO.

Top 25%? Yah no.

You best bet is a steady job at the big 4 with a good RSU plan.
I understand that my use of the term leach is confrontational, but I am not ready to back down from it for several reasons:

* I am disappointed at the role that the UK has played in the EU, how you have dragged your feet, how you have pushed for EU policies that, long time later, you have complained about them as being EU imposed. As a short list, I must mention opening negotiations with Turkey, expansion to the East, renouncing to east Europeans quotes by your own decision, and specially blocking legislation about financial markets.

* I am angry about how the EU has been portrayed by your media and politicians during the last 30 years.

* Lack of goodwill: the UK has been given special treatment. What has been your response? To continue complaining, and now to withdraw from the union, putting it at existential risk.

* Outright lies during the referendum campaign: one thing is to say "we think the UK will do bad outside the EU" (an opinion of the remainers), the other is to say "we send 350 million pound to the EU each week" (an outright lie by the leavers)

And a very specific reason why I think the UK is actually trying to justify its leaching, that's why I call it like it is: you (your politicians, a big part of your media) feel "entitled" to a special relationship, and particularly insist that the UK should get free access to the internal market (eat your cake and keep it). This I call plain and simply "leaching", and I will call it that as long as you keep on pretending that you are entitled to anything. The EU and the UK are going to negotiate what they want their future relationship to be. The old agreements are void, and nobody is entitled to anything. Stop pretending that the UK knows what the EU internal interests are, we can very well come up with our own priority list. We are all adults here. If we decide that it is not in our interest to give free access to our internal market (as I think it is the case), stop pretending to know better.

So, if you want a better tone from the EU side, use a more respectful tone from your side.
Brimming with arrogance and a complete lack of self awareness. There are a lot of programmers in the top 25% that are willing to work for a lot less than 1 million a year. Why would anyone hire this guy who has no social skills, is arrogant and expects to be paid more than everyone else who brings the same value as him? There isn't some magic set of decisions you can make which will circumvent the rules of supply and demand, and if there is I don't think you're going to find it in an Ask HN post.
I wanted to make one for Vivaldi but it doesn't use Chromium bookmarks API and there was a discussion about it already where it was said to be implemented with the option to sync on a self-hosted server. (https://forum.vivaldi.net/topic/5816/sync-settings-and-bookm...)
I've also been working on one for Chrome but haven't had time lately to work on it.
> How can I make pull in $1mn+ as an engineer?

> I don't want to have to be in the top 1% like Jeff Dean, but top 25% and still get these results.

That's a contradiction in terms. If you made a million dollars, that outcome would place you in the top 1% among software engineers.

If the Efficient Market Hypothesis is valid and in operation in the software marketplace, then to make a million dollars, you will have to earn it. It's really as simple as that. Speaking as someone who made plenty more than a million dollars -- by earning it.

> Don't have social skills and want to make more money.

But people without social skills end up working for people who do have social skills. The latter collect the money, the former do the work.
I've deliberately avoided deep arrays for settings, so my jsonb settings merge is simply:

SELECT COALESCE(companies.options, '{}'::jsonb) || COALESCE(groups.options, '{}'::jsonb) || COALESCE(users.options, '{}'::jsonb)
FROM users
JOIN companies ON users.company_id = companies.id
LEFT JOIN groups ON users.group_id = groups.id
WHERE users.id = ?

Where I need a hierarchy for key names I'm just prefixing.

I sit right on the knife edge of tossing all the jsonb options and replacing with an old-school normalized EAV model.
They give it away while still keeping millions/billions for themselves. Money is the worst if you give your life for it, but otherwise it's pretty good.
Pay packages are structured as base salary, bonus, and RSU grant. The RSU grants can be almost arbitrarily generous. Google paid out ~$6.7 billion in them last year.

You're welcome to your own estimate as to the percentage -- I suppose it's quite sensitive as to whether you're thinking "percentage of engineering staff at AppAmaGooBookSoft" (which is weighted towards < 5 years of professional experience) or "my percentage odds of reaching that level mid-career given 5 years of competent execution at one of AppAmaGooBookSoft."
> ... or a filesystem as a backing store first.

File systems are far harder to use correctly compared to pretty much any database; suggestion: only use them for storing large blobs, and use collision-free names (eg. random UUIDv4). Many applications don't need that though.
Udacity Open Source Self-Driving Car Simulator
Importance of Customer Experience in Marketing
Both the old and new sync encrypt all data before storing it on the server.
Don't be an engineer? If you're purely in it for the money, I would suggest the way to get 1mn/year is to join a hedge fund or prop trading firm as a trader. Steps: 1. Graduate from an ivy league school with a good GPA so it's easy to get in the door 2. Pass rigorous math based interviews - lots of guides on studying for these 3. Make money on your desk, which requires the ability to learn financial concepts, and quick thinking on the job - if you can play Starcraft well, or multi task online poker, you can do this. You don't need social skills or anything for this, apart from the interview process, it's almost purely analytical.

Making that kind of money as an engineer is much more of a crap shoot. Just be the best engineer you can and have big influence wherever you work. Then get very lucky and work on the right project at the right time at the right company.

On a more philosophical note - if you spend your life chasing money, odds are you're going to end up pretty unhappy. Try not to succumb to the capitalist rat race - I know it's hard, but it will make you happier :).

edit: Updated to be less hyperbolic. It's still tough to make a lot of money even going the trader route.
Base salary as a software engineer? None. Top 1% that has made a name for themselves, complete package, a few.
It's not about money. It's about time AND money !
You should read "the 4 hours work week" by Tim Ferriss (or at least listen it
https://youtu.be/ojgsw8IGT2o)
Even the wikipedia page you linked lists alternatives for all kinds of platforms (which is no surprise, since it just implements standard algorithms)
Raymond Merrill Smullyan, the paradoxical logician, leaves us
Learn kdb+/q, move into trading, be lucky.
When trying to come up with hard problems in computer science I would think np hard, not robotics.

Building a robot to toss the ball is still hard but that is an engineering and physics problem. The calculations remain simple.
> Unless of course you plan to make a positive impact on others or our planet with that money, but to me your posts don't make that impression.

I consider this a non-sequitur. Making a lot of money is considered the primary goal in our capitalist society and the sheer mechanics of our economy would guarantee it to be a net positive in all but 99% of cases (i.e burning the pile of money).
Ask HN: Self-taught developers, how did you know you were job ready?
> Why would anyone hire this guy who has no social skills, is arrogant and expects to be paid more than everyone else who brings the same value as him?

I think OP is asking how to add enough value as a top 25% programmer to justify getting paid this amount. That strikes me as a very fair question.
Alpaca: Functional Programming Inspired by ML for the Erlang VM