I started a new job at a startupish (2007) company, upon looking at how their system works. I found problems with their database, software, and overall project management. This isn't just errors or coding problems this is overall structure and how things get done, I would say basic stuff. I am actually surprised it has survived so far. Although as a new employee I am still going through probation and I need this job. My question is when or how I should confront them with these issues? I don't want to just go in and tell them how crappy of a job they are doing with this stuff.
First let me say that the situation you are in is (unfortunately) probably the rule and not the exception. I've been at start-ups where certain decisions were made early on that cause major headaches down the road. These decisions can be architectural (i.e., picking CORBA to do anything), process (not having unit tests or nightly builds), design, marketing, etc.
Nevertheless, you are in the situation you are in.
You certainly have an opportunity to improve the place at which you work. I wouldn't necessarily lead with "your stuff is crap". That isn't going to win you any friends. Besides, they probably know that in their hearts.
Rather, you need to
In mind mind an average engineer does #1.
A good engineer does #2.
An excellent engineer just fixes the problem (#3). This doesn't mean they do it all cowboy like. You can bounce you idea off of people, ask for advice and figure out the best answer. But in the end you make it happen yourself.