Almost ten years ago I worked on a reverse engineering project. It was very tedious work. Is it worth it to be good at reverse engineering, I mean are there good paying jobs for it now?
I often have trouble explaining reverse engineering to people without raising eyebrows. People think its hacking
It's surprising to me how often reverse engineering turns out to be useful even in normal programming jobs.
Even if it only happens once or twice a year, if you're the only person on your team who can figure out how to work around some framework or OS bug, people will think you're a magician. Stuff like that can make performance review cycles all by itself.
It really depends on the type of work you're doing, though. Most people got into reverse engineering because they find it fun. If you hate it, there is probably other stuff you can spend your time on more productively.
Any job with legacy software involved highly values RE, in my experience. Either you have the source to the legacy application, in which case the reverse-engineering thought process is still present while debugging, or you don't, in which case you've got a real RE job on your hands. For example, I worked at a company with a giant set of business processes running inside a minicomputer emulator, with no clear path to migrate the data. By reversing the database file format we were able to extract the data and build additional tools in a gradual-migration fashion, without disruption, data-loss, or the classic "rewriting software" problems.
>It was very tedious work. Is it worth it to be good at reverse engineering, I mean are there good paying jobs for it now?
Malware analysis. Limited job opportunities and companies, very specialized skill set, but good pay, challenging, and exciting.
You can't be a hack who programs through Stack Overflow - either you know your shit or you don't - few people can help you if it's something nobody has ever seen.
Decent paying, yes, but very rare compared to standard software engineering jobs. A lot are in defense. Top companies have a few on hire but unless you're the best of the best, it's tough to match the salary you can get as a standard software dev in a top 10 company.
However like a lot of other similar jobs you will fairly quickly hit a ceiling in terms of career progression at which point the only way up is becoming a manager of sorts.
So here is the odd thing: servers are (often) managed by Trained Proffesionals, and have backups and failovers.
Personal computers are, well, not like that. And yet they often have peoples important creative works, correspondence etc on them. ECC is probably more useful there, it's just that it is harder to make any benefit visible to the customer.
(That doesn't mean customers don't care about realiability. It is just that they have no sane way of distinguishing a product that really is realiable from one with advertising that lies about being reliable).
Servers accumulate bitflips over long periods of time because they run 24/7. If you reboot your computer every few days to clear the memory then it's not going to be a significant problem.
Running 24/7 is not that relevant. It's the number of writes/refreshes on a given bit of information that matters. A server running 24/7 and a laptop, both reading/converting/writing image files have the same chance to corrupt each single image. The server has more chances to corrupt its cached executables though, since they have longer lifetime.
The need for ECC has nothing to do with maintenance or proper administration.
You really don't need ECC as normal user, most of the time bit flips won't really hurt you. However, if, for example, you run long-running tasks like 3D rendering or Physical Simulations you may want ECC just to be sure your OS won't be killed by a bit flip in the wrong section. Your photo gallery or music collection however will most likely never be hurt by something like that, so still, consumers don't need to waste their money on overpriced ECC memory.
> Your photo gallery or music collection however will most likely never be hurt by something like that
Citation needed that people don't care about their photos and music. Human error and storage failures are more likely sources of loss but we're a big industry and can make progress on more than one thing at a time.
> consumers don't need to waste their money on overpriced ECC memory
If ECC went mainstream, prices would drop as volume increased.
Except that ECC is insufficient because some Rowhammer attacks can flip more than two bits per memory word. The proper mitigation seems to be TRR (target row refresh).
But their key-value store is not transactional. Afaik, they don't define the semantics of operations like 'mv' across cells. Higher level frameworks like Spanner/BigTable work around that limitation - but are forced to present data in tabular format. HopsFS allows to to treat them as files.