Joining the Edge Computing Lab

Please read the following carefully before you email any one of us in the edge computing lab.

Research Problems

In computing, there is only one constant thing. It is change. Historically speaking, every five years or so, we witness significant changes in the computing industry. New areas emerge, and the old areas, though they continue to be necessary, fall out of the spotlight. As such, any good computing research group knows to keep pace with the advances being made in technology and tries to anticipate the future and do research in those areas. In that vein, the Edge Computing research group's philosophy is to tackle problems in exciting and emerging areas that are of importance to the computing industry at large. As the field shifts, we shift.

We like to work on issues that are both practical and relevant to the industry while staying ahead of the industry such that the insights we gather from our research and the path we chart starting from the unknown can trickle into industry's research and development efforts. We are a highly cross-layer and inter-disciplinary research group that focuses on solving problems at the intersection of different fields and layers of the computing stack. So if you wish to join the group, you'd have to be interested in continuously learning new things.

Student Mindset

Our work almost straddles the hardware and software boundaries. When we see a problem, we like to solve the problem creatively, and not see everything as a nail just because we have a hammer or a tool that can do the job. In other words, just because you are a hardware engineer, we think, you should not think narrowly about solving the problem only through the hardware means you know. Instead, you should dig deep to understand the issue you are attempting to solve and then figure out the most appropriate means to the solution, which might be either via hardware or software or some combination of the two together. This might mean that you may have to learn software or vice versa. So focus on the problem and not the solution, that's our fundamental philosophy. 

Due to the nature of our approach to solving research problems, often moderate to strong programming background skills are necessary. Ideally, to work with us, you should have strong experience writing programs in either C/C++ and scripting languages. We typically do not consider classroom-based programming experience as having strong expertise. We like individuals who have gone the extra mile and done things on their own to learn new things (a.k.a the hacker mentality); anyone can "easily" memorize facts and in some extent regurgitate them to get a decent grade in a class. But what we like are people who are willing to challenge conventional wisdom. Don't get us wrong; we are not seeking a rebel. What we are trying to understand is why you think you are different from the rest of the pack in your thinking. Also, we like collecting data on real systems, so we value any prior hands-on experience you may have with real systems work. Please see our Research, Publications, and other pages to learn more about our systems' research interests.

Ph.D.  Expectations

The process of getting a Ph.D. is pretty typical. The process involves three principal steps: (a) you learn to identify fundamental research problems by developing a thorough understanding of the state-of-art by scouring through the research literature and understanding the systems the industry is building and deploying at scale; (b) you develop a strong technical background that enables you to propose independent and innovative solutions to the problems you identify based on your background research; (c) you publish in the Tier 1 conferences and journals to gain credibility and recognition for your work. Practically everyone does the above to earn a Ph.D.

However, getting a Ph.D. with us is different. In addition to the above, we believe that getting a Ph.D. is about helping you discover who you are as a research engineer or scientist. It is also about helping you learn to constructively share the knowledge that you have acquired from your colleagues or elsewhere through your pursuits, with others, and that includes your advisor. We prefer not to impose our ideas onto you; instead, we prefer to help you develop your ideas so that we can learn from you. We see ourselves as facilitators of your research. Two or more minds are almost always better than one, and in the field of computing such as ours, creativity can sometimes, if not always, trump real knowledge. Hence, we like individuals that can keep an open mind in working with others.

Team Work

We like to keep an open mind and work collaboratively with one another. A collaborative culture is essential because collaborations give rise to technical breadth. Your Ph.D. research alone only gives you technical depth. We need both technical depth and breadth to become a good researcher, one that can serve our society for a lifetime and not just through the course of earning your degree.

We are also professional. Every interaction and experience you have both within and outside of the research group is an opportunity to improve yourself and communicate the value-system of the group. Don't be surprised if as a student you find us advising you amongst ourselves on our daily interactions. First impressions matter, regardless of what anyone says. If all you care about is being a sound engineer and scientist, then we are probably the wrong team for you. But if you are looking to grow both as an engineer and a scientist and to become an outstanding leader in the field, then we might be able to help you. We take these matters seriously since our goal is not to push out yet another Ph.D. from the research group. Instead, it is to shape and mold an individual who can lead the future. 

At all times, any one of us in the research lab is open to discussing all of the above. We value teamwork and an individual's development, as much as we appreciate research output. Feel free to contact any one of us in the research group. See the people page.