Avi Zurel, Senior Engineer @ Trip.com on why AWS makes business sense, microservers, redis, and more




Devibe Podcast show

Summary: Avi Zurel (Twitter - @kensodev | Github - @kensodev) is Senior Engineer at Trip.com based in Silicon Valley. Avi came to Silicon Valley two years ago with his family after working for four years remotely from Tel Aviv. He says he joined Trip.com because the technology was new and the product was exciting and his specialty is in scaling companies up. Trip.com invited him to come aboard. “Is the technology holding the product back or is the product holding itself back? The question you really need to ask is does it matter” - Avi Zurel Coding since age 14, before joining Gogobot, Avi ran a consultancy on his own in Israel. A family man, he and his wife have three children, 6, 4, and 1. He works part time in the office and part time from home in order to be with them more. He is also a competitive cyclist, enjoying weekend races in the Bay Area. When asked about challenges he faced as an engineer, Avi talked of infrastructure, code deployment, and intrapersonal skills. He easily owned up to his failures, most of which centered on people skills. His mantra for combating the pressure and stress to perform in coding and engineering is to ask “Does it matter?”. It all comes back to that for Avi, separating what matters from what doesn’t, what affects the bottom line and the customer or client and choosing your battles. This transfers to his personal life with family as well. When working from home, one of his key weapons against distractions is a command line called “GET SHIT DONE” that disables distracting websites and keeps him focused. We cover many technical topics including: Why he moved from Tel Aviv Israel to Silicon Valley 0:48 Motivation to join Trip.com and the how getting trusted travel reviews were so hard 3:00 Fires and “melting servers” 4:00 First experience coding with HTML 6:00 Why Trip.com chose to work on Amazon Web Services (AWS) from day one 8:00 Managing the challenge between serving “producing” users and “consuming” users at scale 10:30 Deploying edge servers to meet global demand 12:00 Cache deployment via memcached over dedicated servers and membase 13:00 Making the decision to use Amazon Web Service Elasticache 13:15 How to deploy code without affecting the end user experience 15:00 Handling Techcrunch traffic without affecting the user experience 15:10 How to scale up without making the database a bottleneck 15:30 Changing the database architecture Negotiating with other stakeholders to halt new feature development to stabilize code 19:30 Finding out what matters vs just being a hard person to work with 23:30 Career advice on code reviews between engineers and managers 25:00 Learning from failure: engineering as a consultant vs employee 26:00 Learning from failure: direction communication as an Israeli vs conventional communication in the Valley 27:00 How to improve communication skills as an engineer both online and off 29:00 How to motivate people to get things done without being too aggressive 30:00 When launching features that are not 100% perfect makes sense for learning 31:00 Enforcing zero compromises on code if it would have any negative effect on revenue or partner value Bringing the team together to learn from mistakes, open a discussion, and to learn how to ensure that it won’t happen again 35:00 If you point a finger at someone, three fingers are pointing back at you” 37:00 How to manage a TB MongoDB cluster. 38:00 When failure means that mobile battery dies and you’re abroad 38:00 When managing a black ops dev project makes sense 47:00 How Trip.com uses 250 AWS lambda functions in production 52:00 Why using AWS products makes more sense 58:00 Need to see 50%+ in cost savings in order to even consider another cloud 1:01 Opens source tools to check out, including riak and javascript based tools 1:03 1:05