Pros
Overstock generally hires smart people that are nice to work with. The location is very nice and composition is on standard with nation and generous for Utah.
Cons
Overstock has been one of the most frustrating places to do software development. I have heard software development at Overstock described as 'Mob Architecture' and cowboy development. You can literally be writing code and have someone else change it the next day and not talk to you at all (but its ok because they talked to Arch). Their biggest code base is their Shopping Site and it is a complete disaster. It is like no one thought at all about where to put code, who should maintain it and most code is placed where ever 'it just works'. When new projects are implemented usually little thought is put in place to design, but just what is quickest. The Architecture group mainly focuses on writing 'frameworks' that wrap just about every open source project they use (hibernate, jersey etc) in what I consider mostly fluff and unneeded abstractions of the true underlying framework. Overstock has created their own JSP like framework and their own dependency injection framework as well. They don't adhere to many basic pragmatic design choices (such as write once) maintaining many different internal libraries for model code that map the exact same behavior in a different library. Applications sometimes share the same table structure and communicate through database changes. They even have a reporting structure that tells the applications what to do through the database, there is no clear authority when it comes to data management. Communication between architecture and the teams varies quite a bit, depending on which person in Arch your working with (they don't communicate with each other either). Development teams are organized according to how the Business is organized, which on the surface works. But in reality leaves the development team vulnerable to the creativity of the senior management around the business entity. If you work for a Product Owner that lacks vision get ready for some uninteresting work (just do what X e-commerce site has already done), and potentially left for layoffs when push comes to shove. What the team works on is not collaborative at all. It is more like a hand me down of project work that is approved by senior management and left for the team to be excited about. When it fails that team is gone and the senior management chalks it up to a bad year. This recently happened when Overstock let go of 25% of it Developers and Testers, but not one senior management was affected even though it was widely known of some poor marketing decisions at the senior level brought about the bad year. And this was after they just hired quite a few individuals just 3 months previous! Overall I would avoid working for Overstock. Senior management doesn't allow for creativity on the team level. Domain ownership on a team level is almost nil. Company is headed for some rough times financially unless they start innovating!