Recently joined a company with legit soda machines(the fancy ones with exotic stuff like cream sodas), slim jims, ice cream, cookies, cakes and which buys lunch for the engineers every weekend. It's amazing. I came from a place where you had to pay 2 $ for a soda!
It's definitely one of the things that you don't realize when you don't have it, but when you do it's like heaven. It's really helped me get more work done since I can snack away and it encourages me to get up for walks around the office.
There's definitely competitors opening up and realizing the space is worth the investment. C# Maui for example, especially with Blazor, is extremely cross platform as well(including web), but it has full party support in C#.
It was pretty heavily used in enterprise on applications from around 2006-2012. I still have nightmares of it, as since it's enterprises the code bases got massive and GWT in my experience had a trend of getting a ton of code smells.
Apple is by far the most secure, which is why you rarely see kernel exploits and the market for IOS security researchers are in high demand. While the market for android researchers are hot, it's luke warm in comparison. Even in IOS 13, meaningful iphone exploits are hard to come by, while android it's like candy.
Key point, it's going to be difficult to find a way to unlock the bootloader on an Iphone, or a root on modern versions of IOS. Meanwhile you can buy a android phone day 1 and load your own bootloader and get code running in the kernel. This is exactly what a malicious application does. The security boundaries of apps are pretty strong on both OS's, but Apple makes sure apps can't violate that.
Just like with any government agency, you bid on something called "Small Business Set Asides" and get or say you are a minority woman. This will give you bonus points and contracts that are reserved for these groups. All government bids are open and if you google it, it will take you to websites which has these contracts listed and how to bid.
https://www.sba.gov/federal-contracting This site is pretty good on the process, on that page you can look and see the "Federal Procurment system" and it has a link to it, which shows all open bids on contracts. They also have another link on there which has small business set asides.
This is really the big reason. IOS blocks applications from running dynamic code. The kernel is immutable and replaced on every update, and safeguarding the JS engine is a huge benefit of controlling the OS. Antivirus's really struggle with this on PC because of all the dynamic code being ran that they can't really enforce things like code signing, requiring executable code to be mapped to the disk, etc.
This is going to make everyones phone ALOT less secure. There's a reason android malware and hacks are a big issue and there's almost none on IOS, as the footprint is so low due to things like this.
There's a big difference between moderation on HN and sites like Reddit. Reddit completely shadowbans, filters, or bans anyone who doesn't post with the hivemind. This makes it so you can't have a fair contrarian view and it completely pushes out people and makes an echo chamber. I would say that Reddit takes it to the level of the Soviet Union in wrongthink.
While HN is moderated, you can have pretty much any fair view as long as it contributes to the discussion. Which is nice and the ideal middle ground. Although I will say, I never have any issues with Twitter and the moderation is just fine besides some high profile cases I disagree with. I would say it's even to lax.
There's plenty of other companies that have the other side of the coin in values though that would admire people who stand up. It's very nice to be a good culture fit at a company. I have a Blue Lives Matter flag in the corner of my camera during interviews and it's gotten me some really good offers and I havn't been declined once.
On the flip side, I know many that have been discriminated based on their looks or vocal patterns(trans / lgbt). Alot of companies and people assume these people are a problem because of what goes on at google and decline them due to culture fit.
In regards to memory alignment, it's even worse. Most instructions work on unaligned data. But some instructions require 8 byte, 16 byte, 32 byte, 64 byte and I think there's even some 128 and 256 byte alignment. One of the more common pitfalls someone can find themselves in when coding x86-64 asm.
Government pension is actually very bad. You pay 4 % of your salary per year, and get 1 % * years worked * avg(3 top highest salaries).
You get far more money if you put that 4 % into a 401k or other investment vehicle.
Also, with loans being discharged, you have to have made a ton of payments, to the point that most will pay off their loans before they're eligible in a stem position.
There's actually alot of research in this topic. You should look into "Genetic Programming" on scholar.google.com and you'll find some good presentations.
Genetic programming sounds like a complicated term, but it's basically an easy way to take successful characteristics and breed them into something else.
This is one of the biggest issues people don't realize. A react dev doing fully frontend stuff is usually paid more than a security guy. Management views this as the developer making a product and giving money. But with insurance no longer covering hacks like they used to, and with the absolute amount of ways into organizations, security people can literally save a company from millions of losses and possible collapse.
Are you trying to run your own business? Me, my friends, and all of my coworkers have to live in the shadows because recruiters hunt us. Like, my buddy posted on Indeed and not has 5 unsolicited phone calls and 12 emails a day.
If you really can't find work in this market, you should really try fixing your resume since you most likely aren't selling your skills or have a red flag. Some of my older coworkers only put their last 12 years experience, or don't list dates on them to avoid age discrimination at the resume filter stage.
I was recently looking for positions and it seems like most of these companies are hiring you as a filler until they get someone just as good. So you're 100 % right.
Without sounding controversial. Most promotions and good things at a job come from people skills rather than technical. And if you can get into the "Good old boys" club or just make friends, then you usually succeed. WFH doesn't really have those options, so not only does the company not want you to WFH, you also arn't making connections and relationships.
After hearing some horror stories from people who took the jump earlier in Covid, I decided against it, since it's exactly what you said. 100 % stagnation.
Although, the only people I have heard doing well are our sysadmins/IT friends. They are very asynchronous and can easily work 3 jobs with no conflicts and are doing very well.
If you're trying to enter the field I would highly suggest ARM. Mobile malware is the wild west and they really need analysts and hire a bunch of people with no experience out of college. X86/64 is alot harder to enter the field in since theres alot more saturation so the barrier to entry is higher.
Specifically my main gripe with this is the fact that X64 code changes alot of what this is assuming and can lead into ALOT of pitfalls. So make sure you read https://www.nasm.us/xdoc/2.15.05/html/nasmdo12.html (The x64 bit programming section) if you do follow this guide.
Had this issue with a coworker who uses a decade old version of Linux and refuses to install anything other than base packages cus it's "Stable". Well I made an in house tool, and it's not stable, since his glibc had a bug that's been fixed for a decade that made it so pthreads would break. Everytime I tried telling him it's his system before someone else found the bugfix, he would go "YOU JUST DON'T KNOW HOW TO WRITE MULTITHREADED CODE! MAKE IT SINGLETHREADED AND FIND THE BUG!"
You want to use C anyhow as you want to make sure you have control over the code that is output.
For example the following code you know what the assembly is going to be.
strcmp(char* a, char* b);
strcmp(str1,str2);
If you do the above as a template you can run into some weird issues that you may not be expecting. So while tedious, you would need to make your own wscmp. You also have to be very careful so that you don't pull in ANY libraries. Since your code needs to be 100 % independent and do the loading itself.
C++ exceptions are implemented at the OS level in windows. C++ exceptions using SEH, while there's also VEH and unhandled exceptions. You can easily use SEH for your shell code, it's just not documented well. But sadly you have to manually set this up by having something like
SetExceptionHandler(curAddr,Handler) // Where curaddr can be found by doing something like call $+5 so you remain position independent.
You do end with modules having the same address in every process if untampered though. This is due to Copy on Write windows implements internally with DLL's to save space. So while not guaranteed. On X64 you can be certain that because of COW the module will have the same address.
Emulations is pretty much literally just mapping instructions between processors. So there may be an instruction in my custom chipset called "Add4", which adds 4 inputs. I would emulate ADD4 RAX, 0x1234, 0x2345, 0x3456 that by
It gets a bit more complicated with architecture differences like memory configurations. But that all emulation is.
When you're virtualizing, you pretty much just need to manage hardware. The hypervisor does this for you by managing which resources go to where. You could virtualize it by just running it like a program. But that's really painful and tedious, so you rely on the CPU to support it. Each chip has it's differences, but it's effectively just like a syscall. You have VMCALL and VMEXIT instructions. And then you have a handler in your vmexit table, which is exactly like a syscall table. So if(exitreason == CPUID_EXIT) cpuid_handler();
It's definitely one of the things that you don't realize when you don't have it, but when you do it's like heaven. It's really helped me get more work done since I can snack away and it encourages me to get up for walks around the office.