Firm level:
Top benefits, good pay. The company takes care of its employees. Good health insurance plan that covers the whole family without a penny from you. On-site doctor, large pantry, free snacks/breakfast.
The most missed is the corporate event, which includes a summer picnic and Big Apple circuits. (My kid is already complaining that we cannot go there due to the fact I left the job.)
R&D level:
Smart coworkers. Two 27-inch monitors (this is important). Some of the infrastructure team's work is highly respected and appreciated. Engineers are allowed (or somewhat encouraged) to move internally to build a career. (Comparing before and after this policy, I felt managers were less likely to mistreat their reports.)
Firm level: Terrible "stupid" hiring policy (this is not confidential anymore, search on Quora): the HR will throw out the resume without looking if the candidate was a former Bloomberg employee, or even worse, that this person had declined an offer from Bloomberg before. (How are you going to compete in such a competitive market for tech talent?)
Performance review is stack ranking based, and the managers have the full say. As a result, employees are discouraged to share knowledge, but fight politics internally to be close to the managers. Individual contributors are less likely to disagree with the managers'/TLs' ideas. Wrong people get promoted/demoted time to time, not because of performance, but as a result of political matters.
R&D level: Poor software practice in R&D, where there is almost non-existence of automated software testing (not even at the unit-test level). The company encourages employees to be innovative firm-wide; however, in practice, engineers are discouraged (indirectly) to innovate due to fear of breaking things. I personally knew at least two engineers who were fired due to the production bugs they created. From my knowledge, the most senior managers in R&D are technical with some good visions. However, many of the mid- and mid-senior level managers are not technical at all. These people are usually the decision-makers, and I saw many missteps in the decision-making process during my five years there.
Lack of developer productivity tools. Most engineers are still on Vim/Emacs, and at the time I left, there was not a fully integrated SDK available. Eclipse is used, as only an editor.
Firm level: Throw out the stupid rehiring policy. (I'm never intended to come back, but this policy is truly laughable.) Bring more transparency in the performance reviewing process.
R&D level: Introduce a firm-wide software practice (naming conventions, unit tests, check out "The Joel Test"). Invest more (way more) in developer productivity tools.
I was given two LeetCode problems of medium difficulty. I was able to solve the first, and while in the process of solving the second, I was interrupted by the interviewer. He pushed on his solution, questioning if I was taking too long. In the midst
Email exchange to schedule a telephonic round. I needed a laptop to code in HackerRank. There was a guy called Alex, who worked in the MARS team. He explained to me that it was not a quant or maths-related role.
HackerRank + Phone Interview I had a HackerRank code pair which was shared with the interviewer. The interview was quite interactive and friendly.
I was given two LeetCode problems of medium difficulty. I was able to solve the first, and while in the process of solving the second, I was interrupted by the interviewer. He pushed on his solution, questioning if I was taking too long. In the midst
Email exchange to schedule a telephonic round. I needed a laptop to code in HackerRank. There was a guy called Alex, who worked in the MARS team. He explained to me that it was not a quant or maths-related role.
HackerRank + Phone Interview I had a HackerRank code pair which was shared with the interviewer. The interview was quite interactive and friendly.