Adnan Aziz

[Adnan's Picture] [Elements of Programming Interviews] [The Science of Interviewing]

Elements of Programming Interviews

We're excited to release a free soft copy sampler of EPI. Specifically, this PDF shows the organization, content, style, topics, and quality of our book.

Amit, Tsung-Hsien and I have completed "Elements of Programming Interviews"! Buy it at - it's the best investment you as a software professional can make in your future.

Have you ever...

If so, you need to read Elements of Programming Interviews (EPI).

The code of EPI is a collection of 300 problems with detailed solutions, including over 100 figures and 200 tested programs. The problems are challenging, well-motivated, and accessible. They are representative of the questions asked at interviews at the most exciting companies.

The book begins with a summary of patterns for data structure, algorithms, and problem solving that will help you solve the most challenging interview problems. This is followed by chapters on basic and advanced data structures, algorithm design, concurrency, system design, probability and discrete mathematics. Each chapter starts with a brief review of key concepts and results followed by a deep and wide set of questions.

EPI concludes with a summary of the nontechnical aspects of interviewing, including common mistakes, strategies for a great interview, perspectives from across the table, negotiating the best offer, and much more.

Adnan, Amit, and Tsung-Hsien have worked at Google, Facebook, Microsoft, IBM, Qualcomm, and several startups. They co-developed algorithms and systems that are used by over one billion people everyday. They have extensive experience with interviewing candidates, making hiring decisions, and being interviewed.

Scaligent - self-serve scalable business intelligence

Scaligent will revolutionize the way businesses look at data. It's a Silicon valley start-up founded by my PhD student Amit Prakash, and I'm proud to serve as a technical adviser. Scaligent is looking for very talented developers, specifically for high-performance C++ computing, Java middleware, and UIs. Check out the job openings at (Be prepared for some really hard interview problems, Amit's a co-author on Elements of Programming Interviews.)

All Things Google

I took leave over the 2008-2009 academic year to work at Google, and learned many wondeful things. I've gave a series of talks based on my experiences there to students at UT: What I learned at Google, My favorite google products, How to get into Google, Designing a modern website


I received my PhD in EECS from UC Berkeley; my undergraduate degree is from IIT Kanpur. I joined The University of Texas in Spring 1996. Click here for my CV, and here for a list of co-authors.

Contact information


Representative research

My interests have moved from technology to applications. You can get an idea of what I am excited about these days from MS reports I recently supervised/co=supervised:

Mobile apps

Alephus book trading app

I helped Jing-Tang (Keith) Jang develop Alephus, an Android app for trading textbooks, which is now available for free at the Android marketplace.
Alephus is designed for university students to economically trade textbooks with their friends and classmates. It uses barcode scanner, camera, instant messaging, maps, and GPS functionality to allow you to effortlessly find nearby items. You can login with your Gmail and Facebook accounts."Minneapolis MN, 2007.


Advice on research and teaching

Good books I'm reading these days

Berkeley course notes

I'm scanning my course notes from Berkeley, starting with my favorite classes.

Useful tools

General coding tips, VIM reference, Code snippets, Pike on programming, C, gdb, emacs, LaTex, CVS, C++


hits since October 1, 2001 (as counted by