It's been a year since I joined Arista and wrote my initial (5-star) review.
Since then, I still think there is a lot positive about Arista.
The people make the place. Purely technical interviews mean you are working with a diverse cross-section of people who understand their work.
I have interesting conversations every day.
Hands-off management leaves you to do the right thing. Quality beats quantity.
This also feeds the helpful culture in the teams here; people are not competing with each other.
I can't comment on the average compensation package, as there is no visibility into how these are calculated. When asked, senior management mumbles something about "magic calculations" that they are unwilling to explain, so I presume they just roll a dice.
Performance reviews are based on peer feedback (which I thoroughly agree with), but the results are not disclosed. It's impossible to measure your own performance against those you work with.
The toolchain relies on a proprietary programming language, which is largely undocumented. In some teams, this language will provide the base structure for all your code. The lack of documentation and the proliferation of poor implementations elsewhere in the codebase make it very frustrating to work out sensible design patterns.
Despite presentations by senior Arista engineers, testing is not very well implemented here. "Unit tests" typically test huge objects. Since the proprietary language they are written in does not allow mocking and makes it very complicated to test individual class methods, a single failing "unit test" could be caused by any one of hundreds of methods or thousands of lines of code.
Tests are also full of random numbers, so if a particular test fails, just keep re-trying it until it passes.
Recruiting works well. The teams and the people they are made of are excellent. Keep doing that.
If you want employees to trust the performance review cycle, trust people with the actual data from the peer review process. We are all adults. Please treat us as such.
Provide visibility into remuneration. You don't need to disclose actual $numbers to let people know what they need to do to get to the next bracket and who's performance level they need to emulate.
I sent my resume directly to a recruiter. The same day, he reached out to me. He then sent me a challenge. After submitting the challenge, an appointment for an onsite technical interview was made.
There were three rounds of interviews. Questions were based on coding, understanding/debugging code, OS, networks, and system design. * Coding round * Code, OS-based questions, and output of C programs * Networking, OS, system design, and code
Applied online, then had to complete an online coding question on HackerRank, followed by a Skype interview. I was given a 3D linked list and asked to flatten it into a 2D linked list.
I sent my resume directly to a recruiter. The same day, he reached out to me. He then sent me a challenge. After submitting the challenge, an appointment for an onsite technical interview was made.
There were three rounds of interviews. Questions were based on coding, understanding/debugging code, OS, networks, and system design. * Coding round * Code, OS-based questions, and output of C programs * Networking, OS, system design, and code
Applied online, then had to complete an online coding question on HackerRank, followed by a Skype interview. I was given a 3D linked list and asked to flatten it into a 2D linked list.