At Urvashi Tyagi’s first job after college, there were no other women in the company. None. ADP’s Chief Technology Officer knows first-hand how challenging the path can be for a woman in STEM.
Urvashi Tyagi grew up in India. She and her three sisters are all engineers; her oldest sister paved the way. When her sister told the family she wanted to become an engineer, Urvashi’s parents, aunts and uncles were worried no one would want to marry a woman engineer. And besides, it wasn’t even a good career choice with barely any job opportunities for female engineers. After an extended family meeting resulted in an unfavorable outcome, her parents had a change of heart and let Urvashi’s oldest sister join the engineering program. When it was Urvashi’s turn, no one questioned the decision. (And she and her sisters are all happily married and enjoying their professions.)
The Only Woman
While both technology and culture had changed a lot, there were still many challenges for women engineers. When Urvashi was a college undergrad, she was one of only four women in a class of 90 engineering students.
As she was graduating, most companies were not interested in recruiting women. So, she didn’t get a job from campus interviews. But Urvashi noticed an ad in the newspaper at a company that developed machine tools and wanted to hire college grads with design and computer numerical control programming experience. She was invited to interview and was delighted to get the job.
Show up, keep learning, and often it works out better than you could have imagined.
– Urvashi Tyagi, Chief Technology Officer at ADP
When she showed up on her first day, there were no other women in the company. There had never been a women’s bathroom. “Someone printed out a sign that said, ‘Women Only’ and taped it to one of the bathrooms for me,” She says. Grateful, Urvashi overlooked the fact her bathroom was in a different building than where she worked. “I had to figure out how to co-exist on the shop floor and focus on the work. Most of the time it was good. I learned a lot about solving complex engineering problems.”
Later, she found out the hiring manager never had the permission to hire her. He sent the offer letter because she was one of the top two candidates selected based on test scores and interviews. His boss was not entirely pleased. “I got the job because of one individual who did not see things in a stereotypical way and was focused on finding the right person for the role.”
While working full time, Urvashi went back to school to earn her MBA. From there, she decided to teach operations management and information systems. As an academic associate for a couple years at the premier Indian Institute of Management Ahmedabad, she had the opportunity to work and connect with top professors all over the world. But she realized she enjoyed solving problems more than being in a classroom. One of her colleagues encouraged her to apply to a master’s of science program at Worcester Polytechnic Institute, in Worcester, MA. Urvashi wasn’t sure she wanted more school or how she was going to pay for it, but she looked up the program. The customizable curriculum and the focus on applied learning swayed her. She learned that the deadline to apply had already passed, but after speaking with a professor at the school, she submitted her application and was admitted.
Her family didn’t want her so far away. Once again, her older sister supported her and encouraged her family to let her go. Urvashi’s sister was also moving to the United States with her husband and promised to keep an eye on Urvashi. Her parents scraped together the money to purchase their first-ever airplane ticket and a couple months of living expenses. She arrived in Massachusetts with two bags, one full of snacks.
Learning and Solving Problems
Since graduating from WPI in 2001, Urvashi has worked for many of the big names in technology, including IBM, Microsoft, and Amazon. She’s led global engineering teams doing product strategy, architecture, and development. When you download an audiobook or send an Outlook email, know that Urvashi was involved with the engineering and teams that made that possible.
Lockdown birthday celebration at home (left to right): daughter Riya, husband Shishir, Urvashi and son Tanish.
Today, she is ADP’s Chief Technology Officer, taking on that role in 2019. “I had no idea that I would be a CTO three years ago,” she says. “I didn’t plan it. I try to live in the moment and put all my energy into what I am doing and the problems I am working to solve. That drives the next things that happen.”
Urvashi’s approach is to make sure she is always learning and delivering in her role. “While the foundations of engineering and technology may not change that often, the applications are evolving constantly,” she says. “The only way to keep up is to be a lifelong student.”
It’s also essential to understand your own value to the organization. “Always know how the work you do will impact the company’s bottom line and how your work is adding value and taking the company forward.”
This can be challenging for women of color who often experience more scrutiny of their work, more criticism, and less credit for their accomplishments. “The one area where I have experienced unconscious bias is with criticism,” Urvashi says. “I have to listen carefully and know when the feedback is genuine and when it is more about the person giving the feedback. When I understand that, I can embrace the situation and not take it personally.”
Urvashi’s best advice is to live in the moment. “Things don’t have to be planned or the way you think they should be. Show up, keep learning, and often it works out better than you could have imagined.”
Ready for more?
Related Video: How ADP Walks the D&I Talk
One way ADP encourages diversity and inclusion (D&I) among its associates is through business resource groups (BRGs). ADP’s iWIN BRG is the company’s largest with 5000+ members (male and female) from 19 countries across the business. Learn how iWIN engages, equips and empowers its members to achieve personal and professional success through networking, professional development, and other educational opportunities.
“The best employees love what they do”, former PepsiCo CEO Indra Nooyi once responding to a crowd of bright-eyed summer IT interns. Quite a simple answer to the question “what do the best employees do, and how can I be like them?”. The more you think about the fast response Indra had given, the more you realize it extends to more than simply ‘what’ we do. As one of those interns, I didn’t quite understand the depth of this statement until I had exposure to different roles later in my career.
Loving what you do is inherently important, yes, but it’s not exactly the single most important aspect to making you an incredible employee. Whether people want to acknowledge it or not, what you do for work becomes part of you. For example, I may have been called a ‘tech bro’ once or twice after being asked what industry I’m in, to which I usually respond: “I’m not fixing your computer”. After the laughter calms down, I usually begin talking about the work I do, and then inevitably, the “are you happy?” question arises. Most people respond fairly quickly, and to varying degrees, but if you stop and think about the rounded picture of happiness at your job, it usually comes down to one thing: personal fulfillment based on the investment of your time. Many concepts can be abstracted from this — work relationships/enjoyment, culture-driven benefits, monetary compensation, societal impact, etc. How many start-ups have you heard say that they’re going to change the world? Have you ever stopped to think about this as a marketing ploy, rather than a vision statement?
We all have different opinions on what’s heavier when it comes to our personal happiness, but I’ve found that one particularly weighs more than others, and that’s culture. From an organizational perspective, culture is tough to get right and easy to ruin, but when fostered correctly can truly breed the best and happiest employees. Culture is something that’s created organically, targeting the basic human desire to belong, fit in, and feel like a contributor to the group. A group that allows for the dynamism of thought, and freedom to express it without judgment, enables each individual to feel heard while allowing the best outcome to become possible. This, in turn, opens up avenues for new and personal discussions between individuals, potentially turning into friendships. When an employee goes into work every morning, considering his/her coworkers to be people he/she looks forward to working with, that’s where the magic happens, and culture is born. Good relationships grow general satisfaction with a person’s environment. Happy employees are much more likely to go out of their way to make the organization succeed, which full circle, makes them a good employee in the eyes of the organization.
How often in pop culture is work-life balance portrayed with someone comically saying “I don’t know any of you outside of work”. Now, full disclosure, I’ve never once heard anyone explicitly say this, but have seen individuals act in this way. This mentality simply doesn’t instill a sense of trust, no matter what organization or industry you work in. Don’t get me wrong, separation is good and healthy to have, but communication is key.
At Lifion, by ADP, we’re in the business of ‘Human Capital Management’, and we understand that if an organization doesn’t manage its resources correctly, the strongest culture won’t prevail. Everyone wants to be treated as an individual, rather than just another employee. No inhuman litmus test for happiness should ever suffice for a one on one, a drink together at happy hour, or a sincere “hey, how are you doing?”.
In summary, you never know the amount of impact you have on someone’s daily work experience. People are more than just resources to get a job done and respond well when treated as an individual. At the end of the day, you can have the best strategy in the world, but with no one to build it, it’s not worth anything. Simply put, whether you are a company, a manager, or a coworker, the best advice I can give: be human.
This inspirational woman in STEM lives by a four-word personal mantra: girls can do anything.
Kanyatta Walker’s unapologetically fearless outlook began when she was only three years old. A boy cast as Santa in her preschool Christmas play did not enjoy being on stage and kept missing lines. Kanyatta offered to step in, but the teachers said she couldn’t because Santa was a boy. When it turned out none of the boys knew the lines and Kanyatta did, the first female Santa debuted in the play. The crowd loved it.
In high school, Kanyatta was interested in occupational therapy and planned to major in it in college. Then she did some aptitude tests with a good friend who wanted to join the marines. The recruiter told her she was excellent at math and could pretty much do anything she wanted – except be an engineer.
Kanyatta graduated from college with a degree in software engineering technology and has never looked back.
“I always loved math,” Kanyatta said. “My aunt was a math teacher and the way she explained it just made sense to me. I love that there is always a precise answer. But there is also always more than one way to get to that answer and lots of trouble shooting.”
She was recruited by Accenture, a multinational consulting firm, where she worked in a variety of roles from sales to program manager and development manager. By 25, she was leading a team with a significant budget. “I learned by trial and error. There was so much I did not know and I made a lot of mistakes. But I also knew that teams are a mirror of their leaders. I worked at a grocery store when I was 16. When it got busy, the managers would leave their office and come help wherever needed. After the store was bought by a chain, the new managers didn’t come out of their office to help. I learned how important it is for leaders to understand what people need and show up for their team.”
As her career progressed, Kanyatta realized that there are multiple roles for leaders too. “It’s like a baseball team,” she said. “There are coaches and general managers. Coaches assemble the teams and knows who to play to bring out their best. The general manager deals with the overall strategy and choosing the right coaching staff to create the win.
“To be an effective leader, you don’t personally have to play every position. When I see something I want to do, I work to understand the underlying skills. I see how to unravel things and figure out what I know, what I need to know, and how to learn the skills I need. With core skills and ability, you can do anything.”
The desire to understand executive strategy led Kanyatta to an MBA program at Emory University while she was still working full time leading product managers, business analysts and program managers for a large telecom company. She discovered the perfect combination of math and business in her finance courses. “I can look at a company’s finances and tell you what their strategy is,” she said.
Coming to ADP
After finishing her MBA, a friend helped recruit Kanyatta to ADP in Atlanta. She was excited at the opportunity to combine her business skills with her software engineering experience. She started out as Vice President of Operations working in National Accounts on outsourcing operations. Today, Kanyatta is Vice President of Global Product and Technology – Client Product Support, where she leads teams providing product and technical support for ADP’s business units and clients.
“I love the ability to transform here. As the company is transforming, so are the opportunities for people within the company and our clients to grow. I love helping people connect the dots and see where we are going from process to technology to culture, Kanyatta said.
“I also appreciate seeing women executives at ADP and how women help each other here. I met ADP business unit presidents Debbie Dyson and Maria Black within my first six months, and they always find time and make themselves available to help others.”
Helping others succeed
Kanyatta is also committed to helping others grow and achieve their dreams. She is involved in Women in Technology International and Emory’s Executive Women of Goizueta —while also mentoring and coaching rising leaders in her role at ADP. She loves helping women figure out what they want and how to get there.
“Connecting with others can be scary, but it’s important so you can understand the playing field,” Kanyatta said. “You have to lift your head up to see and for people to see you. There’s no way for people to know how amazing you are if your head is down all the time.
“There are not many women of color in tech, so I always try to say yes when people ask me to speak. It’s important to build bridges and for younger women to see people who look like them doing the things they want to do.”
Kanyatta is quick to say that she does not do it all alone. Her husband is very supportive and encourages her to connect with others and volunteer. Together, they manage a busy family schedule with their 12 year old daughter who is playing softball on a traveling team. “I love being a softball mom and spending time with my family,” she said.
Kanyatta, Kya and Kevin Walker enjoying time as a softball family.
Kanyatta’s advice to others
There is nothing quite like the existential dread of realizing you may have a performance issue. Months, possibly years, worth of codebase are suddenly now failing you in a live environment. Reproduction is difficult, and even if you can reproduce it on your dev machine your usual methods of debugging are likely useless. Sure, you can litter your code with entirely too much analytics, or leverage Node’s own profiling, but this results in a data hose that takes a deep understanding of Node, V8, and data science itself to make sense of it. This is a rather dire situation.
A common scenario in any service is you may have some asynchronous operation that you need to perform on a data set of unknown length. Your first instinct may look something like this:
You quickly discover that this is not very fast. Simple interrogation of CPU utilization will show Node is spending a lot of time waiting. Depending on your lint rules, you may not even be able to get this code past a CI build. The solution for many is to simply fire all the promises then await all of them. That, in and of itself, is not a bad thing; for example, say you know that every time you execute a given route, you need to make 3 unrelated calls to other services. Since you know it will always create 3 promises, this is bounded and safe. The problems arise when the promise creation is potentially unbounded.
You test your code and discover it is much faster, Node is not spending time waiting around, and the lint error is gone. You merge and deploy your code, all the integration tests pass, and you go home to watch The Expanse. Suddenly, right when the Rocinante (a legitimate salvage) is entering a tense battle, you start getting PagerDuty alerts. Your services containers are getting restarted constantly due to Out of Memory exceptions, the container host is experiencing socket exhaustion, and your response times are through the roof. You have a major performance and scalability issue.
This is a nice clean scenario, so the suspect code is easily identified, but what if it isn’t? Why does this code fail to scale? This is where Clinic.js shines. For the sake of exercising Clinic.js, I created 6 scenarios that all perform the same asynchronous work some n times using different strategies. They are using for…of, the new ES2018 for await…of, the Promise.all() scenario described above, using Bluebird.map() with a concurrency limit set, the promise-limit module, and the p-limit module.
For the test, I start a clustered web server that accepts a get and post request. Both verbs will perform some arbitrary work before completing the request. In the test itself, I get the data, do arbitrary work, and post the results back. In both cases the work is primarily parsing JSON and manipulating the object in an attempt to simulate a common Node workload. Each test run does this work 500 times, for each element in a mock collection. For the limiting modules, they are all set to allow 10 concurrent promises. All tests were performed using Node v12.14.0. The average execution times over 10 test runs can be seen below.
╔═══════════════╦══════════════════════════════════╗ ║ Test ║ Average Execution Time (Seconds) ║ ╠═══════════════╬══════════════════════════════════╣ ║ await-for-of ║ 6.943 ║ ║ bluebird-map ║ 4.550 ║ ║ for-of ║ 6.745 ║ ║ p-limit ║ 4.523 ║ ║ promise-all ║ 4.524 ║ ║ promise-limit ║ 4.457 ║ ╚═══════════════╩══════════════════════════════════╝
The results here certainly reflect the performance improvement when going from for…of to issuing concurrent promises, but the limiting libraries have similar execution times. Let’s dive deeper into what is going on.
In the for await…of and for..of scenarios (respectively), the CPU utilization is bouncing around and is averaging well below 100%. This means the Node process is spending a lot of time waiting around. The execution time is also non-ideal at roughly 7 seconds averaged over 10 runs. Clinic detects this and reports a potential I/O wait issue bottlenecking the process. It recommends running a ‘bubbleprof’ to better identify the issue.
Note the light blue segment in the graph, this represents network I/O waits. It is spending quite a bit of time waiting for network operations. Perhaps we can speed this up by issuing them concurrently.
In the Promise.all() scenario, execution time has improved dramatically to 4.5 seconds on average. The CPU is now being efficiently utilized. However, notice the memory usage spiking up much higher with incredibly high event loop delay. Clinic detects this issue and reports a potential event loop issue. Why is this?
As you can see, the promise callback is invoked first, then it executes to the end of the block. Only after that do the `then` blocks fire. This, however, is only part of the story.
In the case of the Promise.all() code above, it will create a request for every item in the collection before any `then` block is resolved. This is true even if the early requests complete before it reaches the end of the collection. It will not process the responses until the event loop ticks over. This is due to I/O callbacks not being invoked until the event loop ticks into its I/O phase. It is only at this point `.then()`, or the code block proceeding `await`, is executed.
Ultimately the creation of an unbounded number of promises will result in all of the response objects becoming queued in memory and waiting for the event loop to tick over. This can swamp the Node process with excessive memory allocations, or worse, cause out of memory events. When these objects go out of scope, it will freeze up when the garbage collector executes as it is primarily a blocking, O(N) operation. It also means when the event loop finally does tick over, all of the `.then()` callbacks of completed requests fire synchronously. If this contains heavy work, the event loop will be stuck in the callback phase until this work is completed or another truly asynchronous operation is encountered. This means any events, inbound requests, timers, etc. will not be handled until the ‘.then()’ callbacks are all completed. The biggest concern here is that response times can spike to several seconds. To solve this, we need to limit the number of concurrent promises created.
As indicated in the graphs, Bluebird.map() with a concurrency limit pretty much eliminates the event loop blocking and the high memory usage while maintaining efficient CPU utilization. It matches the performance of Promise.all(), completing the test in 4.5s. Bluebird however has lost its performance edge in recent versions of V8 when compared to native promises and is a rather heavy complete Promise replacement. Let’s consider some other native promise options.
The promise-limit module also resolves our issue, and against matches the performance of Promise.all() at 4.5s. This is due to the aforementioned pressure on Node’s memory system creating unnecessary memory allocations and complex garbage collection events. The overhead of this module does get flagged by Clinic.js as creating some event loop blocking. It notably also is nowhere near as popular as the last module, p-limit.
The p-limit module has the least amount of event loop blocking of all the options, while providing the same performance as Promise.all() at 4.5s. Given the popularity compared to promise-limit and the performance of this module, this is the clear winner.
Clinic.js enables introspection into how your Node application is performing beyond simple top line execution times. It introspects not only your resource utilization, but what the code itself is doing. By no means have I explored all the capabilities of this tool here, however it grants us insight into why a specific codepath may appear to perform without issue on its own, but wreak havoc inside of a live service. NearForm presented this to us during Node Day 2019 and it has quickly become an indispensable debugging tool for us. Its ease of use and clear presentation helps not only quickly identify problematic code, but also convey the “why” to others who are not deep into the debugging process with you. It was the obvious choice to illustrate the issues with unbounded promise creation.
Mark Feffer: Welcome to PeopleTech, the podcast of the HCM Technology report. I’m Mark Feffer.
Today, I talk with Martha Bird, business anthropologist at ADP Innovation Lab. Her job is to make sure that the human element is accounted for when new digital products are designed, so that, for example, software intended to tackle a specific HR problem can be put to use by HR staff in the real world as they go about their actual work. I began by asking Martha how she thought the COVID-19 pandemic would impact the way people work.
Podcast: #HRTech after #COVID-19: “Things that would normally take months or maybe even years to implement are now talking weeks to turn around.” @ADP #HR #HRTribeCLICK TO TWEET
Martha Bird: Well, I think this is such a huge topic. One of the things I think about is imagine that we’ve been working largely in the U.S. with a very, very low unemployment rate. Now all of a sudden there’s this massive degree of unemployment. Now, in the past when there’s been a tight labor market, certain policies are put into place in order to attract the talent that you want. Now, when you have a flood of unemployed people, what is that going to look like in terms of those mechanisms? I don’t know. But to me that’s a consideration, right? It’s that we’ve gone from very robust, healthy unemployment to a very, very high degree of unemployment from healthy employment. So I think that’s going to be an interesting thing to monitor that’s around talent and talent acquisition.
I think also it’s going to be about the discussion around urban and rural, right? So if people are working more remotely, what does that look like for the person who lives in a rural space who has not had access to perhaps the same economics of job that one would have in a larger metropolitan area. And so if it’s indeed the case that people will begin to work more remotely, that can open up a whole, I think potentially positive economics for rural areas and rural workers. So that’s going to be, I think, very interesting.
And then I think there’s also going to be, for employers, much greater awareness now of really what health actually means in terms of the economy. So, a healthy society, and I mean healthy as in well-being, I think is directly corollary to the economy being robust.
So I think there’s a lot of things going to be continued from where we are now. I certainly hope that’s the case. I hear such wonderful stories about people reaching out with altruistic intent and I think that’s just the way we need to go. But you also hear the stories of individuals vying for advantage. And so my hope is that those will not be the ones who will continue to influence our consciousness as humanity.
Mark Feffer: You work for ADP, obviously, your customers are employers and they make certain demands on you. What new demands do you think you’re going to start to hear? Are the priorities going to shift among what employers expect out of their technology solutions?
Martha Bird: Well, I think this whole… To carry on, on the mobile trajectory is going to be key, right? Because that’s all part of the story, about remote. I think too that there’s going to be… I think there’s going to be, at least for ADP and for those in our industry, there is an expectation that we stay completely agile when it comes to major legislative activities related to the COVID-19. And one of the things that I’m aware of is that indeed we are actually keeping up with these things. And that’s no small matter when you think of all the municipalities, jurisdictions, state and federal level legislation to be able to do that and to be able to provide our clients with security of knowing that we are the most up to date on those matters.
So, that’s about speed, right? And it’s about being able to do things pretty quickly. Things that would normally take months or maybe even years to implement, you’re talking weeks now to turn that around. So I think probably this expectation around speed will continue across a lot of industries.
The other thing too, Mark, that I think is really interesting is this collaboration that’s going on between corporations in order to get things done. So, I think about the ventilator situation where there’s just a dire need for those and the largest producer of ventilators is partnering with GM or with Ford in order to switch the production lines in order to make ventilator and doing open source sharing of designs. I’m hoping, personally, that that will become not simply a response to an extremis, but something that maybe could be continued once this settles down a little bit.
Mark Feffer: My last question is, what is the biggest single dramatic change you expect to see in the workplace after the dust has settled?
Martha Bird: There’s so many things. I guess for me, because I’m an anthropologist, I’m thinking really about the way that we interact with our fellows. I hope that if nothing else this allows us to reset ourselves and to understand that it’s incredibly important to exercise respect, honesty, a decency and kindness, that we are all actually part of the family of humans here, and that everything is connected. And I think that wouldn’t be a bad takeaway, in my view, if people could come to terms with embracing that. And unfortunately it takes something as dire as this situation, but to me that would be a positive outcome.
Mark Feffer: Martha, thank you.
Martha Bird: Thanks, Mark.
Mark Feffer: Martha Bird is a business anthropologist at ADP’s innovation lab. And this has been PeopleTech from the HCM echnology report. To keep up with HR technology, visit the HCM Technology report every day. We’re the most trusted source of news in the HR tech industry. Find us at www.hcmtechnologyreport.com. I’m Mark Feffer.