Senior System Software Engineer • Former Employee
Pros: The company is willing to pay and reward employees decently with cash and stocks. That is all.
Cons: - Toxic working environment
Workload is unreasonably heavy. Management doesn't really care about the technical challenges engineers are facing, as they are under great pressure coming directly from customers who are rich enough paying billions of dollars for the AI *revolution* powered by NVIDIA products.
As a result, software engineers have to accommodate feature/bugfix requests from customers in very short time frames per management's direction. Long-term planning rarely exists.
This causes a huge amount of tech debt piling up quickly in just one or two generations of GPU, and from a software engineer's perspective, it is basically not sustainable to work in this manner.
This stressful working environment also creates the incentives/excuses to not help team members as you can barely finish the tasks assigned to you, which makes it even harder for everyone to be long-term productive. All in all, just all sorts of vicious cycles.
- Hardware-centric tech lead in a software team who can't really code
This is team-specific. We are a software team, but the most senior tech lead who oversaw most code commits didn't seem to know how to code C++, which is the single most important programming language of our software product.
Examples include:
* Thinking that C++ namespaces can create different scopes for macros.
* Thinking that adding a boundary check on array indices is a *hack* and thus shouldn't be done.