703 karma · joined May 1, 2017
You pretty much have to seek out the knowledge regarding Operating systems in addition to taking on the challenge of learning something like C/C+ or Rust. You have to then break all the ways of thinking about your memory model after being given a GC language.
Understanding hardware is needed to debug specific CPU/IO issues that could be caused by assumptions or lack of knowledge.
Next comes learning the different algorithms needed by an OS in a new language and then implementing them. This takes a lot of time to get down correctly.
It's also a really small and niche community which means you don't have a lot of support from peers that understand the problems you encounter the community isn't an easy one to feel accepted into. It can be hard to get support because you need to be very detailed in your questions or you will be ignored.
You actively have to work in order to block ads and trackers today. Its getting harder everyday. It’s so sad we have some of our worlds best engineers working on how to send ads to people. Our priorities are whack.
The bindings to set it up gave hard to debug errors and there is no support for compiling the x86_64-pc-windows-gnu toolchain on anything else besides a windows system; Which makes sense but winapi-rs compiled on Linux so I stuck with it. I don't want to manage another build machine and I know I'm probably like the one guy.
Working with strings was a bit rough too, it'd be nice if you could just pass a CStr and call it a day instead of messing with buffers and lengths and double function calls, one to get size of the string and then another to fill the actual buffer. I know this is how Win32 works, but it doesn't feel natural coming from Linux Kernel Dev.
Regardless of my criticisms, I am excited to see the future of this crate. I think it's an awesome effort and a great addition to Rust and Windows.
Success, money and fame don't magically fix you as a human. They help, but the human condition afflicts us all.
I believe it's a good way to celebrate wins and everyone gets to take some time from work and just chill with each other. I offer the door dash regardless if you show up as there is no pressure either way for me, I'd just like to celebrate team wins.
Genuinely curious if this is bad because it feels forced? My team seems to enjoy it but maybe it's just bullshit.
If you're a great employee, you will still have people competing for you and I don't think this should concern you.
We try to keep a high standard of tooling to protect our customers and company data. It's really not about bogging you down, I know it sucks. It sucks hard. It's about ensuring when we upload data to your SaaS, we know it's in good hands that have been vetted.
The good news is, if you make it through it once other big companies start flooding to you as well and it becomes much easier to deal with them as you've been through the intensive process before.
I deal with a lot of deals and if you're building a startup up it's a lot easier to think about security at the start then retrofit and fix it all at the end.
I don't have a requirement to build for Windows, so I will always just avoid it. I think Microsoft is making strides in developer experience, but I think it also sees the signs that Linux/Containerization is the way forward thus why they built WSL. Azure itself is over 50% Linux now too.
Source: https://build5nines.com/linux-is-most-used-os-in-microsoft-a...
Lately, I'm all Rust. If you're on Linux, it's so easy going to get it all working right. Windows is a pain, so much so you end up installing WSL2 and just moving on with your day.
A good follow up to this post would be OpenSSL compilation on Golang vs. Rust on each platform. It's a fair test as it's widely used library with both programming languages and all the operating systems.
Theres a cost saving by designing things up front say for GDPR or handling credit cards safely that is worth investing in. Sometimes, a threat modeling session alone could save you time and money in the long term. It's harder to change things when you've built a product, have customers relying on it.
In terms of the actual product, you will have users, they will need to login/logout/reset passwords. Ensure proper authorization and authentication.
How are you handling logs, secrets, 3PP. Do you handle customer input, do you reflect it onto the page, store it in the database? Do you allow them to do HTTP requests? How do you prevent SSRF.
How are you protecting your code? Laptops? Do you have antivirus? Do you patch your infra?
These are the questions you don't really think about, however they can have real consequences if you don't.
In terms of who I'd recommend, you get what you pay for. Generally, I'd look for a small shop in your local area and vet them.
Yearly pentests are a +, and if you do go through an Acquisition or someone trying to whitelabel your product they will want the reports.
If you don't have any revenue yet, do check out OWASP top 10. Run scoutsuite on your AWS/Azure/GCP. Enforce MFA where you can, Github/AWS/Gdrive/O365. Setup SSO right away and just use that to login to all your infra and services. Will save you so much headache down the line. Make sure you keep your logs application and service logs. Try to aggregate them somewhere.
If you have any sort of machine learning pipeline it can be especially frustrating to work with anything other than Ubuntu. Nvidia drivers :(. Arch is fine with it but upgrading again is just more time spent that I'd rather be busy researching.
I love Arch, I love the community and they have the best documentation. However, for me personally being on a rolling release is too time consuming :(.
Read How to Win Friends and Influence People by Dale Carnegie. It's an old time classic with advice that is very much relevant today. With my own struggles I found The Road Less Traveled by Scott Peck also helped me.
You already say you're technically competent! You know you have the skills, what is it that you're really worried about when speaking? I think you need to ask yourself really what you think is going to happen. Think about times where you've spoken up and people ended up really appreciating your input. You've got this, you just got try a little bit every time you can.
We usually talk about what's going on around the office, how the current project is going, what's going on with coworkers and what the plans in the future are. I will bring up blockers/promotion talks/holidays anything that I need his help with. We're pretty informal about it.
It all depends on the manager and their personality. I find it's better to be casual and not have a strict agenda though.
I hired someone who is super detail focused and he's been amazing. He keeps meeting notes, tracks conversations, random suggestions and for funzies fixes my messy code.
I'd say this has had a huge impact on my own work, not necessarily for the larger team.