Also hey man! Are you still doing work for Fusion?
13,583 karma · joined April 23, 2011
Currently working as a principal engineer for a unicorn supply chain startup.
learc83@gmail.com
https://github.com/learc83/
Also hey man! Are you still doing work for Fusion?
Ok so there is something terribly wrong with our industry.
Why is that other industries don’t need 6+ rounds of interviews for experienced candidates?
How do you have time for that?
One minor note they only have to file a 1099 if you made more than $600 (of course you’re still supposed to report it).
There's a few issues here. First, surgery can have bad work life balance depending on the subspecialty. Some spend a lot of time on call, some basically work 9-5 or less.
Second, unlike basically every other very high paying profession, surgery requires working with your hands, and physical and mental stamina to endure hours of operating. Just getting through med school requires above average intelligence and hard work, but you don't need to be a super genius. The abilities that make someone a good surgeon don't necessarily translate to any other profession that is that highly paid.
Third, surgery is a very direct path to what most people would consider serious wealth for someone who is smart enough/hardworking enough to get into med school, but didn't necessarily get into one of the top tier schools that some of the other very high paying careers recruit from.
All that aside, surgery isn't the only specialty that is very highly paid.
> that allows them to work a Mon to Fri 8 to 5 job
Many very highly paid subspecialties work Mon to Fri 9-5 and some even less.
>maybe even work from home
Radiologists routinely work from home, and there are remote opportunities for other doctors as well.
>and live in a popular city as opposed to living in a less popular area (many doctor's get paid more for living in less popular areas, for obvious reasons).
That is only true for certain specialties and subspecialties. My wife's sub speciality requires her to live in cities with a population of at least 500k or so. Many of the very highly paid subspecialties are similar.
Even for family medicine the difference is only 5-10%.
But I wouldn’t recommend my kids go into family medicine. If you’re say a pediatric emergency medicine doctor, or a maternal fetal medicine doctor, there just aren’t enough of you to be just a cog.
Increasing the number of mid level practitioners has been happening for a while, but it hasn’t had much impact on salaries [1]. My wife isn’t concerned.
However my wife is a doctor who is fellowship trained, so she didn’t start making real money until she was 32. But she made a good bit above the median salary for many years before that. She also doesn’t feel like she sacrificed her 20s. She had plenty of fun, although she says med school was much harder than her engineering degree.
And now she makes much more than I do as a principal engineer, and she works less than 30 hours a week.
She doesn’t have to worry about interview prep or job hopping. She has absolute job security in any economy. She gets paid for continuing education. She is highly respected (people are much more impressed that I married a doctor than that I’m a principal engineer lol).
There is a legal framework protecting her autonomy and decision making at work. Not even the CEO of the hospital can overrule her.
In short, she is almost completely above the rat race, and is a true professional in ways that we (software engineers ) are not.
I would 100% recommend our children become doctors.
It’s incredibly easy for careless scrapers to disrupt a site and cost real money without having a clue what they’re doing.
I want people to think twice and consider what they are doing before they scrape a site.
At a previous company we had the exact problem that we published all of our content as machine readable xml, but we had scrapers costing us money by insisting on using our search interface to access our content.
2. No one is going to jail for scraping a few thousand or even a few million pages, but just because low speed web crawlers are allowed to index the site, doesn't mean scraping for every possible use is permitted.
They said please don't, not don't do it or they'll sue you.
But content license and site terms of use are different things.
From their terms of use you aren’t allowed to
> [Disrupt] the services by placing an undue burden on a Project website or the networks or servers connected with a Project website;
Wikipedia is also well within their rights to implement scraping countermeasures.
Where are you getting this information from? The only hard data I can find is from self selected survey responses, but this survey from IGDA shows only 10% of employed game developers are under 25 [1]. My guess is that (as you've acknowledged is possible) there's some serious selection bias going on. You said you have an interest in burn out rate, so I'm guessing you're more likely to follow/notice game devs who discuss this topic. This group is more likely to be suffering from burn out I'd wager.
Another poster already mentioned that engine devs (the one's writing most of the C++) tend to be older than the industry average.
1. https://s3-us-east-2.amazonaws.com/igda-website/wp-content/u...
Ignoring the amount of memory used, GC tuning a managed language doesn't give you the flexibility to control memory layout needed for maximum cache locality.
>If your use case allows you to not care as much about larger memory consumption -- 2x to 3x does seem like a reasonable first approximation of "larger" -- then GC is indeed a viable option for building "high performance" systems.
Not ignoring amount of memory used. In the context of this thread--video games specifically "high performance" video games--2x to 3x is almost never going to be acceptable.
Someone shipped a small alligator once. It peed in the cardboard box it was in and it got wet enough for it to escape inside a sorting machine. Imagine his surprise when he opened up the machine to see what was causing the errors.
Who said it's a rule? What C/C++ gets you is the ability to manually allocate memory without jumping through hoops.
> Performance optimizing C# and garbage collection is a different art than performance optimizing manually allocated memory code, but it is an art/science that exists. I've even seen some very high performance games written entirely in C# and not "high performance C#" but the real thing with honest garbage collection.
Performance optimizing C# with garbage collection for high performance soft realtime systems (I've done it) relies on tricks like object pooling to avoid triggering GC along with avoiding many of the more advanced language features. Even then you don't get the same level of control. I'm also almost completely certain that the high performance C# games you're talking about aren't using C# for the engine, but feel free to provide examples so I can take a look.
If your game (or parts of your game) doesn't need the performance that comes with a higher degree of memory layout control, then by all means use whatever tools you want to.
I've written game logic in C#, F#, Ruby, Haxe, Python, Lua, Java, JavaScript and Elixir.
>The implication in the discussion above is that a possible huge sweet spot for a lot of game development would actually be a language a lot more like Haskell, if not just Haskell.
There almost certainly is for game logic. Many modern game engines provide higher level scripting languages.
However, if what you are working on is in that sweet spot, you likely didn't need an ECS to begin with and a classic component architecture would have probably been a lot easier to deal with.
>But there are High Frequency Trading companies out there using Haskell in production.
HFT is not game dev. "Performance" in HFT doesn't mean the same thing as performance in games.
I haven't used Haskell specifically, but I've toyed with using Elixir for gamedev. It's reliance on linked lists makes it extremely difficult to iterate quickly enough. There are work arounds of course, but the work arounds remove most of what is nice about Elixir in the first place.
>Performance is a good reason to do things, but I think the videogames industry tends to especially lean on "performance" as a crutch to avoid learning new things. I think as an industry there's a lot of reason to avoid engaging more experts and expertise in programming languages and their performance optimization methodologies when it is far easier to train "passionate" teens extremely over-simplified (and generally wrong) maxims like "C++ will always be more performant than C#" than to keep up with the actual state of the art. I think the games industry is happiest, for a number of reasons, not exploring better options outside of local maxima and "performance" is an easily available excuse.
The average engine coder writing high performance code in C++ isn't a "passionate teen". They are experienced software engineers who want to stick as close to the metal as they feasibly can.
The games industry (outside of AAA games) also has an extremely low barrier to entry, and it's something that nearly every programmer has thought about doing at some point--if Haskell turns out to be a fantastic language for making games, it will almost certainly happen sooner or later.
The quotes imply that this is a bad reason, but in soft realtime systems you often want complete control of memory allocation.
Even in the case of something like Unity--in order to give developers the performance they want--they've designed subset of C# they call high performance C# where memory is manually allocated.
In most cases if you're using an ECS, it's because you care so much about performance that you want to organize most of your data around cache locality. If you don't care about performance, something like the classic Unity Game Object component architecture is a lot easier to work with.
You generally tip based on percentage or the number of drinks, so it shouldn't matter too much unless you're doing it by percentage and rounding up the nearest dollar.
ECS is a specific software architecture where (among other things) there is no entity level property because an entity is just an identifier--all properties are stored in logicless, data only components. Unity DOTS has an implementation of this.
This is coming from a Ruby, C#, F#, C, and JavaScript background.
My company is hiring btw if you're looking for an Elixir job. https://grnh.se/b87ce54f2us
It’s very likely the study you linked is flawed or there is a confounder.
You owed the lord a percentage of what you produced as rent. You owed the church a tithe. You also potentially owed service to the lord and the church. Taxes were also paid on certain goods purchased. Taxes that in many cases nobles were exempt from. Kings and feudal lords could also enact special taxes to pay for specific projects.
If you were a merchant of some kind and you wanted to float your barge down a river, you had to pay nearly every town you passed through.
>it's nothing compared to what we experience today in the developed world.
Your overall tax burden could still be tremendous even if it's not paid to 1 central taxing authority.
They don't have to show anything. The employee has to prove that it's age discrimination.
>When someone has been at the company for 25 years like in the parent’s example, and they get fired abruptly without notice for liking the wrong football team, it’s likely the stated reason is untrue and inviting a challenge.
Without a pattern of discrimination this isn't a problem. If there is pattern of discrimination then it is. However, if that's the case it doesn't matter how much documentation they have.
>It certainly helps show that the company isn’t discriminating arbitrarily, and gave the employee notice and a chance to improve the situation.
You can't discriminate arbitrarily. Discrimination in this context means firing someone because they are part of a protected class.
>gave the employee notice and a chance to improve the situation.
Whether you gave someone the chance to correct the situation or not isn't relevant.
>BTW actual legal action isn’t necessary for firing to be getting harder. The fear of legal action is all you need, and that is in fact going up.
The number of charges filed with the EEOC has gone down over the last 20 years https://www.eeoc.gov/statistics/charge-statistics-charges-fi...
https://www.natlawreview.com/article/eeoc-roundup-part-i-10-...
"At the same time, FY2020 saw the lowest number of charges received from workers in more than two decades. The agency received 67,448 charges—continuing the steady downward trend since 2017 in the numbers of discrimination charges filed with the EEOC."
The company doesn’t have to prove that the employee was failing. It’s perfectly legal for a company to fire an employee because they the employee likes the wrong football team.
The employee or people pursuing legal action on behalf of multiple employees has to prove that the company fires the employee(s) because they were a member of a protected class.
Assuming there are no incriminating emails stating that that was the reason, the only realistic way to do that is to show a pattern.
If an employee decides to sue, whether you had them on a documented performance improvement plan for 6 months or 6 days isn’t going to be the deciding factor.