The perks are great. There is a really good benefits package (medical/dental/etc.), and then a ton of stuff to keep employees happy at the main Newton campus:
The list goes on.
Pretty much everyone I worked with was very bright. The bar to get in is set pretty high, and there is an informal 'no a**holes policy' that is fairly effective (though opinions on this may vary based on your own definition).
Their development methodology is better than a lot of larger engineering groups. The company motto 'Speed Wins' continues to be applied to a development group that has grown by a ridiculous amount for the past few years (also a con, see below), and fortunately things are still moving quickly.
Work/life balance is good. There are rarely any (as in, I never personally experienced any) crunch-time periods on projects.
The CEO knows what he's doing and is leading the company in a good direction.
If you're a Java developer and enjoy writing code like it's 1997, by all means join the development team!
The codebase is a mess. It has grown organically over the last decade or so and is unwieldy and not well architected, therefore harder to understand and maintain.
The coverage of the testing frameworks that are in place is nowhere near where it should be, and so very little refactoring happens to improve the situation.
Traditional singletons are everywhere. There are methods that are thousands of lines long. It's a jungle.
To some extent, there is a "not-invented-here" mindset; bringing in 3rd party code isn't encouraged and must be approved by management.
People who are hired are smart and expected to write code that works, but they don't necessarily know how to write clean code that is maintainable, and management doesn't put much value on that either.
As mentioned in the 'pros' section, development is still approached like the company is a five-person startup. This works to varying degrees with a team 20x that size.
There's no real methodology backing it (Scrum, XP, Lean, etc.). This contributes to the existing mess of code.
The bar for entry into the company is set pretty high; the interview process is pretty tough, and candidates are expected to have a very strong CS background.
During interviews, the company is presented as a really interesting place to work with a lot of tough software challenges around scalability. This gets a lot of people excited, but the reality is much less dramatic.
It seems that a lot of really bright people come through the door only to end up with pretty menial work, often maintaining a mess of code that was written up in a hurry by someone else.
Engineering leadership should be providing guidance on implementation, not making decisions for the people actually doing the work. The code review process is overly restrictive and focuses too much on code conventions instead of more important issues like testability and code structure.
Start lowering the bar for some engineering positions. People don't need to know how to most efficiently implement binary search tree operations or big-O complexity for sorting algorithms to just maintain code and tweak HTML. You hire a lot of bright people with high expectations for what they'll get to work on, and often disappoint them.
A technical recruiter found my resume on my website, contacted me, and set up a phone screen. The phone screen lasted one hour and consisted of three algorithm questions, with difficulty levels gradually increasing. Then I did two on-site interview
My interview experience with TripAdvisor was, hands down, the worst I have ever had. I've spoken with others who have interviewed with them, and while my experience may have been an anomaly, it was very negative for me. I spoke with four different
The interview process lasted 6 hours and included a free lunch. It involved one-on-one meetings with 5 different engineers. Each engineer reviewed work experience and presented arbitrary puzzles. These puzzles had to be solved and at least partially
A technical recruiter found my resume on my website, contacted me, and set up a phone screen. The phone screen lasted one hour and consisted of three algorithm questions, with difficulty levels gradually increasing. Then I did two on-site interview
My interview experience with TripAdvisor was, hands down, the worst I have ever had. I've spoken with others who have interviewed with them, and while my experience may have been an anomaly, it was very negative for me. I spoke with four different
The interview process lasted 6 hours and included a free lunch. It involved one-on-one meetings with 5 different engineers. Each engineer reviewed work experience and presented arbitrary puzzles. These puzzles had to be solved and at least partially