Welcome to the Spotlight Behind SQL Server, a new series from SQLServerCentral.com. As we've grown and spent more time covering SQL Server, we've slowly gained a number of contacts inside Microsoft, including those that develop the product. And we decided to try and interview the SQL Server people inside Microsoft. There are lots of people working on SQL Server 2005 and our goal to is to eventually get to them all.
We know that there are lots of technical things we could ask, and lots of easy marketing questions we could get from them, but you probably read most of those questions elsewhere. So we thought we'd make them think a bit more and get some interviews that showcased the people behind SQL Server. To that end, these interviews will be a little bit different and give you a look at the amazing team that builds SQL Server.
We caught up with Shyam Pather at TechEd 2005 and he gave Andy a book (look for a review soon) and we got him to answer a few questions in between Notification Services updates.
SSC : Tell us a little about your position and what you do?
Shyam :
I’m the development lead for SQL Server Notification Services and I manage the development team building the upcoming release of Notification Services in SQL Server 2005. At the moment, we’re mostly focused on tying up the loose ends and putting the finishing touches on the product. As development lead, my job is to make sure the remaining bugs in the product are found and fixed by the development team. Also, I’m spending an increasing amount of my time working with early adopter customers who are deploying Notification Services applications on the SQL Server 2005 CTPs.
SSC : What product (or portion) are you mostly working on in Notification Services?
Shyam :
Over the past 2 years (since the first release of Notification Services) we’ve been working on an exciting set of feature enhancements that make Notification Services better address the needs of its customers. These include a GUI administration tool built into Management Studio, support for end-user defined subscription matching logic, the ability to embed Notification Services functionality into existing database applications, and an API that provides full programmatic access to all the management and administration capabilities of the Notification Services tools. I’ve worked on the design of these features and contributed to parts of the implementation.
SSC : Is Notification Services (NS) more of an application development platform or something that's a core part of SQL Server? I know it's integrated tightly in there, but is it used by the server itself or is it more to build something on top of?
Shyam : NS is built on top of SQL Server and the .NET framework. As you said, it’s tightly integrated – it’s a core part of the BI suite in SQL Server 2005. But, it is not used within the server. It’s a development platform on which anyone can build a custom notification application.
SSC : Where did you attend college and what was your major in college? Which college?
Shyam :
Computer Engineering at the University of Kansas.
SSC : Happy for Roy Williams or upset? (The coach that left Kansas and won an NCAA basketball tournament at North Carolina)
Shyam :
Actually, I have to admit that I’m probably the one graduate of KU who made it out without getting caught up in the basketball craze. So, I guess I’m indifferent.
SSC : What was your first computer?
Shyam :
The Commodore 64 with a cassette tape drive. A great little machine for its time!
SSC : Since you've been programming so long, you've been exposed to a lot since the Commodore 64. What's your favorite language to work in?
Shyam : Definitely C#. It’s a thoroughly modern language and just makes sense.
SSC : In what ways?
Shyam : Many programming languages have some kind of an “impedance mismatch” with the prevailing development paradigms. A good example is C++ and COM. C++ lacks fundamental language constructs to many express COM concepts. So, to implement COM objects with C++, most developers end up using something like ATL, which can be a mess. You end up wasting a lot of time coding around the limitations of the language. In general, this situation arises because the languages and the development patterns evolve separately.
C#, on the other hand, is built around modern development techniques. The language directly supports many of the things you need to do development in the .NET world. Things like strong typechecking, generics with constraints, and the is and as operators come to mind. It’s possible that in 10-15 years, C# will also be out of alignment with the latest development patterns, but that’s not the case right now. I’ve found that coding in C# makes me way more productive. The language seems to be evolving in every release, so it’s likely to stay current for much longer than other languages we’ve seen.
Besides all the innovations in the language itself, the experience of using C# is so positive because of the fantastic tools support and the .NET framework. Visual Studio’s support for things like Intellisense, code snippets, refactoring, and so on, make coding much faster and less error prone. The class libraries in the .NET framework offer a wealth of functionality in a form that’s easy to reuse.
SSC : Did you see yourself as a programmer when you were growing up?
Shyam :
My dad used to be a pharmacy professor and spent a lot of his time in a lab when I was younger. Listening to him talk about his work, I always thought I would end up as some kind of scientist. We got the Commodore 64 when I was 10. The idea was that my dad would eventually learn to program it and we kids would use it for games. One day I tried typing in a BASIC program I found in a book and, not surprisingly, it didn’t work. I went through the Commodore manuals to try to figure out what was wrong. That got me started in programming and I’ve been doing it ever since.
SSC : Do you use any particular development methodology for building software?
Shyam :
We don’t really use formal design methodologies, but there are some fundamental principles that we follow. The first is to always work from a written design. If you can’t write down a description of what you’re going to build, you haven’t thought it through properly. Another key principle is that we always involve the test team in the process, from the very beginning. Testers often provide valuable insight that often leads to better, cleaner designs. Keeping test in the loop also helps them build better test cases, which ultimately improves the quality of the product. Also, we don’t check anything into the mainline source tree unless we have more than 80% of the corresponding priority 1 tests implemented and passing at a rate of 98.5% or higher. We’ve set up a process we call the “playpen”, in which developers can try out bug fixes they’ve made against the full set of automated tests, before checking in. This helps ensure a consistent level of quality at all times.
SSC : What's your current favorite tech gadget?
Shyam :
My Panasonic Lumix digital camera. It’s small enough to fit in my pocket, has a fantastic lens, great color rendition, and an image stabilizer that lets me take handheld shots in low-light. I love that I can take this camera anywhere – something I can’t do with my bigger cameras.
SSC : Bill Baker introduced you as a kick boxer at TechEd, any truth to that?
Shyam :
Some. I used to be a regular at the kickboxing class at the Pro Club (the gym near Microsoft’s campus). It’s definitely the best workout I’ve found.
SSC : Anybody you'd like to kickbox against? Could you hang in there with Hillary Swank (Million Dollar Baby)?
Shyam : My kickboxing class was more about the workout than the actual combat. We learned some interesting moves, but never had to actually use them. I’m pretty sure Hillary Swank could take me down.
SSC : What do you like to do when you're not working on stuff for Microsoft?
Shyam :
I’m passionate about photography. I’ve been shooting seriously for about 5 years now and I’m trying to improve all the time. I used to do some fashion photography for designers around the Seattle area, but nowadays, it’s mostly just for fun.
I also spend a lot of time writing. Last year I wrote a book about SQL Server 2000 Notification Services. I’m working on an update for the 2005 release at the moment.
SSC : Where's the best food in Redmond for a geek?
Shyam :
In Redmond? I don’t know. I live in downtown Seattle, so I’m more familiar with restaurants on the West side. In Seattle, my favorite is the Kingfish Café. They serve southern style “soul food”. It’s fantastic.
SSC : Will we see you at PASS 2005?
Shyam : Absolutely. I’ll be there delivering a talk entitled, “Add Alerting Functionality to Database Apps w/ SQL Server Notifications Services“. It’ll cover the Notification Services basics and show how to work with the platform as a developer. There will be lots of code and live demos.
SSC : What's down the road for Shyam? Will you continue with Notification Services or would you like to move onto some other product/technology?
Shyam : I’d really like to see Notification Services grow and become more widely adopted. There is a lot we could still add to the platform that we didn’t have time to do in SQL Server 2005. Based on what we see customers doing with the 2005 release, we’ll add new and better things to future releases. As for me personally, I’d love to still have a part in the development of Notification Services, but it’s also a goal for me to grow into a bigger role. A big part of the future of Notification Services will be looking at ways to make the technology fit better into the rest of the BI suite. I’d like to be deeply involved with more than one technology so I can help make that happen.