Software Engineer • Current Employee
Pros: The broad context here is I'm extremely happy with my job at Two Sigma. I've been here for 1.5 years, and in that time, I've learned and grown more than I would have thought possible.
* Almost everyone I've worked with in my corner of the Engineering world has been very kind, creative, and incredibly driven.
* Since team size is small relative to the number of products, impact-per-person can be extremely significant. It's possible to be a star, even as a new employee.
* Compensation is head-and-shoulders above similarly tenured roles in the rest of the industry.
* Casual, geeky, tech-focused culture relative to other firms in this sector.
* In-office extra-curriculars (giving talks, attending internal classes, organizing volunteering events) are readily available and encouraged by management.
* A strong lean towards the DIY in engineering projects means you'll probably learn a lot about parts of the software development process you might not elsewhere.
* A gold star on your resume. TS is a heavy hitter as far as perceived engineering clout.
Cons: On the flip side, growth can sometimes be painful.
* It somehow always seems like there's 20% more work to do than the amount of time there is to do it. Small teams with out-sized responsibilities, in combination with the type of passionate/ambitious personality that TS seems to attract, can produce an environment of intense self-imposed stress.
* That same strong DIY lean means a lot of projects get built from 0 to 1 by one or two people, and fail to make the leap from 1 to 2, as it's realized they're a lot more difficult to make stable and production-ready than it was to produce an MVP.
* As an adolescent company, TS is beginning to hit some phase changes, with things like maintenance of aging software, management of organizational structure, and knowledge sharing.
* Less hierarchical than many companies in its sector, but you can still feel like you're at the whims of a teetering stack of managerial decisions at times. It's often hard for bad news to propagate up the stack since people will soften what they say to higher-ups. This can lead to directional decisions being made without knowledge of the situation on the ground.
* Front-end development is largely unsupported by the build/test infrastructure and varies wildly from team to team, as each one learns separately to deal with the quirks.