Arbaz Nadeem

Author
Arbaz Nadeem

Blogs
Arbaz is a former product marketer with a love for growth loops and developer communities. Now, they decode hiring challenges with the same curiosity they brought to GTM plans.
author’s Articles

Insights & Stories by Arbaz Nadeem

Arbaz Nadeem's content is built for talent leaders who want results—fast. Actionable, relevant, and packed with real-world learnings from the frontlines of growth.
Clear all
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Filter
Filter

The Unvarnished Truth of being a Woman in Tech

In our fifth episode of Breaking404, we caught up with Monica Bajaj, Senior Director of Engineering, Workday to hear out the different biases that exist in tech roles across organizations and how difficult it can get for a woman to reach a senior position, especially in tech. We also talked about the best recruiting practices that Engineering Leaders should follow in order to hire the best tech talent without any biases.

Subscribe:Spotify|iTunes|Stitcher|SoundCloud|TuneIn

Arbaz: Hello everyone and welcome to the 5th episode of Breaking 404 by HackerEarth, a podcast for all engineering enthusiasts, professionals, and leaders to learn from top influencers in the engineering and technology industry. This is your host Arbaz and today I have with me Monica Bajaj, the Senior Director of Engineering at Workday, an American on‑demand financial management and human capital management software vendor. She is also a Board Member of Women in Localization, a leading professional organization with a mission to create a strong place for women to develop their careers in localization and provide mentorship. Welcome, Monica! We are delighted to have you as a guest for our podcast. For our audience to know you better, let’s start off with a quick introduction about yourself and how your professional journey has been?

Monica: Definitely. I am originally from India from a city called Indore (central part of India). I did my high school and under-graduation from Indore. I came to the US almost 20 years back for work and settled here. My professional journey has been very interesting. Right after my undergrad in CS, I started my career as an Assistant professor teaching Computer science Teaching has always been close to my heart since it creates a platform of learning without any expectations. Later I did my Masters in CS at IIT Mumbai which was indeed a turning point in my career. I decided to join the tech industry in India, joined Wipro, and came to the US on an assignment. I was one of the early on developers at WellsFargo when they were going through the transformation of being an Online banking application. I started my career as a full stack developer and stayed as a developer for almost 10 plus years. In 2005 I got an opportunity at a Startup to transition my career into management. I had no idea about people management but decided to take this challenge. As I embarked on this new challenge, I realized that people management and building teams are something that I truly enjoy. I never looked back. I have been fortunate that as I moved from one industry to another, I was able to develop my engineering management experiences and align with the business needs. I have had great opportunities working for startups, mid-size, and giant tech companies such as Cisco, NetApp, Perforce, Ultimate software mostly in the enterprise space. I recently joined Workday as a Senior Director of Engineering, building their Community Platform.

Arbaz: What was the first programming language you started to code in and was the code to print “Hello World”?

Monica: My first programming language was BASIC. I never had exposure to computers until I went to college and started my undergrad in CS. We worked on BBC Microcomputers saving our programs on Floppy disks. Resources were limited in India and yes it sounds pretty old but it definitely shows the journey of innovation that has happened in just last 20 years

Arbaz: While we were looking out for guests for this podcast, out of the more than 100 potential engineering leaders that we found, just 5-10% were females. Do you think that there still exists an inequality/bias in terms of gender especially in tech roles? Also, have you ever experienced this yourself and how difficult/challenging is it to reach a senior position for women in tech?

Monica: Definitely Gender bias in the tech industry is very prevalent. If we just look at the tech industry in the mid-1980s, 37% of CS majors were women. You would think that things must have gotten better as we advanced in this century. In fact,it has dipped to 18%. Today women make up only 20% of engineering graduates. Only 26% of computing jobs are held by women and have been steadily declining. The turnover rate is more than twice as high for women than it is for men in the tech industry 41% vs 17%. 56% of women are leaving their employers mid-career ( 22% get self-employed, 20% leave the workforce, and 10% work with some startups). Only 5% of leadership positions in the tech sector are held by women; they make up only 9% of partners at the top 100 venture capital firms. On top of this, if you are a woman of color, the challenges get even harder when it comes to growth negotiations. These challenges increase as you embark into key Senior leadership roles: Principal Engineers, Architect, Directors, and Senior Directors, VPs, and above. Yes, I have personally experienced this in my career a few times. Once I was being told by my senior leader that Indian women are not meant for leadership due to cultural bias. It was heartbreaking and at the same time, it made me very angry. I did not hold back and did state that things have changed so much. This did cost me my job and I was asked to move to another group. Another story I have is where I had to deal with Cultural Bias and lack of understanding of being a mom. I was being told by my boss,” why do you need to drop kids to school and be late to work. I have pets and I leave them and they figure it out. “ I was shocked. Rather than going to HR, I resigned and moved on since I knew no action would be taken. Sometimes such experiences can lead to folks leaving industry/companies. There is a bias and women many times downplay their technical credentials. On the other hand, men do the reverse. Studies have proven that when it comes to applying for a job men apply when they meet 60% of the qualifications and women continue to have second thought even when they are meeting 100% of the qualifications.

Arbaz: These are really motivational stories and shocking at the same time. It’s really great to hear how you fought all of them. These numbers are really horrifying numbers. We often discuss how women empowerment has been a movement off late. Just a follow-up to that, have you seen any particular changes that companies are taking to bring these differences down?

Arbaz: You’ve worked with top companies including Cisco, NetApp, Perforce, Ultimate Software and now you are with Workday. What is the biggest technical or product challenge you have experienced? How did you overcome it?

Monica: The biggest technical challenge any organization faces today is bringing in Digital transformation. Digital transformation is imperative for all businesses and lets us not delude ourselves that the tech industry does not need it., It applies from the small to medium to enterprise and definition changes similar to the definition of the following Agile development process. Digital transformation is hard but if you have the right strategy and clear vision it can do miracles. The key focus has to be Customer experience, Operational Agility, Culture and Leadership, Workforce Enablement, and Digital Technology Integration. As an engineering leader, I had an opportunity to be a part of this journey in my recent role. One of the goals while building a product was to move from an application-centric view to a services-based view. While building this new product on a Microservices based architecture, it was also important to convert a monolith module to a microservice and integrate with other Microservices in the new architecture. It has a significant benefit because the services are autonomous, specialized, can be updated, deployed, and scaled to meet the demand for specific functions of an application. It definitely required organizational transformation around convincing, and prioritization clashes with other initiatives. On the technology and process side, we uncovered a few challenges around integration, deployment, and migration of these services to Kubernetes. Automation was a must requirement to go with. I had the state of art DevOps team who was an integral part of the development process right from the design phase. This really helped us in making sure that we have the strategy around deploying, monitoring, and alerting of these services.

In the current situation at Workday, I have an opportunity to stand a new platform for an existing product called Workday Community. Choices are Buy Vs Build, keeping an equal focus on the existing product and the future development, Defining the game changers and enriched user experience for our customers and most important keeping in mind the sentiments of the current team to come along in this journey of transformation.

Arbaz: Two things that we most often see engineering leaders focused on are: Technical Debt and High Quality of Code. Keeping this in mind, how do you maintain a balance of technical stability (minimize technical debt) while still delivering quality code at a high velocity?

Monica: As smart financial debt can help us reach our life goals faster, not all technical debt is bad. The key thing is managing it well while delivering at a high pace to meet the customer needs and balancing with emerging opportunities. There are three kinds of Tech debt:

Deliberate Tech debt ( where we incur tech debt to reduce time to market)

Accidental Tech debt: More of a design tech debt. It is important to thoroughly consider nuances around design else it can lead to rework. Refactoring of the system can help

Bit rot: This is where the functionality just ages over years due to incremental changes, workarounds. Most of the organizations face this kind of tech debt.

In my mind, the evaluation of tech debt and its consequences is more of an art than a science.

In order to maintain the overall stability, I make sure that I address 20% of my stories focused on Tech debt in every sprint planning. This again entails negotiations, prioritization against new feature development. If we start seeing that the team is losing velocity it is a good indicator that tech debt may exist. Test coverage, code smells, code coverage helps in uncovering the gaps around design, and functionality. Developer productivity is important to keep in mind which includes best engineering practices, managing tech debt well, creating reusable components, and building an architecture that allows for decoupling if needed.

Arbaz: That’s really a great approach. At the end of the day, it’s important to keep the balance correct. Just deviating a little bit from our technical talks and getting to know Monica, the person, a little more. What is your favorite leisure-time activity and how do you make sure that you keep that hobby in-tact and not let it die under your workload?

Monica: Gardening and Outdoor activity such as hiking and road trips. I believe that if you prioritize it and if it means something for you, it will happen irrespective of your workload. In fact more than a hobby, I continue to learn leadership lessons from my garden. Organizations are like gardens and they need a lot of love and care similar to growing plants in your garden.

Arbaz: Recruiting and engineering, while we are partners, we operate differently. How do you work together? How do you align recruiters and hiring managers to achieve the overall objective of hiring a talented developer? From your perspective when you’re on that table with your recruiter, are you seeing alignment, or are you seeing discordance and how are you handling that?

Monica: Hiring the right people should be the highest priority for any business. I have a great partnership with our recruiting teams. I strongly believe that the onus is on the hiring manager since he/she knows the best what they need from the candidate. In order to make sure that the recruiter has a good understanding of what to look for I work with our recruiting team to define the traits, technical skills, and the overall recruiting process.( Phone screen, technical challenge, panel interviews). It is very important that the messaging around the role, team and company culture is consistent during all the conversations that recruiter and the hiring manager have with the candidate.

Arbaz: There is a lot of debate on the coding interviews right now having algorithm problem-solving skills, and you don’t necessarily use data structures in your real-world coding. But companies globally do emphasize on having questions around Data structures and Algo in the assessment. Do you think it’s a good approach? How do you reconcile the two and do you think the problem-solving questions give you a good idea of their future performance?

Monica: I think Data structures and Algorithms are fundamentals or core plumbing. While interviewing, I want the candidate ( for a developer or QA role) to go through a problem and see if they can apply the core principles of software engineering such as algorithms, testing, debugging logging, scale, performance. As a hiring manager, I like to see how an individual is able to think out of the box and be creative. It also helps individuals agility around picking new technologies and come up with the best approach to solve the problem. In fact, the candidate should be able to speak to their resume, hence better storytelling. Having the candidate go through live examples in their resume speaks for collaboration, cultural fit, observance, team building.

Arbaz: What is the most challenging part of any technical assessment and interview? If there is anything that you would like to change in the assessment and interview process, what would it be?

Monica: The most challenging part of technical assessment is to ensure that the entire panel is of the same understanding around the expectations and level of any given role. As a hiring manager, it is our job to ensure that. In terms of bringing a change in this interview process: I am not a big fan of the process where rather than focusing on the job role and the candidate’s experience, the companies start asking these random questions such as “ How will you deploy software on Mars or how will you move Mount Fuji ?” Companies do not realize that the candidate is also interviewing them so it is fair game on both sides. You always want to hire smarter people than you so that you can bring in new talent and ideas rather than converting them or making them fit in your model of thinking. I consider this as “ hurting their creativity and hence diminishing the impact they can make if they get hired”. If you approach a candidate, you need to value and embrace their experience and see how it aligns to fit your business and organizational needs.

I want to bring in a diversity of thought and creativity. I do not want candidates to be pre-programmed to speak the buzzwords that the company is looking for or the structure that they publish.

Arbaz: It’s wonderful how you shed light on how important it is to foster learning and growth for talent and the candidate is also assessing the company. Now as the Senior Director of Engineering at Workday, do you still code, and if not do you sort of miss coding? We would love to know how the role changes because a lot of times developers have this thing of – Do I need to go in the path of a developer, a senior developer, a principal engineer instead of like a chief architect, or do you want to go down the developer, engineering manager, director, and CTO journey. And sometimes you can end up being a CTO or VP of engineering from multiple paths. So how did you choose to go which path you wanted to take?

Monica: No, I do not code and neither do I miss it. ( Most of the companies offer two tracks in any given role. If you love to be close to only technical aspects ( coding, architecture, design ) you can grow as an Individual contributor such as architect, principal engineer, and be on a technical track. However, if you are more inclined towards people management, mentor, and be able to invest in people, hire the best talent, you can be on the management track. Many of us get lost when we have to make a call at this turning point of being a manager and not doing hands-on every day. It is hard to let go of things that you are comfortable with. I was a developer by career for more than a decade and then I got my first break into management ( due to my dev and tech skills). Soon I realized that I enjoyed people management and never looked back. One important thing I would like to share is keeping a fine balance between being hands-on and being a manager. Managing an organization cannot be a part-time job. You can easily fall into the trap of being hands-on since you are comfortable with it. You may think that you are contributing but in fact, you might be hurting them by taking their space and creativity and also ignoring your first priority of investing in your people.

Arbaz: Which software framework/tool do you admire the most and consider as a gift from God?

Monica: IaaS: Infrastructure as a code. Modern Marvel of Cloud engineering where you don’t have to worry about maintaining the infrastructure, worry about the scale and other services such as monitoring, security, logging, disaster recovery, load balancing, backup, etc. It allows a greater level of automation and orchestration also speeds up the overall delivery process.

Arbaz: Considering the current scenario around the COVID-19 outbreak where companies have asked their employees to work remotely, what do you think is the biggest problem/challenge with managing remote engineering teams? What do you think is the best way to keep a team of engineers motivated?

Monica: With COVID, the boundary between homework and work from home has been blurred. The working hours have become much longer due to flexibility and hence the balance between family and work does get impacted. More importantly, since everyone is at home, it can get harder for folks to focus on their work more so if they have space limitations or little kids. Communication with the entire team has also become all virtual. I joined Workday 5 weeks back and I was virtually onboarded and now I am learning and building relationships with my team via a virtual platform. I agree that nothing beats in-person engagements. If you look at the pros, it has given an opportunity for people to save their commute from 2-3 hours everyday to none which is indeed priceless. For many people, it has improved the overall quality of life but given us a pace where we can stop, admire, and focus things around us. It has allowed people to rejuvenate themselves rather than chasing the rat race of life.

When it comes to your teams, stay in touch, be transparent, Value them, and continue to express gratitude.

Arbaz: If not engineering, what alternate profession would you have seen yourself excel in?

Monica: I would be a Master Gardener. My parents are avid gardeners so I would say that I inherited some of those traits from them. I love outdoors, I need quiet time where I can just sync in my Garden. I feel it is a way for me to communicate with Mother Nature. You are constantly growing and learning about these plants. I feel the same way in my career where I continue to learn and grow every day.

Arbaz: What would be your 1 tip for all Engineering Managers, VPs, and Directors for being the best at what they do?

Monica: Try to hire people who are not clones of yourself.

Arbaz: It was a pleasure having you today as part of this episode, I really appreciate you taking your time. It was informative and insightful, and I definitely enjoyed listening. I hope our listeners also have a great time listening to you. Thank you. So, this brings us to the end of today’s episode of Breaking 404. Stay tuned for more such awesome enlightening episodes. Don’t forget to subscribe to our channel ‘Breaking 404 by HackerEarth’ on Itunes, Spotify, Google Podcasts, SoundCloud and TuneIn. This is Arbaz, your host signing off until next time. Thank you so much, everyone!

About Monica Bajaj

Monica Bajaj is an engineering leader with a wide variety of experience around building high performing globally distributed Engineering teams aligning with product delivery and customer satisfaction. Her prime focus has always been around developer productivity and enriched experience for customers. Monica is currently Senior Director of Engineering at Workday where she is responsible to build a Community 2.0 platform along with other partner teams. Prior to Workday, she worked at various Tech giants such as Cisco, NetApp, and Ultimate Software. She also serves as a Board member at WomenInLocalization, a global organization focused on Women mentorship and localization activities. She is a featured mentor on Plato and Everwise mentorship platforms.

Monica holds a CS undergrad from Indore and grad from IIT Mumbai in India.

Finding outdoor activities keeps her refreshed. When she is not working, she is either gardening, hiking, or mentoring. She can be reached on:

Twitter: @mbajaj9

LinkedIn: https://www.linkedin.com/in/mobajaj/

Making the Internet faster at Netflix

In our fourth episode of Breaking404, we caught up with Sergey Fedorov, Director of Engineering, Netflix to understand how one of the world’s biggest and most famous Over-The-Top (OTT) media service provider, Netflix, handles its content delivery and network acceleration to provide uninterrupted services to its users globally.

Subscribe:Spotify|iTunes|Stitcher|SoundCloud|TuneIn

Sachin: Hello everyone and welcome to the 04th episode of Breaking 404, a podcast by HackerEarth for all engineering enthusiasts and professionals to learn from top influencers in the tech world. This is your host Sachin and today I have with me Sergey Fedorov, The Director of Engineering at Netflix. As you all know, Netflix is a media services provider and a production company that most of us have been binge-watching content on for while now. Welcome, Sergey! We’re delighted to have you as a guest on our podcast today.

Sergey: Thanks for having me, Sachin!

Sachin: So to begin with, can you tell the audience a little bit about yourself, a quick introduction about what’s been your professional journey over the years?

Sergey: Yeah, sure. So originally I’m from Russia, from the city of Nizhny Novgorod, which is more of a province town, not very well known. And that’s where I got my education. I went to college from a very good, but also not very well known university and that’s where I had my first dream team back in 2009 when I was in third grade in college. I teamed up with my friends and some super-smart folks to compete in a competition by Microsoft, which is a kind of student contest where you go and create software products. In that year we were supposed to solve one of the big United Nations problems and what we did, we were building a system to monitor and contain the spread of pandemic diseases. Hopefully, that sounds familiar, but it’s what it was in 2009. And as a result, we had unexpected and very exciting success. We happen to take second place in the worldwide competition in the final in Egypt. And that was really exciting to be near the top amongst the 300,000 competing students. And it was really the first pivotal point in my career which really opened the world to me because the internship at Intel quickly followed and it was kind of the R & D scoped, focused on computer graphics and distributed computing. And a year after I was lucky to be one of the few students from Europe to fly, to Redmond, to be a summer intern at Microsoft. It followed with a full-time offer to relocate to the US upon graduation from college in 2011. At Microsoft, I worked in the Bing team helping to scale and optimize the developer ecosystem, particularly the massive continuous deployment and build system for the Bing product that Microsoft. That was a really exciting journey, but the relatively short one, because quickly after an unexpected, the referral happened to me with an invitation to interview for the content delivery team at Netflix, that was just kind of getting started and to help them build the platform and to link and services for the content delivery infrastructure. And quite frankly, I don’t expect that I’ll make it, but I couldn’t pass the opportunity at least to interview. But somehow I made it, very early in my career. I was 23 years old with just a few years of practical experience and it was quite stressful to join the company. I was on an H1B visa. I lacked confidence. I lacked a lot of, kind of relevant to and can experience in that area. Yet I gave it a shot, and I joined a team of world-renowned experts in internet delivery. And, um, I stayed there ever since. I will say that that decision and that risk that I took was the second big milestone in my career. Because from there it allowed me to grow extremely quickly and it allowed me to be truly on the frontier of technology and shape my mindset working for one of the top kinds of leading companies in the Silicon Valley, I’ve been here for about eight years. I initialized, I stayed on the platform and tooling side. I built a monitoring system, a number of data analysis tools. The overall mission of the team is to build the content delivery infrastructure, to support the streaming for Netflix. And over time, we added some extra services on top of pure video delivery. And a few years ago, that’s the group that I joined still staying within the same org, working on some of their extra advanced CDN like functionality, specifically developing some of the ways to accelerate the network interactions between clients and the server, uh, helping to better balance the network traffic, the traffic between clients and the multiple regions in the cloud. And I also worked a little bit on the public-facing tool. So I built the speed task called fast.com, which is one of the most popular internet testing services today powered by open connect CDN. And as of today, I’m a hands-on engineering leader. I don’t really manage the team. Instead, I work extremely cross-functionally with partners and folks across the Netflix engineering group. And I help to kind of drive major engineering initiatives in areas related to client-server network interactions. And I have to improve and evolve different bits and pieces of Netflix infrastructure stack.

Sachin: Thanks so much for that and it’s an amazing journey. You know, it’s really inspiring to see. Um, would it be fair to say that, you know, you kind of didn’t, it’s been serendipitous for you in some sense, did you plan to be here in the US and you know, be working in an organization like this or it all just happened back when in school, when you decided to participate in the Imagine cup challenge?

Sergey: Well, I wouldn’t say that I didn’t want to do that, but I definitely didn’t expect to, and I definitely didn’t expect to be in a place where I am today. I would say that my whole career was a very unexpected sequence of very fortunate events. I guess, in any case, I was sort of seeking those opportunities and I was not afraid to take a risk and jump on them.

Sachin: Yeah, that’s super inspiring for our audience and, like you correctly said, you got to seek those opportunities, and of course you need a little bit of luck, but if you’re willing to take those risks, doors do open. So, definitely very inspiring. Uh, so a fun question for you. What was the first programming language you, you ever recorded in and you still use that?

Sergey: Yeah, that’s a really interesting question. Um, the first language that I used was Pascal. And, uh, it was when I was 14 years old. So I started my journey with computers relatively late. And so it was kind of in the high school at this point. And the first lines of code that I wrote were actually on paper and I was attending The Sunday boot camp, led by one of the tutors who was preparing some of the folks to compete with ACM style competitions, where you compete on different algorithmic challenges. And he did it for free just for folks to come in. And someone mentioned that to me. I was like, Ooh, that’s interesting. Let me see what it’s about. And for the first few months, I was just doing things like discussing different bits and pieces about programming and all I had was a paper to write different things on. Later on, I of course had a computer and the first few years of Pascal was the primary entry for me to programming. And it was primarily around CLI and some of the algorithmic challenges. It’s only a couple of years ago when I discovered the ID and the graphic interfaces, and it really opened the world of what they could do. Uh, so yeah for me the first programming language is Pascal. And no, I don’t use it, but still have very warm memories of that because I think it’s a really, really good language to start with.

Sachin: Writing your first piece of code on paper. That’s an amazing thing. The folks who are getting into computer science today, they get all these IDEs, autocomplete, you know, all the infrastructure right upfront. Uh, but I think there is some merit in doing things the hard way. It prepares you for challenges and that’s my personal opinion.

Sergey: Yeah, I definitely agree with that. I’m not sure whether the fact that they had to go through that is an advantage or disadvantage for me, because I really had to understand the very basics and fundamentals. And I was super lucky with a tutor for that. He really didn’t go to the advanced concepts until I really nailed down the fundamentals. And I think having to really painfully go through that, if you’re kind of using a pen and sheets of paper, I think it really forces you to really get it.

Sachin: Right. Makes sense. So Netflix is one of the companies that has been growing massively over the last few years and acquiring millions of users. What are some of those key design and architecture philosophies that engineers at Netflix follow to handle such a scale in terms of network acceleration, as well as content delivery?

Sergey: Yeah, that’s an excellent question. In my case, as I mentioned, I’ve been here for quite a while and I had a lot of fun and enjoyed watching Netflix grow and be part of the amazing engineering teams behind it. But quite frankly, it’s really hard for me to summarize the base concept like use cases, there are so many different aspects of Netflix engineering and challenges, and that there are so many different, amazing things that have happened. So I’ll probably focus a little bit more on some of the bits and pieces that I had on the opportunity to touch. And for me, the big part of the success of growth was actually a step above the pure engineering architecture. It’s firstly rooted in the engineering culture because the first Netflix employees are great people. But second and most importantly, it really enables them to do the best work and gives them a lot of opportunities and freedom to do so. And with that empowerment and freedom to implement the best and to do the best work, I think the engineers are truly opening themselves up for the best possible solutions that really advance the whole architecture and the whole kind of service domain. On the technical side, in my experience, what I think was fundamental to effectively scale infrastructure is the balance that we have had between innovation and risk. And in our case, many fundamental components of our engineering infrastructure are designed to be extremely resilient to different failures and to reduce the blast radius, to contain the scope of different issues and errors. With that’s really embedded like this thinking about errors, thinking about failures, it’s really embedded in the mindset and that leads some of the solutions and some of the implementations to be really robust and really resilient to some of the huge challenges and lots of unexpected demands. And in that aspect is that many systems I designed and thought of to scale 10 X from the current state. So that’s often when we think about the design, we don’t think about today. We think about the 10 X scalability challenge, and that includes both architecture discussions and some of the practical things like performing the skill exercises constantly and stress testing our system, both existing and proposed solutions and constantly making sure that things can scale. So in case, we have unexpected growth, we have confidence that we can manage it. And I think as a result of that, we are not only getting an architecture, that’s stable and scalable. But we also get an architecture that’s safe to innovate on, because we can do the changes with more confidence that we can roll back things. We have confidence in our testing and tooling and with that confidence, I think it’s much as much easier to apply and do your best.

Sachin: Interesting. So you spoke about designing for innovation as well as being resilient and then kind of designing for a 10X scale in the very beginning. So typically, and this is my experience and I may be wrong here, but when we were younger in our journey as a software engineer, right, we tend to get biased towards building out the solution very quickly and, do not have that discipline to kind of think about the long term scale and all of those challenges, because that is very deliberately put that in place. Right. So, so has there, like, how did your journey kind of evolve in that? Are there any tools, techniques that you use to kind of force yourself to come up with the right architecture? Could you talk a little bit about that?

Sergey: Well, so I think you were what you touched upon a really great point, but it’s, I would say it’s a slightly different dimension, a bit more of a trade-off between the pace of innovation and sort of the technical debt, the quality of code, so to speak. And I think this is an extremely broad topic, uh, with where I would say their answer would really depend on their application domain. For example, I would give you one answer if you were working on some medical or military services, versus some ways like a social network, consumer and product entertainment sort of services because the risk of failure and the mistake is completely different in that case. And I think another factor comes from the understanding of the problem. There is, I think, a big difference in designing the system for the problem that you understand really well, and you have a pretty good idea that it’s there to stay for quite a while versus more of an exploration where you’re not exactly sure whether this would work or not. You are still trying to kind of get a hand at it. And, uh, quite often you start with a second, with a latter option, and that’s what made you start to do. And I would say that in that case, uh, in my personal experience, I think it’s much more productive to focus on the piece of innovation. And, uh, maybe in some cases build some of the technical debts, maybe in some cases to compromise some of the aspects of the best practices but being able to get things out and get some kind of bits and pieces really quickly and learn from it. And since you are relatively lightweight, it’s much easier to pivot and change direction. At the same time, it doesn’t mean that we all have to be Cowboys and break things here and there. There is a balanced approach. You can still invest in the core principles and the core architecture that allows all those things innovations to happen safely. And I think at Netflix, that’s what really we excelled at. We have some of the core components, some of the core tools that are available for most of the engineers. That’s allowed to make things, uh, and innovate safely while not being overly burdened by some of the hard rules and, uh, some of the complicated principles and gain that experience. And I would say this is sort of a natural process. You have something that’s done relatively quickly. Then you were at this kind of crossroads. Whether now you know, this is a real thing and you’ll have to scale it. And then you would likely apply a different way of thinking or maybe it doesn’t work and well you save a bunch of work by not overcommitting to something really big before confirming that this is useful. And at this point when you were on the road to actually build it for the long term, it might be the proper solution to rebuild what you’ve designed in the past. And it might sound like you were wasting a lot of time. Like you’re doing the double effort. But the way I see it, there’s actually, you’ve saved a lot of time because you were able to relatively cheaply test a bunch of lightweight solutions. You got the confidence, what really works. And now you’re only investing a lot of resources on building the long term for the one thing, and essentially you’ve saved all the time by not doing that for all other ideas that you’ve had. Um, I have them all, it’s sort of a 20, 80 rule that takes 20% of the time to build a working prototype and it takes 80% of the time to productize that and make it resilient and scalable. Um, in many aspects of innovation, it makes sense to start with the 20 and only go for the 80% over time. Yeah, but as I mentioned, it doesn’t mean that everything has to be all or nothing. There are still major principles and it definitely makes sense, especially as you get larger to invest in the main building blocks to enable those things to happen safely. There are always some of the quantum principles that are cheaper and easier to follow in all scenarios. I think one of my favorite books that I was lucky to read early on is the Code Complete by Steve McConnell, which goes into the lots of fundamentals about just writing good and maintainable code, which in most cases doesn’t take more time to write. I just need to follow some relatively simple guidelines.

Sachin: Gotcha. That’s a very interesting perspective. If I were to summarize it, you were saying that, uh, architecture design is context-dependent. You got to know what the problem is and what you’re optimizing for. And sometimes you’ll go for something lightweight and then optimize it later on because the speed of innovation is also important, but there are always certain principles that one can use without really increasing the development time, certain strong arteries that can help in building robust code. So that’s, you know, definitely interesting. Uh, another fun question. Do you get time to watch any shows, movies on Netflix, and if so, which one’s your personal favorite?

Sergey: Yeah. Well, while often I don’t have a ton of time to watch I definitely love to have an opportunity to relax and enjoy a good show and Netflix is naturally my go-to place for doing that. And, I’m in a losing battle to keep up with all the great shows that I would like to watch. And, um, it’s quite hard for me to choose one favorite. So I think I’ll cheat and I’ll choose a few instead of just one. So I hope you’re fine with that. I think one thing is I’m a fan of sci-fi as a genre and I really enjoyed Altered Carbon, especially the first season. And over-time I’m also learning that I’m affectionately a fan of bigger shows that I have no idea about. And the one title that I really enjoyed was ‘The End of the F***in world’, which is a dark comedy-drama. It follows the adventures of two teenagers. It’s a really kind of unique piece of content and I truly enjoyed every episode of it. I’m really glad that as a company, we really invest in more and more international content, not just coming from the American or the British world. And the latest favorite for me was ‘The Unorthodox’, which is a German American show with most of the dialogues actually in Yiddish, which is a part of the Orthodox Jewish culture. I enjoyed both the personal story and I also learned a lot about it because I had no idea about this part of the cultural experience for some of the folks. I was both enjoying the ways, done the story behind it, and it had a huge educational component.

Sachin: Thanks for sharing that. So moving back to the technical discussion. So you worked at multiple organizations, you know, Intel, Microsoft, while having the bulk of your time you have spent at Netflix. If you were to look back and think about one or two major technical challenges that you faced and is there something that you would like to talk about and more so along the line of how did you overcome it?

Sergey: Sure. So I think I’ll probably choose one of my favorites. And I think that’s the biggest challenge that I can recall probably by far. And that was my first major project when I joined Netflix. So the task was to build the monitoring seal system for the new CDN infrastructure. And, that was really quick as the task quickly forwards after I joined the CDN group at Netflix. As I mentioned, I was relatively early in my career. I was relatively inexperienced. I know very little about this domain and there’s a huge infrastructure that’s about to like, is being built and we are migrating a lot of video traffic on it. And this is a huge amount of traffic. At that point, Netflix was about one-third of all downstream traffic in North America. So like a third of the internet is there. And here I am like a new employee, that’s not like, Hey, let’s go see some that will tell us how we do like that. We’ll monitor the main state of the system. Like you will, you’ll have to design the main metrics. And really design the system end-to-end on both the backend and the front end, that of UI. And in the true Netflix culture was given the full authority to make its own tactical decisions on product design and implementation. So it was just a full-on like, here’s the problem context, please go and figure it out and we are sure you’re, you’re going to agree. And The biggest challenge of all of that is that many aspects of the system were new and quite unique. And even the folks who were working on this history for a long time, they were quite upfront that we are learning as we go in many ways. So we cannot really give you the precise technical requirements, but we actually wanted to look at. And overall we wanted to keep the whole system and the approach to the monitoring as hands-off as possible, just to make sure that the system reflects some of the architectural components, which reflect some of those principles like a self-healing system that’s resilient to individual failures. So I had to fully understand the engineering solution. I had to model it and there, in terms of the services and the kind of data layer. I had to look at and partner really closely with the operations team to learn a lot about how the system performs, what metrics we should look at, what’s noisy, what’s not. And it’s been quite a ride but especially remembering that was an extremely fun challenge. And I think some of the things that were fun like: a) That I was very unexpected, given the huge responsibility on a pretty critical piece of Netflix infrastructure stack and I was given full control of what I’m using for that. And I could either choose something that I’m comfortable with or something that’s completely new to me. There were really fun interactions with various folks, even though some of my teammates were not necessarily experts in building cloud services or building UIs. There were many other folks at the company who were extremely open and helpful to get me up to speed. I think some of the things that have allowed me to where success is that system is still used today with lots of components still the same as they were built many years ago. I think I made the right decision to focus on very quick iteration. As a matter of fact, the first version of the system fully ready for production and actually used by the on-call by the operations team was done in about two months. And that with me learning how to deploy ADA services in the cloud. I chose Python as a framework, and I knew very little about it before I learned the new UI framework and kind of built the front end in the browser for it. But focusing on the initial core critical components and getting something working was a huge help because it allowed me to build a full feedback loop with the users and started to start learning about the system. And then that calibration of the stakeholders allowed it to iteratively evolve it over time. And even though I didn’t know a lot of different things early on, I was extremely flexible and adaptable. I think some of the key things that were critical for my success to get it done is my ability to wear my mistakes, to be very upfront about mistakes, and actively seek help. And I think that’s one thing that I often notice, different people are not doing for various reasons. They think that it’s not the key to make mistakes, or they are somewhat unskilled or unqualified if they ask for help. For me, it’s been always the opposite. No one, nobody knows everything. Nobody’s perfect. Everyone, everyone makes mistakes. And, uh, the sooner you realize it and the more upfront and open you are around those aspects. The better you’ll be able to find the ideal solution and the faster you’ll be able to learn over time.

Sachin: Right. So it would have been a lot of confidence for you back in that time. Like you said, you were early in your career and the organization just said, Hey, this is your project. You have complete authority to just go out and do. And when we know, we’re sure you do the right thing, it must have also given you a lot of confidence, right?

Sergey: Well, quite honestly, initially it didn’t. Initially, it freaked me out because I was especially after companies like Intel or Microsoft, where their approach is very different. And I only had a few years of experience and I was not a well-known expert. That was very unusual. It was very scary. I would say the confidence really came months later when I was starting to see that the key is something that’s been built, that’s been used, I’m getting good feedback. And people are thanking me for working on that. They are giving some constructive feedback. They make suggestions, and I’m becoming the person who actually knows how to do it. Then in some of the domains, I’m becoming the most knowledgeable person, which is natural when you’ve worked on that. I would say confidence really came at this point, which was many months after that I would say probably a year or so. Maybe even after that.

Sachin: Got it. That makes sense. So, moving on to the next question, do you believe engineers should be specialists or generalists and how does this really impact career growth in the mid to long term?

Sergey: Yeah, that’s a great question. And personally, I don’t think there is one right style. To me, it’s like comparing what is more important, front end or backend. I think any effective team requires both types of personalities. And for nearly any major project, you need to rely on those because if you think about it, if you have a team of only specialists, you’ll have really well done individual pieces of the system, but it will be really hard to connect them together. Similarly, if you only have generalists, you may have liked a lot of breaths, but it would be really hard to actually build truly innovative aspects of the products because that’s the point of focusing on the one area that you have to give a compromise and not know something else. I think ultimately for effective teams, you need both times and you really need to have effective and efficient communication between both groups of them. You need them to be able to work together as a very well-aligned team. Uh, so yeah, I think for me personally, like what type of engineer to be is more of a personal choice. And also in my experience, there have been many opportunities to change the preference. You don’t have to necessarily pick ones and stick to that. You can mix it as you can go into one area or another. In my case I’ve been a specialist at some point and actually in the early stages of my career, I was probably the most specialized. When I was at Intel, it was a heavily dedicated area focused on computer graphics. I was optimizing some of the retracing algorithms and methodologies, what specific types of the network of Intel hardware. So it was all of low-level C, assembly, and some of the specific Intel instructions for, to get the most out of it. At Microsoft, I worked on search and some of the developer experience, then I switched to network and networking. So it’s, it’s sort of a mix. So I think I was becoming more of a generalist over time. On the tactical stuff, but still, I’m specializing in which area on the larger area. But this is also a personal choice and the industry and the technology is moving so fast that even if you were the expert in one area, very specialized today, in fact, years, you might, if you’re not keeping up, you might be off-site or that area is not everything. And you don’t have to stay there. You may find the passion somewhere else and switch to it. Or you can always stay as a generalist and just explore and move alongside technology growth.

Sachin: Yeah. So if I, if I were to summarize that, uh, you’re saying teams eventually need both kinds of engineers, and it really boils down to a personal choice, whether you want to be a specialist or a generalist, but, you know, given the current pace at which like you said, technology is evolving, it’s really hard to just be narrow jacketed into one thing, you know, because things around you would just constantly change and then you’ll have to adapt to them.

Sergey: Well, I think it’s on the latter point, I would say, I would say really depends. There are some of the areas that remain relevant, uh, for quite a while, for example, talking about the networking area, we’re still using TCP and that’s the technology from the 1980s. And there is still a lot of really interesting research and developments going on. And if anything, in recent times, the pace of development has accelerated. And yet, someone who specialized in that in the nineties would be still very relevant today. So in some of the areas you can still, you can specialize and you’ll be growing your influence. You’re growing your impact over time, but there’s no guarantee and it’s really hard to predict those areas. So I think, well, if you’re really passionate about it, it makes sense to stay. But I would say you should always be ready to pivot go and dig into something else.

Sachin: That makes sense. So another fun question, which software framework or tool do you admire the most?

Sergey: I think my answer will be probably quite boring at that. I’m pragmatic, I don’t have a favorite intentionally. I tend to follow the principle that there is always the right tool for the job. And as that principal and trying to avoid any sort of absolute beliefs or absolute favorites. Having said that, uh, the very few frameworks that I personally like and they’ve helped me quite a bit. I like Python quite a bit for its simplicity, its flexibility. From personal experience, it’s one language I was able to deliver a fully usable work in projects that are being consistently used for several years after in just two weeks. And before those two weeks, I barely knew Python. So I think that shows the extreme power of the language, how easy it is to pick up and do something actually practically useful. Related to Python, I like pandas quite a bit, which is a statistical library with some of the ways to do time serious or data frame analysis. From the network world, I should mention Wireshark, which is a general tool and it’s fantastic and definitely go-to for me to understand all that happens on the network communications at an insane level of detail. In terms of overall impact, I should mention the Hive, which is a big data framework. While it’s becoming sort of obsolete technology right now replaced by Spark and all of the following innovations. I think it’s really created a revolution in many ways. In its own time, creating, making it possible to access enormous amounts of data, very easily using the very familiar SQL like language. And for me, I happen to use it around the time and it really had a massive impact on a number of insights into things I was able to do.

Sachin: Interesting. I agree with you on the Python bit. I myself learned Python very quickly and saw the power of the framework and the versatility in terms of the things that allow you to do, like there’s hardly any industry domain, where, where you can’t use Python to very quickly prototype. Right? So in that sense, it’s a very powerful and versatile framework. Thanks for that. Let’s move on to the next one. You know, given the current scenario around COVID-19 everybody working from home, what’s your take on remote engineering teams? Personally, what do you feel about remote work and you mentioned that your work involves a lot of cross-team collaboration? So how has that been impacted positively or negatively in recent months?

Sergey: Yeah, so I think for the first question for remote work in general, the group that I’m in the content delivery group at Netflix, we were remote from the ground up. So our teammates, they are all scattered around the globe all the way from Latin America, to the US, to Europe, to Asia and all the way to Australia. In terms of working remotely we’ve figured out the way to do it very efficiently, but what’s challenging is that now we are a hundred percent remote because what you’ve done in the past, like some of the folks that are in the office, like in Los Gatos in California, some of the folks that are working from home and we effectively collaborate with each other, but every quarter we will do what we call the group of sites where everyone would get together in the same place. We will have a number of meetings and discussions, both formal and informal, where you’ll be able to sort of put the actual person to their image that you see on the screen. And you’ll be able to really know those persons, those folks, your teammates outside of their direct work domain. In my experience, that’s hugely impactful in terms of affecting your future interactions and building a relationship and working together as efficiently as possible. And with today’s COVID-19 world, we are losing that. So we are 100% remote and even though it hasn’t been a hugely long period of time, based on some estimates, it might take a while for us to work the way. And, it’s a challenge not to have some of that context and to lose some of this nonverbal thesis of communication. To your question, it’s also much harder to build new relationships. I would say it’s still possible to sustain some of the relationships that you’ve built from the past based on previous work together, previous interactions. But when you have to meet a new partner or when there is a new person joining the team, it’s extremely hard to find the common commonalities or find the same language, when you only have a chance to interact via chat or VC. I would say we are definitely trying different things to fix that. We haven’t found the perfect solution. We hope to find it. I would say we also call that you won’t have to find it for the longterm. Hopefully, the COVID-19 situation will be addressed as quickly as possible. But yeah, that’s the very few things that I would say that’s becoming even more critical. First is extremely clear and efficient communication. It becomes paramount and the sharing of the context, and especially from the leadership side, it becomes extremely important to make sure that everyone is on the same page. And that you really need to double down on all of the context sharing in that sense. And, uh, in terms of the partners, I think it’s extremely important to make sure that folks feel safe when they work that way. Because as part of not having a chance to talk face to face, it’s a great environment too, uh, for some sort of or kind of fear and paranoia to build up. Um, it’s harder to make sure like how you’re doing, how things are going, especially when there’s lots of stress happening on the personal side as well and there is lots of research that shows that we are not productive when we are experiencing high levels of stress. And, uh, I would say that’s on the individual side. It’s really critical to make sure that both yourself and all the partners around you are feeling safe and in the right state of mind primarily. And then it comes down to where something that’s really difficult, which is building trust between each other to do the best work. Even in the case, when you are very far away from each other, you really need to make sure that once you share it’s all the context about the problems, about the solutions, about the ideas. You have the full trust in others to do the best work to address some of the things and help you with some of the things or ask you for help as well.

Sachin: Got it. That makes sense. I completely agree with you on the fact that. Having a shared conversation in person is definitely different from having it over video and the kind of relationships that get built subconsciously is very, very hard to replicate that on video and, and I’m with you that hopefully, we can safely return back to work at some point in time sooner, rather than later.

Sergey: In the meantime, but one sort of thing that we are doing is that we are making sure that we still communicate informally. One thing that we do as a team, we have three times a week, we have a virtual breakfast. If someone can’t make it that’s okay. But otherwise, folks just have an informal breakfast together. And we tried to talk about things unrelated to work, uh, just any subject, basically something that you would have as a conversation if you went for the team lunch outside.

Sachin: That’s interesting. And is that working out well, like, do you see people interacting and joining these discussions?

Sergey: In my opinion, yes. I think personally I feel much more connected after those things. When I have an opportunity to hear and see folks discussing aspects outside of the specific tactical work domain. I think it’s useful for others. It’s good for morality. And I’m seeing that many other teams experimenting with different ideas along the same lines.

Sachin: Nice. So, onto the next question, you know the tech interview process is talked about a lot. People have their different opinions. What’s your take on given the current norms around tech assessments and interviews? What do you think is unoptimized today or what in your opinion should be changed?

Sergey: Cool. Would you mind clarifying, are you asking specifically about the current, highly remote situation or interviewing in general?

Sachin: Tech interviewing in general, the process that, you know, that is there. I’m assuming Netflix, other than the cultural aspects, maybe from a talking perspective and your previous organizations have had similar methods or processes. So do you think there’s something that we could do better? Not in the context of COVID-19 per se, but in general.

Sergey: All right, got it. I think it’s generally, I think there are lots of challenges with a typical interview process. And if you think about it, the typical interview experience where we have someone coming in for 30-40 minutes, solving some of the specific problems on the whiteboard, or sometimes on the shared screen, it’s not exactly what we experience in the day to day life. Quite often the problems are not very well defined, but you very rarely have specific constraints on time to solve it. Most of the time or I hope almost all of the time, there is much less stress in the typical work environment and you’re relating the person to something that they might not have the subtle experience in the workplace. At Netflix, many teams do try different – different approaches. We don’t have a single right way that everyone has to follow. Depending on the team, depending on the application domain, often depending on the candidate, folks will try to adjust the interview process. In our case, what we have tried and what we genuinely try to do, we’re avoiding very typical whiteboard questions. We try to focus on some of the problems that are much closer to real life. We try to lean on some of the homework, take-home assessments if possible. If the candidate has time to perform that and a general, I think this gives a much better read of the candidate skills because they can take it in the environment that they’re used to. There is no stress. There is not someone looking over the shoulder. And you can assess a much broader range of skills, not just a specific, like, I know how to solve it the way I don’t know how to solve it, but how do you write code? How do you document that? How do you structure it? And in some cases like even how do you deploy it? And those operational aspects of coding is a big part of engineering life, which are extremely important to assess as well. And I would say generally it’s a huge benefit if a candidate has something to share in the open-source and the open environment. If they have a project that someone can just follow or can take a look at the code, I would say that’s one of the best assessments of the skills it has just working, that’s been used, and that has been produced. It still doesn’t cover all aspects of it. It’s really hard to assess the qualities like teamwork or some of the compatibilities with the teammates. Um, those areas tend to be quite freaky. Um, and honestly, I don’t think I have any ideal solutions for that other than to make sure that as many partners for the new hire as possible are actively participating in the interview process. They have the ability to chat a little bit more and get an idea of whether they can work with a specific person and achieve strategies to do that depending on the team size or particular situation.

Sachin: Got it. So if I were to summarize this, if the interviewing process can be as much as possible, close to the actual work that you’ll be doing, while eliminating or reducing the stress that one goes through in the interview process, that should bring out a more fair assessment of the candidate.

Sergey: I would say, yeah, at least that’s the general strategy that in my experience, in the interview processes, I tend to follow.

Sachin: Interesting. So, another fun question, if not engineering, what alternate profession you would have seen yourself excel in?

Sergey: I would say it really depends on the time when you would ask me. I happen to get excited very easily and my immediate passions change quite frequently. As of recently, I would say I could easily find myself having a microbrewery or running like a barbecue-style restaurant. So those are the two things that I found interesting and I’m doing quite consistently for the last few years. I homebrew in my garage. I also have a few kegs of homebrew on top. And I have three grills in my backyard and those things complement each other very nicely and they bring lots of joy to myself and my friends as well.

Sachin: That’s really nice to know that you have a home brewery and you said you’ve been doing it for two years now.

Sergey: Uh, well, I would say more about five years.

Sachin: That’s an interesting hobby. Uh, so, you know, with that we are almost towards the end of our podcast. The final question today: So if there was like one tip that you could give to your peers, people who are at a similar role and even to those people who want to step up and, you know, come to a role where you are today, what would that be?

Sergey: I think I would respond with sort of a catchy phrase from our Netflix culture deck. And I think that defines the leadership style that the company tends to follow and that I personally strive for, which is leading with context and not control. And what that means is that as a leader, learning to gather, summarize, and effectively communicate the most critical goals and challenges that the business, you, your group faces and effectively share it with the team but trust the individual contributors and your partners to find the most optimal solution and execute it and not trying to do both at the same time, which is really hard to do it, but that’s, that’s what often happens. Because I think that empowering the folks with the proper knowledge and the kind of context around the problem, encourages folks to fully own it and better understand it and they become much more committed to that. And that has a much higher chance to provide the best optimal solution versus the situation when someone just tells you what to do like ABC. And that you’ll get more commitments. I think it inspires folks to grow much more. And I think overall it makes the person who is able to foster such an environment a much better leader, which is also extremely challenging to do. You’ve asked me for advice like for the managers, directors. I’m not sure I’m qualified to give that advice. Uh, it’s more of some things that I’m working on to prove myself and, as someone who is relatively new to their engineering leadership role, I’m finding lots of challenges and struggles, and also those things where you feel like, uh, you might know various aspects of the solution, but you don’t really have to be actively involved in every bits and piece of it and balancing those things is a huge challenge. And personally, as I progress on those, I see that I’m becoming more efficient and more useful for the group and for the company. And I think it’s a kind of ideal and useful goal to live by.

Sachin: So it’s more about empowering people so that they can find their own solutions. And then certain times you may even have the right solution in your hand, but you don’t want to do it because you want the people to fight their own battles. And maybe they come up with something completely different that you might not have imagined. So fostering that innovation is important.

Sergey: Yeah. I would say empowering with the context around the solution and empowering down with the trust for them to execute on it and fully own the implementation.

Sachin: Makes so much sense. And I think you’ve gone through the same in your journey at Netflix. From the early days, you got the context and you got full control.

Sergey: Absolutely. Yes, I experienced that and the full power of it as an individual contributor. And now I’m actively trying to get better at doing that for others as well.

Sachin: Yep. That makes sense. Sergey, it was a pleasure having you today as part of this episode, I really appreciate you taking your time. It was informative and insightful, and I definitely enjoyed listening. I hope our listeners also have a great time listening to you.

Sergey: Thanks a lot, Sachin! session. It’s been a pleasure to have a chance to share my story.

Sachin: Thank you. So, this brings us to the end of today’s episode of Breaking 404. Stay tuned for more such awesome enlightening episodes. Don’t forget to subscribe to our channel ‘Breaking 404 by HackerEarth’ on Itunes, Spotify, Google Podcasts, SoundCloud and TuneIn. This is Sachin, your host signing off until next time. Thank you so much, everyone!

About Sergey Fedorov
Sergey Fedorov is a hands-on engineering leader at Netflix. After working on computer graphics at Intel, and developer tools at Microsoft, he was an early engineer in the Open Connect — team that runs Netflix’s content delivery infrastructure delivering 13% of the world Internet traffic. Sergey spent years building monitoring and data analysis systems for video streaming and now focuses on improving interactive client-server communications to achieve better performance, reliability, and control over Netflix network traffic. He is also the author and maintainer of FAST.com — one of the most popular Internet speed tests. Sergey is a strong advocate of an observable approach to engineering and making data-driven decisions to improve and evolve end-to-end system architectures.

Sergey holds a BS and MS degrees from the Nizhny Novgorod State University in Russia.

Finding actionable signals in loosely controlled environments is what keeps Sergey awake, much better than caffeine. This might also explain why outside of work he can be seen playing ice hockey, brewing beer, or exploring exotic travel destinations (which are lately much closer to his home in Los Gatos, California, but nevertheless just as adventurous).

Links:
Twitter:@sfedov
Website:sfedov.com

All about Machine Learning



Vatsan: Yeah, so these are unprecedented times, unfortunately, and I think this might be the new normal, at least through the end of this year. We'll see. I would say for us, the biggest challenge has been maintaining a healthy balance between work and life. I guess because all of us are working from home these days, we could very easily get up from our bed, log onto a computer, spend hours together in front of a computer, working away, and neglect our health, our family, and so on. So it is important for us to maintain that separation that we used to have and we used to go to an office. The ability to leave work after you leave the office and focus on personal health and family when you're at home. So that's important. Um. I would also say that since we are all remote, it is important for us to over-communicate. You know, we have tons of channels, you know, whether it's Slack or Google Hangouts or WhatsApp or a variety of these tools. It is important that we over-communicate, especially in times such as this, where we are missing those in-person interactions. And often I think, um, you know, when you are at least in an office physically you have your hallway conversations, you have your bankers during lunch, or whether you're grabbing coffee with your team. All of those social events are missing and in the current scenario. So it is important for

Managing Distributed Systems and Engineers with Johan Andersen, Engineering Director, Citadel

In our second episode of Breaking 404, we caught up with Johan Andersen, Engineering Director, Citadel (Former Google SRE Manager) to understand the best practices of managing distributed systems as well as distributed systems engineers.

Subscribe: Spotify | iTunes | Stitcher | SoundCloud | TuneIn

Arbaz: Hello everyone and welcome to the second episode of Breaking 404 by HackerEarth, a podcast for all engineering enthusiasts, professionals, and leaders to learn from top influencers in the engineering and technology industry. This is your host Arbaz and today I have with me Johan Andersen, an ex-Googler (or Xoogler as they call it) and currently the Director of Engineering at Citadel, a global financial institution headquartered in Chicago, United States, with offices throughout North America, Asia, and Europe.

Johan: Hey Arbaz! I’m glad to be here. Thanks for inviting me.

Arbaz: So let’s get this episode up and running by giving our audience a little sneak-peak into your professional journey. So what has your professional journey been like?

Johan: Varied. I started as a systems and networks engineer in academia, worked at university for ~5 years trying to build cheap versions of products that were too expensive to buy. I moved from there into finance, worked as an IT security engineer at a major investment bank. I learned a lot about large systems and how to work effectively across teams, as security was supposed to be a part of any large project being developed at the bank. Switched to Google around 2009, and stayed there for 10 years working a wide variety of applications and infrastructure projects. I learned a lot about SRE best practices and scaling things both for traffic and for an operational load. Last year I moved to Citadel to help drive the SRE team here and spread some of that culture.

Arbaz: Now that our audience knows you much better, it’s time to get into the technicalities. You have previously been a Senior Engineering Manager at a tech giant, Google and now you are with Citadel, a top company in the financial space. What was the biggest challenge for you during this transition? As in how different has your experience been working in the engineering teams of two different industries (Tech and FinTech)?

Johan: The major change I noticed was more related to the relative sizes of the two companies. When I left Google, there were roughly 100x as many full-time engineers as there are at Citadel. This means that it's much faster to get effective changes rolled out, but that there's less pre-built infrastructure for teams to leverage. So more work is spent on establishing best practices, but also it's easier to get consensus on those practices and get them into production. Another change was the difference in the regulatory climate between the two. Google had lots of regulations on safeguarding user privacy and data, but fewer concerns around things retaining communications and desktop technology. I really miss Google Docs.

Arbaz: Well, Google Docs is very close to everyone using the GSuite globally, so we can totally understand your pain here. Moving on, it’s said that as one grows as a professional they tend to develop a greater fear of things going wrong. So what is the biggest fear that you have, being the Director (Engineering) at Citadel?

Johan: My biggest fears are not really Citadel specific; anyone building an engineering organization today has to think about them. One is a competition for talent: strong engineers have never been in more demand than they are today. One is keeping up with a changing ecosystem. SRE in particular, being partnered with multiple engineering teams, really ends up having to have a breadth-first approach to learning, and ends up being a conduit for best practices throughout the organization. Finally, and somewhat topical, is preparing for the unexpected. How well have you load tested the services you use to support remote workers? With the recent news, a number of "baseline assumptions" around both technology and support models are being tested.

Arbaz: Very well said, Johan. All the 3 points here are bang on point and very relatable for all those working in engineering teams globally. And as you rightly pointed out, the competition for talent is fierce and it’s really important for all companies to build great engineering teams. We, at HackerEarth, are proud to help companies in getting top technical talent. Just deviating a little from your professional life and getting to know you more as a person, what would be your favorite leisure-time activity that you love to do when not working?

Johan: I read a lot of science fiction. I play some video games. I like to sail, but don't get a chance very often! And I like to bicycle around New York City.

Arbaz: That’s really interesting. A mix of reading, playing video games and sailing is a pretty unique combination. I believe having a hobby is much needed for everyone to keep calm and motivated. Now that we are talking about hobbies and interests, we often see engineers (at least I do at HackerEarth) lost in their laptop/computer screens, writing lengthy codes. All this while, they have their headphones plugged in, listening to music. What songs or music genre best describes your work ethic?

Johan: Wow, this is tough for me! Maybe classical, Baroque stuff that moves quickly through different movements. My day is rapidly changing, and I like to think it has a similar underlying order.

Arbaz: Coming back to Johan, the Engineer at work, considering the current scenario around the COVID-19 outbreak where companies have asked their employees to work remotely, what do you think is the biggest problem/challenge with remote work for an engineering team?

Johan: I think the biggest challenge nowadays is kind of maintaining the sense of team and comradery that you had during normal operations. It’s really easy in an environment where you spend all of your time at home and only communicate via instant messenger or email or the occasional video conference to get lost in work and to not have a good way to separate your personal time from your work time. It’s really important for leaders to reach out to the people on their teams to make sure that people are doing well in their assigned projects and also in their home lives and try to make accommodations as this is a challenging period for everyone.

Arbaz: The outbreak is pretty serious and we don't know when it's gonna end. Wishing all our listeners the best of health and please stay safe. Now comes a question that I love asking all my guests on this podcast. Code quality and technical debt are two terms that we often hear from engineering leaders. Keeping them in mind, how do you maintain a balance of technical stability (minimize technical debt) while still delivering high-quality code?

Johan: This is a really great question. A lot of people think that SRE is the team that exists to say no. And certainly, no system is more stable and reliable as one that never changes. But systems like that are seldom very useful. I think that SRE exists to make changes as easy and fast as possible without the wheels flying off the car. So if you have robust testing, a release system that lets you canary changes effectively, and can roll back changes quickly and easily, deliver as fast as you can. It's only when you start to see gaps in these areas that SRE starts to recommend being more cautious. I'd much rather own a project where we made frequent changes through a well-understood and tested process than own a more "Stable" service that only released quarterly.

A colleague of mine who I respect a lot once said that a service can't have "haunted graveyards". If there's a place or thing you're afraid to touch or change, it is your responsibility to exercise it until it is understood well enough to change it safely. Otherwise, you risk having to make such a change when you are least prepared to under fire.

Arbaz: With all the new advancements in technology, the introduction of concepts like Machine Learning and Artificial Intelligence, how do you see the technical landscape changing over the next few years and how will you prepare engineering for that?

Johan: Oh, man, I'm terrible at this. I mean, obviously, things continue to move to the cloud. Maintaining either expensive on-premises data centers or expensive offices for engineers is going to be seen as more of an unnecessary cost. It's currently justified by "We've always done it this way" or "there's no other way to meet our regulatory burdens", but if you imagine starting a new business today, how much would you invest in building your own on-premises services for things the SDLC, authentication, email, etc? I know I'm not saying anything novel or profound here, but trying to keep a grasp on what the state of the market is and moving away from capital-intensive "build our own" is probably what's in the cards for anyone not in a gigantic cloud provider.

Arbaz: Taking you back in time, around 20-25 years, just a fun question here, what was the first programming language you started to code in?

Johan: I did some Pascal very early on, and my first "real" code was in C.

Arbaz: A few minutes ago we talked about getting the right talent for building a strong and performing engineering team, what according to you is the most challenging part of any technical assessment/interview from a Hiring Manager perspective?

Johan: Assessment of a new system, or of an engineer? For a system, probably trying to determine dependencies as well as establish the best SLIs.

For a person, I am most interested in trying to evaluate how well they learn, rather than their expertise in any particular technology. Technology, as you talked about before, is constantly changing, and a good engineer will be able to pick up what is needed. This means less "what are the various list functions in Python" and more "in whatever language you are familiar with, help me solve this general problem".

Arbaz: If not engineering, what alternate profession would you have seen yourself excel in?

Johan: Maybe teaching? I really enjoy explaining how things work to people and working through problems with them. You learn a thing best by teaching it to others.

Arbaz: Finally before we sign off and end today’s episode one last question for you - What would be your 1 tip for all Developers, Engineering Managers, VPs, and Directors of Engineering for being the best at what they do?

Johan: One piece of advice for everyone? Probably something about humility/willingness to listen. People who ask questions or express reservations aren't attacking you. It's easy, especially for leaders, but even smart engineers on teams, to be super-confident in your own abilities and ideas. But even if you ARE 100% right, if you are shooting other people down when they bring you questions or concerns, it trains the people around you to not bring you new information, and that's the last thing someone who is trying to be the best wants.

Arbaz: It was a pleasure having you as a part of today’s episode, Johan. It was really informative and insightful to hear from a leader like yourself.

Johan: Arbaz, it was a real pleasure. Thank you for inviting me. I had a really good time.

Arbaz: This brings us to the end of today’s episode of Breaking 404. Stay tuned for more such awesome enlightening episodes. Don’t forget to subscribe to our channel ‘Breaking 404 by HackerEarth’ on iTunes, Spotify, Google Podcasts, SoundCloud and TuneIn. This is Arbaz, your host signing off until next time. Thank you so much, everyone!

About Johan Andersen:

Johan Andersen is an engineering leader with a broad experience creating and developing teams to focus on improving the reliability and scalability of large distributed systems. Johan is currently an Engineering Director at Citadel, where he manages several teams with responsibility for the middle and back-office operations for the firm. Before that, he was a senior SRE manager at Google, where he worked on a wide variety of infrastructure and application teams from Storage to Docs to Search Indexing. Prior to Google, Johan led the Security Architecture team at Morgan Stanley. He has a BS and MS in Computer Science from Columbia University.

Tackling large user traffic with Ajay Sampat, Sr. Engineering Manager, Lyft

In our first episode of Breaking 404, a podcast bringing to you stories and unconventional wisdom from engineering leaders of top global organizations around the globe, we caught up with Ajay Sampat, Sr. Engineering Manager, Lyft to understand the challenges that engineering teams across domains face while tackling large user traffic. Through this episode, Ajay shares his personal experiences and hardships that developers/engineers face in their day-to-day tasks.

Subscribe: Spotify | iTunes | Stitcher | SoundCloud | TuneIn

Arbaz: Hello everyone and welcome to the first episode of Breaking 404 by HackerEarth, a podcast for all engineering enthusiasts, professionals and leaders to learn from top influencers in the engineering and technology industry. This is your host Arbaz and today I have with me Ajay Sampat, Sr. Engineering Manager at Lyft, a ridesharing company based in San Francisco, California.

Ajay: It’s great to be here and share my journey with the global HackerEarth community.

Arbaz: So let’s get started with a little bit about yourself? How has your professional journey been?

Ajay:

  • I moved from Mumbai, India to the United States when I was 18.
  • I graduated with bachelor's & master's degrees in computer science & engineering from Ohio State & Santa Clara University respectively where I had a deep interest in how computers interacted with each other at lightning speed across the globe over the internet.
  • I started my career working on block storage and supercomputers at HITACHI.
  • I learned a lot from the Japanese work culture about focus, dedication, and quality.

KIXEYE

  • I knew I wanted to work on a consumer-focused product and hence took a leap of faith in online and mobile games with KIXEYE.
  • I learned about growth culture and tactics from KIXEYE - building out a full stack team that focused on Growth Funnel of Acquisition, Activation, Retention, Revenue, and Referrals.

TEXTNOW

  • I took those learnings to the telecommunication vertical with TextNow building out the Business Intelligence and growth teams building products on user segmentation and insights, attribution, lifetime value prediction, experimentation, user engagement.

LYFT

  • Currently, I head the Marketing Automation team at Lyft focusing on the top part of the funnel for strategic investments across paid and owned channels to scale both drivers and riders in a two-way marketplace.

Throughout my professional journey, I have had moments of introspection and self-discovery. I have asked myself:

  • What do I really enjoy? Product Management or People Management?
  • Do I want to work for a small, midsize or large company?
  • What culture and values do I want the company to embody?
  • What skills do I want to develop?
  • What personal brand do I want to create?

Arbaz: One thing that all engineers would be inquisitive to know is, what is the biggest fear that you have, being the Sr. Engineering Manager at Lyft?

Ajay: This is not specific to Lyft but my biggest fear is not being able to create a highly functional team that delivers impact on the business. There are a lot of sub-dimensions to this but the key point I would like to highlight is the ability to hire and retain top talent in the competitive bay area market.

Arbaz: The burning question that everyone would love to know from someone working in the Lyft engineering team is: how does Lyft bring up a robust and scalable platform for managing high user traffic at certain times of the day?

Ajay: This is a culmination of years of hard work and learning from hundreds of engineers at Lyft encompassing Infrastructure, Developer productivity, and platform teams. I am fortunate to work with amazingly bright people who are passionate about their craft and the problems they are solving every day. Lyft shares a lot of in-depth articles regarding our technical challenges and our approach to solving those problems in our engineering blog - eng.lyft.com. I would also like to mention that Lyft is a major contributor to the open-source community. You can find our latest and greatest advancements in networking, security, data management at lyft.github.io.

Arbaz: That’s great to know. On the personal side, what is your favorite leisure-time activity that you love to do when not working?

Ajay: Spending quality time with my son - reading him stories, taking him to the park with our dog, working on puzzles and experiencing nature during our camping trip. “This is the greatest joy of my family's life.”

Arbaz: That’s really wonderful. Back to Ajay, the professional, one thing that all tech companies globally are looking for is to minimize technical debt. So, how do you maintain a balance of technical stability (minimize technical debt) while still delivering high-quality code?

Ajay: We like to use this question in our manager interviews. I think this depends a lot on the maturity and criticality of the feature. E.g: Tier 0 core rides API should not be held to the same quality standard of a tier 2 funnel conversion feature. In the early stages of a new feature, it is important to experiment a lot in beta, with small rollouts to gather customer feedback. This might lead to some interim shortcuts and tech debt but once it's decided that an experiment is going to be turned into a long-lasting feature it is important to scope it holistically with test coverage, edge cases, scaling, fallback plan and so on. When it comes to mid to long term planning - it is important to view all workstreams with the same lens - engineering effort vs business impact. This requires that one is accurately able to quantify the impact of working on tech debt or the addition of a new feature and help the business make the appropriate tradeoff.

Arbaz: With all the innovation and new technologies coming up, how do you see the technical landscape changing over the next few years and how will you prepare engineering for that?

Ajay: Jensen Huang, Nvidia CEO once said: “Software Is Eating the World, but AI Is Going to Eat Software”. It is getting increasingly clear that we are moving from a Mobile-first to an AI-first world. It’s all around us from the intelligent vacuum cleaners at home to the smart cars we drive.

Two main areas that intrigue me:

  • The first is AI plug-ins & IDEs like Kite and PyCharm which are making coding easier and more accessible. They are significantly reducing the barrier to entry to coding and now almost anyone with basic training can build web and mobile apps.
  • The second is AutoML which is democratizing Machine Learning and providing ML as a service. With advancements in ML libraries like sklearn, tensorflow, xgboost, and tools like DataRobot and H2O.ai, major resource-intensive activities like feature engineering, model selection, training, and tuning are being automated, leading to faster and higher accuracy models.

These technologies will continue to make great strides in the years to come.

Arbaz: Now, taking you a few years back and trying to get the fresh graduate developer out of you here. From a candidate’s point of view, what do you think is the most challenging part of any technical job assessment or interview?

Ajay: My belief is - that for most people it is Anxiety. Let's take a coding interview, for example. Obviously, you need some basic technical knowledge of data structures, algorithms, and problem-solving to do well in a coding interview which I feel most software engineers do. Where most people suffer is they let self-doubt or anxiety get the best of them. I feel if people stay calm and focused during a technical assessment, they will be able to hear the question properly, recollect their learnings, ask the interviewer the right questions and perform their best!

Arbaz: Very well said! Taking you further back in time, what was the first programming language you started to code in?

Ajay: I got my first computer which was a Pentium III in 1999, over 20 years ago. The first programming language I coded in was HTML which was self-taught so I could build a website and have my presence known on the Internet.

Arbaz: What would be your 1 tip for all Developers, Engineering Managers, VPs and Directors for being the best at what they do?

Ajay: Albert Einstein said, “Once you stop learning, you start dying”. The technology landscape is constantly evolving. This makes it very important for everyone to stay up to date with the latest trends that interest them so they can continue to sharpen their skills. That could be the latest front end coding language, cloud service or growth tactic. Luckily, this is much easier now with the plethora of knowledge consumption mediums like blogs, e-magazines, videos & podcasts.

Arbaz: Engineers and Hiring Managers are usually thought of as really serious people who are engrossed in their work and not very social. Although we see most developers plugged in with their headphones and listening to songs. What songs or music genre best describes your work ethic?

Ajay: It has to be deep house with its high momentum and tempos. And like real work and life it has buildups and drops.

Arbaz: Lastly, If not engineering, what alternate profession would you have seen yourself excel in?

Ajay: I can see myself being in stock or commodity trading which runs in the family. Our family business has been an integral part of my childhood and has had a lasting impression on me. It has taught me the value of honesty and hard work. Trading requires constant researching, building long term strategies and relationships which I enjoy a lot.

Arbaz: It was a pleasure having you as a part of today’s episode. It was really informative and insightful to hear from you.

Ajay: Thank you for having me Arbaz and HackerEarth.

Arbaz: This brings us to the end of today’s episode. Stay tuned for more such enlightening episodes. This is Arbaz, your host signing off until next time.

About Ajay Sampat:

Ajay Sampat is a seasoned growth engineering professional with expertise in scaling companies with state-of-the-art growth technology stacks. Ajay currently heads the Marketing Automation team at Lyft. Prior to Lyft, he started the SF office for Canadian startup TextNow and led its Business Intelligence & Growth teams, making it a top 30 Android app and top 100 iOS App, tripling their DAU and revenue. Before TextNow, he spent three years at KIXEYE building out the Growth engineering organization managing multiple successful desktop and mobile game launches. Ajay started his career at Hitachi working on block storage and supercomputers. Ajay has a BS in Computer Science from The Ohio State University and an MS in Computer Engineering from Santa Clara University.

Links:

Twitter: @asampat

LinkedIn: https://www.linkedin.com/in/ajaysampat/

Website: www.ajay.digital