- #1 Poor work/life balance, workaholic culture. A fair amount of people tend to stay long hours in the office if they don't have any other obligations (wife, kids, etc.). This is either due to extreme passion for the project, or in the more likely case, too much to do, and not enough time to do it.
- #2 No time budgeted to perform on-call duties, i.e. you are expected to have similar output as if you were not on-call. For smaller teams maintaining products with more critical infrastructural roles, the rotation can be extremely frequent (once every 2-3 weeks) and can lead to overwork.
- Huge technical debt. Most development efforts tend to go toward amazing demos that generate revenue, but not much afterthought is put into maintenance. However, recent efforts have been put into place to address this, but still are early stage at best.
- No centralized/standardized culture of project planning, some teams do it, others don't. While this allows more individual team freedom, for cross-team collaborative efforts, having different project management systems for the same project can be hard to reconcile.
- Depending on the team, you may be working as a team or working in a silo. For remote employees, this can quickly become very isolated. Spending time in the office is encouraged if you can.
- At times, too much ownership. You are responsible for knowing everything inside and out for at least 5 different apps/services, without much documentation/hard-to-find documentation to guide you. In essence, you are expected to be a jack of all trades, but in practice, a master of none.
- 401K has no matching, 100% your contribution, but this is to be expected at a smaller company.