People of ACM - Sharad Agarwal
December 12, 2017
Why is this an exciting time to be working in systems and networking?
The users’ expectation for what computing can do for them keeps growing. Lifelike gaming, augmented reality (AR), virtual reality (VR), virtual personal assistants, efficient factories, efficient fleets of vehicles, continuous video surveillance, and real-time language translation are just some of the applications that stress the limits of our computing infrastructure.
We have to increase the efficiency of computation in our data centers to accommodate the huge wave of applications that are emerging. We need higher network bandwidth both within the data center and across data centers to support larger and more distributed workloads. We need to fuel AR and VR devices with massive amounts of real-time computation despite high latency between the user and the closest datacenter. We need to increase the energy efficiency of our mobile devices because their compute capability keeps outpacing their energy storage capability.
There are many technologies that our colleagues in academia and industry are working on to address these challenges. Optical networking, edge computing, network verification, wireless backscatter communication, wireless power transmission, efficient computation of deep neural networks (DNNs) on mobile processors, and trusted computation in the cloud are just some of the exciting technologies that will propel our computing capabilities over the next decade.
You and your colleagues recently wrote a paper on strategies for compiling the amount of resources DNNs use on mobile devices. Why is it necessary to limit the amount of resources mobile devices use? Where do you see this area of research heading in the coming years?
Per Moore's law, computing performance has doubled every 18 months. However, battery performance has doubled every 10 years, if even that. I think our ambition for what our mobile devices will do for us has grown at a pace in between the two. We have to cover that gap by intelligently managing the resources that mobile devices use.
There are many fascinating pieces to the puzzle that research will deliver in the coming years. DNN execution is important for several compelling mobile applications, and optimizing that execution on mobile devices can lead to significant compute savings at only modest cost to accuracy. An edge compute infrastructure that mobile computation can be offloaded to, that isn't constrained by a battery and is only a wireless hop away, is another promising area of work. Employing batteries of different chemistries in a mobile device can increase overall battery performance across a range of application demands. Adaptive use of the multiple wireless networks available to a mobile device can lead to both battery lifetime improvements and monetary cost reductions for the user.
What is a problem that mobile app developers face today that needs more attention from the mobile systems community?
The problem that I worry about today is user engagement. According to App Annie, mobile phone users spent an aggregate of 900 billion hours in 2016 in mobile apps, and that figure does not include China and does not include iOS. If you look at which apps users are spending that time in, it is split into very tiny slivers across many apps. I have 170 apps on my iPhone, and each one is there for a specific purpose. How does the developer of an individual app increase the utility of that app for the user? Increased user dwell time in the app allows the app developer to increase the lifetime value (LTV) of the user, which in turn gives them more flexibility in the LTV to CAC ratio (CAC being the customer acquisition cost, which includes advertising spent to attract app installs). More flexibility keeps the app developer afloat and gives them the ability to continue innovating and developing the app.
There are many avenues for addressing this problem. Easily deploying new app features that increase user engagement can help. Diagnosing app crashes in the wild when your app has hundreds of asynchronous threads at any point in time is not easy to do. Helping app developers manage the increasing ecosystem diversity (OS versions, OS configuration, phone hardware, app marketplace, etc.) is important. Providing a useful experience when on a slow network or altogether disconnected can be important for apps but is tricky to get right, especially if you have to reconcile the consistency of offline user actions with the state in your cloud when the phone regains connectivity.
You are an active angel investor. Have you learned any lessons that help you discern which startup companies have the greatest chance of success?
I believe the most important factor in a startup's success is the team. A solid team will not waste their time and energy on bringing a fundamentally flawed product to the market. A solid team will not drive a broken business model. A solid team will pivot when the market or business landscape changes around them. When I think back to failed investments that either I or my investment colleagues have made, they have often been failures of the team. CEOs losing their focus on their business model, or C-level staff being unable to set aside their differences of opinion, or key roles that remain unfulfilled can destroy any good startup idea.
I have three pieces of advice for anyone contemplating launching a new business:
- Only build a business around something that you are passionate about. You will spend a lot of time suffering and doubting your choices, and your passion for what you hope to achieve will get you through those times.
- You have to embrace failure. The available data, even for the best investors, shows that the return from startups follows a power law. Even good entrepreneurs with good ideas fail.
- Read. There are a number of good books on the startup journey that will brace you for your journey. Shoe Dog by Phil Knight, which tells the story of Nike, is one of the best I've read. However, be aware of survivorship bias—focusing on the characteristics of companies that have survived and thrived and not considering the characteristics of those that have failed.
Sharad Agarwal is a Senior Researcher in Mobility and Networking at Microsoft Research. Over his 13 years at Microsoft, he has made contributions to several technical areas, including wireless data traffic management, latency reduction in multiplayer gaming, and scalable cloud services. He has co-authored over 35 research publications, co-invented over 40 issued patents, and contributed to Microsoft products including Windows 10 and Windows Phone 8. In his spare time, he is an active startup investor in Seattle.
Agarwal was recently named an ACM Distinguished Member. The ACM Distinguished Member program recognizes up to 10 percent of ACM worldwide membership based on professional experience as well as significant achievements in the computing field.