Calling external services "microservices" is fundamentally wrong. They are "services". All that will do is create a lot of confusion because you are utterly misusing terminology. You can't just decide to misuse terminology. That's like calling "red" "blue". You don't gain information by misusing well-defined terms, you create confusion and misinformation.
That said, your ideas on distributed systems is wrong. Any point in a workflow can and will fail. You need to account for all of this. You can successfully create an account on Stripe, and then when you bill that account, it could return an error. Or even worse, it can timeout, meaning you don't know whether or not a user was charged.
You have to take into consideration all of these failure situations. There is no atomicity in the way that you expect. Whenever things deviate off the happy path, you fail quickly and decisively so that everyone knows where they stand. That gives people the option to retry or call support.
It's absolutely a basic feature. It's the opposite of buying a share, and your profit/loss is easy to calculate. With options, you need to worry about premium, time decay, spreads and lower liquidity, etc.
For a brokerage managing short position risks are exactly the same as managing long positions. And the implementation is the same too. Do real-time checks and once a position has lost more than X%, sell the position immediately.
The biggest problem presumably for Robinhood is managing the borrowing of the shares. They're probably not large enough to have a pool of shares to consistently borrow from like other larger brokerages.
Yes, a pure short position is much cheaper than buying puts. You pay a lot of premium with options and almost no premium with shorts, depending on what the rate to borrow is. Also, liquidity is much better as are spreads. It makes a huge different to the profitability of a trade.
This is an incorrect statement. CPU utilization and memory matters because it limits how many other containers you can load on the same host, and means that it becomes more and more expensive to run that particular service.
It would never have been prioritized. The time to convince others that this was more valuable than other tasks would have far outweighed the time that he spent working on it on his own time. He thought it was a cool idea and just did it without seeking permission.
It's mostly raw passion. You can't get a 9-to-5 worker excited enough to learn something from scratch over a weekend just to do something she thinks is "cool".
There's also a difference between a better programmer vs more productive. I will never be as productive as the two that I mentioned, but I'm pretty good at programming. I have enough experience to know how to develop a feature and a set of code such that it's easy to read, easy to maintain and doesn't have very many bugs. That's just something I've learned over time. Others may be much more productive than me, but I rarely have to revisit features due to bugs. So there are different measures based on what you want from a team.
Louis CK once said "The only time you should look at what's on some else's plate of food is to check if they have enough." That really put things in perspective to me.
If I'm not making enough for the amount of work that I do, I will find another job.
I've worked with 2 10x engineers in my career. I don't know if they were precisely 10x, but they were the most productive engineers I've ever seen. At the startup I worked at, this was the VP. When he left, the company almost collapsed because he was singlehanded doing so many different jobs that we didn't know about. I would say that was more of a negative than a positive, but just from the sheer amount of work he did, he was definitely more productive than the entire team.
I had another friend who was also extremely productive. He never graduated from college, but he was a programming genius. One day he decided to learn ANTLR. Then he decided to deconstruct our query language for our product into ANTLR and discovered several bugs and inconsistencies in the implementation that made it impossible for ANTLR to parse it. Then I said "Hmm, it would be really cool to use ANTLR to read our XDR files and spit out some code that would implement the migration between versions." He said "great idea!" and accomplished that over a weekend, hand-constructing the grammar by hand. He saved the team probably 1 month of work every release cycle. He was absolutely astounding and the best programmer I ever had the honor of working with.
No offense to the OP but the syllabus is ludicrous. This isn't teaching anything. It's so packed with random software technologies, they will leave the course with nothing. Cut down on the syllabus and focus on a few topics. Make it project based so that you're building on the same project over the 4 days and learning more about programming.
Split the other stuff like git, databases, OOP, functional programming, machine learning my God, for another course. There is no way anyone taking this course will get anything from this, it will just be a confusing mess of information that is quickly forgotten.
Agreed. There is no way that a startup is capitalized enough to survive a payout. Their CEO and investors must be sweating bullets over the next few days, worrying if an earthquake hits closer to LA
I just don't understand how people continue to believe that Bigfoot exists. The footage from the 1970s, once stabilized, looks embarrassingly like a man in a gorilla suit. Plus they admitted their faking it. The fact people still believe this makes me understand exactly how conspiracy theorists and anti-vaxxers believe what they do.
Honestly, when you're dealing with the scale of the Internet, ie. billions of people, do the disgusting comments of a few dozen, hundreds or even thousands of people matter? It's not something you encounter in the "real" world, but it feels like we need to change our scales logarthimically when talking about Internet comments.
Probably a million people read about that article and 99% didn't think those horrible thoughts, but maybe less than 1% did and commented on social media. Just by sheer numbers, you're going to get a lot of terrible comments, it seems like this is the "new normal" and growing thicker skin is something we all need to deal with, unfortunately. To a regular person, a few dozen shitty comments will be hard to take from real people, but when considering the scale of the Internet, it's probably not significant and it's something we all need to learn, unfortunately.
I tried Impossible Meat last week and I was shocked at how tasty it was. There was a Better Meats option for hamburgers but I don't want to waste $8 in case it doesn't taste good. They would do so much better if they had a stand at Whole Foods, Costco, etc giving out free samples so that I could taste it without wasting food or money to see if I like it.
Google has become a big horrible disaster. I'm extremely disappointed in what is going on these days.
I am a heavy user of Nest (7 cameras, other accessories). I've fully bought into the ecosystem. I literally have no idea what's going on. It sounds to me who is only casually paying attention that they're killing off Nest and the Nest brand. Whether that may or may not be true, they need to understand the perception of their actions to their users. Do they really expect most people to say "Okay, I need to spend 10 minutes and read through exactly what this all means."
Now I'm left with the dreaded feeling that my Dropcams and Nestcams will no longer work in the near future.
Google has really damaged their brand because I no longer consider them reliable. If I buy a brand that is associated with Google, I expect that it will get changed in the next year or so into something that I can't comprehend or don't want, and it makes me want to search for alternatives.
I don't want to "merge" my accouns with Google Home. I want to keep my single account on Nest like I have for many years now, and I just want alerts and to be able to see my cameras. All this other nonsense that they're trying to pull me into is not what I want as a consumer, and it upsets me that Google is becoming this kind of company.
They are in many ways worse than Microsoft was at their worst. Before Microsoft used to be a monopoly on the desktop, but Google is now turning into a monopoly in my entire life.
Meanwhile, Nest has been dormant for most of its existence, releasing only a few features. But in terms of cameras it's the most reliable which is why I stick with it. But there are so many opportunities for them to improve this service and it feels abandoned. Instead of adding features, like animal detection or car detection, they are worried about how I log in or who my account is? That's just stupid.
Right now I'm struggling with whether or not to leave. I'm currently at a well-known company, and I'm uncharacteristically happy because my WLB is the best it's been in my career.
However, I'm getting a bit bored and I also know I could make at least $50,000 a year more if I leave. Hell, even the new engineers joining my company at the same level are making more than I am.
But the culture and pay at my company is just good enough such that staying isn't a horrible decision. And I don't want to start studying dynamic programming again for my interviews (I've never used it except in interview environments, so I keep forgetting and losing the ability to quickly answer questions).
So yes, I could make a nice amount more (plus large sign on bonus) but WLB is good enough to keep me, at least for another year. I pick up my kids every day at school and I love it, it's worth the money for now.
Sorry, but I'll believe it when I see it being sold in stores. This has Kickstarter syndrome written all over it. Meaning, a really cool idea and flashy video, but it's in "pre-order" and there's no guarantee when it will actually ship. And even when it does, I'd rather wait for reviews to tell me how good it works rather than trust a marketing video.
That said, your ideas on distributed systems is wrong. Any point in a workflow can and will fail. You need to account for all of this. You can successfully create an account on Stripe, and then when you bill that account, it could return an error. Or even worse, it can timeout, meaning you don't know whether or not a user was charged.
You have to take into consideration all of these failure situations. There is no atomicity in the way that you expect. Whenever things deviate off the happy path, you fail quickly and decisively so that everyone knows where they stand. That gives people the option to retry or call support.