Cisco & Amazon — How different are they for an SDE
I explained in my previous post how Amazon is a unique place to work, particularly for an engineer. Before I joined Amazon, I worked for Cisco on the iconic WebEx project for over a year. Cisco had been an Amazing place to work, yet it is very different to Amazon. In this article, I try to explain how similar or different Amazon and Cisco are in various factors of work.
Work atmosphere
Both Amazon and Cisco believe strongly in sense of ownership. At least that is what I observed having worked at both the companies for over a year each. While owning a piece of work and going beyond the call-of-duty is well rewarded in Cisco, it is implicitly expected and strongly demanded in Amazon. However for someone who is motivated and takes ownership in improving the scope of work — immediate and beyond — both companies offer extraordinary career growth.
At Cisco, I experienced a very relaxed and innovation-friendly work culture, or it was so at least in my project. The management focused a lot to prevent employee burnout and promoted a very healthy work-life balance. In my project involving around 30–50 people, only 3–5 were based in India at any given point in time, rest all were based in the US. Still all the meetings were in India friendly time and in rare cases where it extended beyond late evening, we were encouraged to drop off as per our convenience. There were surplus leaves available, and in addition, “day-for-me”s were declared several times ( I do not recall the count exactly, may be 5–6 times) over the one year I worked at Cisco. These are days which Cisco declares as a holidays across the world so that employees can take care of themselves. Whenever we had tight deliveries, our manager suggested taking a break or take things slow for a day or two. In addition, within the one year that I worked at Cisco, I already received 3 performance awards with monetary value for innovation and quality delivery. Such gestures do boost the morale a lot and keep employees motivated.
Amazon has a negative reputation for eating into the work-life balance. I suspect that opinion might be much influenced by the “on-call system” as I explained in the previous article. In my tenure yet, I never experienced an unmanageable work pressure, but the environment is surely fast-paced. So much has happened in the last one year that I feel that I have been working with Amazon for a very long time. When I joined Cisco, I got over a month’s time to ramp up on the project, whereas I was fully onboard at Amazon by the end of my first week. While good performance is appreciated and publicised through accolades at Amazon, there are not many “monetary awards”. That said, Amazon also is very inclusive and accommodative with regards to time management and encourages people to manage work as per their best convenience. I could effectively manage my work while still being the primary care-giver for my 2 year old daughter.
Development practices
When it comes to the software development process, I found Cisco and Amazon entirely different. At Cisco, software developers do just the development, everything else is taken care of. For example, when a team wants to build a new service, a bootstrap project including all configurations and design patterns is created and provided by the platform team. Almost all dependencies are abstracted into WebEx libraries and common things like authentication, authorisation and logging are controlled through custom annotations (for a Java Spring based project). So when the Log4J vulnerability wave hit, the mitigation was just smooth in our project. While this does help maintain the project better, it blinds the developers from a lot of implementation details which makes learning a lot difficult.
None of the developers or managers from the development have access to the database, not even in the development or integration stages- those are completely managed by a dedicated expert DB team. In fact, whenever the development team faces any doubts with respect to optimum design the expert team would be consulted. All DB schema and data changes are controlled through Liquibase scripts that are part of the code. In short, all associated functions in the development process are implicitly taken care of. Promotions from one stage to another is strictly controlled through a set of automated tests and validations. The only manual intervention required is the peer code review for merging any changes to the mainline. Another thing worth mentioning is the standardisation of development patterns. For example, using a POST API where a GET method is ideal is considered a sin across the org.
In contrast at Amazon, the development environment is a controlled chaos. Development teams can decide every detail about a project and are in charge of almost all related functions including infrastructure. This includes configuring hosts, setting up pipelines, promotion (or approvals) to production, administering the databases etc. In most cases, the development team has access to all resources concerning the owning services. Amazon takes privacy very seriously, so it is made sure that the data does not point to a particular customer or user. But otherwise the development team has dangerous levels of access to the data and infrastructure. But it doesn’t stop there, SDEs are often encouraged to drive projects end-to-end including laying down strategic vision. At Amazon, most decisions are often pushed to the lowest level possible, which means the engineers are encouraged to take quick (but mostly right) decisions a lot. To ease this decision making, Amazon has a mechanism that differentiates decisions into one-way doors (that requires careful decision making) and two-way doors (where decisions can be made quickly and later corrected if required).
Tools and equipments
Both Amazon and Cisco offers best-in-class facilities. For software development, the best available MacBook Pro is provided as the standard. All common software development tools offered are industry-leading tools and any additional tools are provided on request. One thing I liked about Cisco was that almost all software tools and technologies they use are industry-standard ones. For example, GitHub enterprise is the version control system, JIRA for issue management, PagerDuty for critical support etc. This provides a lot of exposure for the engineers into the best practices across the software industry.
At Amazon, the tools and systems are mostly internal. So there is a huge learning curve when getting onboard and these learnings are useless outside. Although Amazon is generally very conservative in spending owing to its principle of Frugality, it is very liberal with respect to IT equipments. Amazon has IT vending machines installed in its campuses from where employees can take out required IT hardware like mice, keyboards, chargers, headsets etc. Also depending on the job level of the employee multiple monitors are offered at desk and accessories like hubs and extensions are provided on request. I never got to visit a Cisco office physically, so my information about Cisco in this regard is limited. Cisco does have an online portal from where employees can order expensive IT hardware with the manager’s approval.
Compensation and benefits
Amazon and Cisco are both leading job providers in the Indian tech sector. Amazon being a tier-1 company obviously offers way more in actual compensation. Cisco also offers decent remuneration and much more that most service-based companies. Even other statutory benefits like insurance are comparable at both the firms.
Cisco often rewards good performance through awards and those usually carry a significant monetary value. Employees can be nominated for these awards by manager or peers (with manager approval). Cisco (at least WebEx) also provides a lot of goodies every quarter and these are usually of good quality and generally useful. I still use a lot of such items I got while I worked for Cisco. Cisco also offer discounts for some of their products and services, but I could not leverage those in any meaningful way. Another benefit worth mentioning is that Cisco also offers access to several online learning platforms which is surprisingly not available with Amazon.
Amazon does not provide any variable monetary benefits such as bonuses or monetary awards, outside the fixed compensation. Also when it comes to other perquisites, Amazon rarely provides any goodies other than the joining kit. Amazon does not offer any incentives or discounts for the employees on its products and services and there is no external learning platforms that are freely accessible that I am aware of.
Conclusion
Amazon and Cisco are both amazing places to work. Cisco has already secured the title as the best place to work in India multiple times and Amazon is considered the world’s most desirable brand to work for. Personally I like the way Cisco keeps the development process streamlined and the vibrant culture it promotes. I would happily return to Cisco if I ever think of changing my job. Amazon provides infinite opportunities for those willing to go an extra mile and such efforts are well appreciated and rewarded. Both the companies instill unique perspectives and skills in their employees who takes it with them wherever they go. If you ever get a chance to work for either Cisco or Amazon, I would strongly recommend pursuing it, for that I am sure it would be a life-changing experience.