Everyone in engineering is extremely sharp and capable. This is a great place to get some hands on web development experience on a large and complex site. You will be writing server-side code that must scale to handle millions of requests, not just CSS/javascript when I say web development. The engineering philosophy is to encourage all engineers to handle all layers in the stack so you will be writing CSS and javascript though, in addition to backend code. This cuts both ways. It's really interesting when you're starting out because you will learn a lot and feel a great sense of ownership over the entire project you're working on, but after a while you might decide there are parts of the stack that you'd prefer not to work on... My compensation was pretty good when I started and I got a nice merit raise after a year. Your engineering co-workers will be fun to work with and more than willing to pull their weight. I didn't encounter any dead weight while I was working there. The hiring process seems to do a good job filtering out under-qualified and under-performing candidates.

Cons

The interviewing process is very heavy on algorithms and data structures questions which might make you believe that those are the kind of problems you'll be encountering on a daily basis. This really isn't the case. Trip needs to hire really smart people because there is a very large, 10+ year old codebase and often times a project will require making changes/additions to parts of this complex web of interconnected classes. Basically, it helps to be a genius if you want to read the code and understand it. The interviewing process also serves as an excellent weeding out mechanism, but many of the recent grad hires don't really have any real coding experience so the maintainability of the code they write leaves something to be desired. The reality of working here as an engineer is that because they want you to work on the entire stack for every project, you will be writing a non-trivial amount of CSS and javascript. At first, if you're like me and really never did that kind of work before, you'll learn a lot, but after a while you might get tired of trying to a page element around the page and making the styles look correct in IE6. There are some projects that are heavier on this than others and your mileage may vary based on the group you're on. After a while if you realize there are parts of the stack you'd like to avoid, it becomes difficult to avoid them. Changing groups is something that is discussed as a viable option, but it's pretty difficult from what I saw. Your manager might try to take these preferences into account, but you will not be able to escape IE6 display bugs if you're in a group work on any user-facing code. If you're completely opposed to doing any client-side work don't work here, or make sure you're being hired into a group that never does live site work. The management hierarchy is flat (but growing taller), which means that your chances for advancement aren't super-promising. You can see some people being groomed, shaking the right hands and playing the politics correctly to be promoted into the lower management layer. I wasn't striving to be a middle-manager in a 100+ person engineering dept. and if you want to stay on the coding side of the fence there aren't really many places to go. They hire startup-minded people so churn is inevitable. If you're smart (and you are if you get hired here), you'll probably be intellectually challenged for a year or two, learn a lot, and write code that millions of people will use daily, but after that you will probably get bored and want to move on. The nature of the skills they help you develop makes you well-suited to work at a startup because you've worked on all parts of the web development stack and you're now familiar with lots of the non-engineering aspects of creating and maintaining a profitable web site.