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.
After reading some great weblog information, I finally got Slava Oks' email and tracked him down for an interview. With 7 years of work on SQL Server, across 3 versions, Slava is one of the amazing engineers that enjoys his job working on SQL Server.
SSC : What exactly do you do at Microsoft?
Slava : I work and enjoy every part of it :). Currently I am a software architect for Storage Engine and Infrastructure team. I work on complex design problems, debug difficult to comprehend bugs, closely work with a number of enterprise customers, and provide technical guidance and mentoring to a number of junior developers that I believe will become our future stars. During SQL Server 2005 I worked on major parts of SQLOS such as scheduling, memory management, synchronization and others.
SSC : How long have you been working on SQL Server?
Slava : I have worked on SQL Server since I joined Microsoft in July of 1997. First I started in MDAC where I worked on client side aspects of the product. At that time I was responsible for session pooling and service components, a model to extend OLEDB providers.
During my MDAC years I had spent many sleepless nights in a lab making our product better. I think that is when I started forming as a professional developer, an engineer :). At that time I learned many valuable lessons that helped me throughout my career. I learned to debug without source code and symbols, learned how to read assembly, and most importantly learned what makes good code to be good. In the year 2000 I joined SQL Server Storage Engine team and worked here since. I continue learning new lessons as well as applying and sharing previously accumulated knowledge and experience.
SSC : What's SQLOS? Why do you consider it an operating system?
Slava : SQLOS is a SQL Server internal component that provides scheduling, memory management, I/O processing, synchronization primitives, exception handling and other low level functionality to SQL Server. Usually such functionality is provided by operating systems, and hence we consider SQLOS to be an operating system.
SSC : What one thing from the storage engine do you most think people should understand?
Slava : DB engine is a very sophisticated piece of technology. Storage engine is not an exception. I don't think there is one particular part of storage engine people should understand more than another. In my opinion the more you know about any technology the more you can take advantage of it. I would highly recommend to both SQL developers and DBAs to try to learn as much as possible about SQL Server engine as a whole, especially the internals. We put lots of effort into every feature to make SQL Server a great product. But don't expect it to fly if you misuse its features- there is no free lunch. However with some effort you can let Ferrari be a Ferrari, instead of just owning one 🙂
SSC : What's the most interesting problem or bug you had to work on in a shipping version?
Slava : Interesting problems - I have plenty of those - that is why my job is so much fun. During SQL Server 2005 the set of the most interesting problems included designing SQL Server support for NUMA, designing common caching framework, and finally designing memory broker. These problems were very complex - that was one reason why I liked them. Another reason was that we were able to find simple, elegant solutions to each one of them.
Interesting bugs - I am not an exception, as any developer I put bugs in :. However I am lucky because in addition to my own bugs I get to work on the bugs put in by others as well. Over the years I have seen many amazing bugs, such as all types of memory corruptions, concurrency issues, deadlocks, bit flips, compiler bugs, OS bugs, the list can go on and on. At some point I am thinking about publishing "hall of fame" of bugs on my blog :. I view bugs as a form of art - they are created by people and they are for people :. Some bugs are so sophisticated that when I figure them out I fully appreciate the complexity of technologies we use and the final product's quality we manage to deliver - it is amazing. What makes working on bugs even more interesting is that overtime set of bugs we have to deal with changes. For example Instruction reordering is a new wave of bugs that every developer has to be aware of. Please keep in mind that in today's world both compiler and CPU might reorder instructions. You have to be very careful when trying to manage dependencies between variables without any synchronization. The first time we hit such an issue, it took us couple of weeks to pin point the problem.
SSC : What language do you mostly work in these days?
Slava : C++. SQL Server Engine is fully written in C++ language. However we do lots of debugging in assembly languages. We have to do it in all three x86, x64 and IA64. Many people think that IA64 assembly is the most difficult one; however compiler guys put incredible amount of work to optimize x64 assembly, just to make our job more interesting :, and now , at least for me, it is more difficult to debug x64 than IA64.
SSC : Give us a little background on yourself, how did you get into computers?
Slava : Originally I am from Kazakhstan. There I attended school with a program focused on mathematics and physics. When the time came to choose the profession I didnt really know what I wanted to do, but because both my mom and my older brother were in software engineering I decided to try it out as well as you can see it worked out pretty nicely 🙂 In fact my brother works for Microsoft as well and has recently joined the same team we have lots of fun working together.
SSC : Did you see yourself as a programmer/developer when you were growing up?
Slava : Not at all :). In high school I was an average student who would rather play soccer and have fun than do homework. I got hooked on programming during my first month at Kazakh Polytech and it was then that working for MS became a dream. When MS recruiters came to WPI campus to interview for internship, I thought I would never get it. But then I got a phone call with an invitation to fly over to Redmond for interview, then I got internship, and then a year later I was offered a full time position it was like a miracle to me. My friends and I partied for several days even though we still had finals to take :).
SSC : Where did you attend college and what was your degree/major/concentration?
Slava : I started in Kazakh Polytechnic Institute (KPI) and had studied there for two years. I had to interrupt my education when my family immigrated to US. After having spent some time learning English language I transferred my academic credits from KPI to Worcester Polytechnic Institute (WPI) and continued my education there for another two-and-a-half years. I learned my Bachelor of Science degree in both Computer Sciense (CS) and Mathematics. I loved WPI CS department was great. At that time Digital was sponsoring WPI and we as students worked on the company sponsored projects utilizing their state of the art hardware. After graduating from WPI I came to Microsoft, and after couple years I continued my education at University of Washington where I got my Master of Science degree in Computer Engineering. While attending UW and working for MDAC I came up with many interesting ideas that eventually saw the light during SQLOS days.
SSC : How do you like living in Redmond?
Slava : I love it. I love the area. It is awesome. Some people might find this strange but I love the climate here it never gets too cold and never gets too hot. Plus one can do lots of different activities here throughout the whole year. This place is just right for me and my family.
SSC : Who's the most fun to work with at Microsoft?
Slava : People. Microsoft has attracted smart people from the entire world. On my team we have people from Finland, Tanzania, Canada, Israel, India, China, former Soviet Republics and US. Though we all have different backgrounds, characters, and ambitions, we have a huge passion for what we do. The amount of brain power that the team possesses is just unbelievable. I just enjoy every moment of interacting with the guys.
SSC : We've all heard stories of some characters at Microsoft. Any interesting ones that stunned you or surprised you when you first went to work in Redmond?
Slava : Pretty much everyone at Microsoft is a character. When I first started at Microsoft I was stunned by this observation such a different people with such a different backgrounds find ways productively work with and complement each other.
SSC : What's your current favorite tech gadget?
Slava : I dont think I have one. Over the years I learned not to get hung up on gadgets too much since they come and go at a very fast rate whatever is new and cool (and expansive) today becomes old and useless tomorrow. However I and my wife try to surround ourselves with things we enjoy. We are not very picky we like simple things, but the key is that they should be useful , should work as advertised and should be enjoyable.
SSC : What does Slava like to do when he's not working on SQL Server?
Slava : I like to have fun not that working on SQL Server isnt fun 🙂 I play sports. Especially I enjoy playing team sports where the team wins a game, not an individual player. I play soccer on regular basis. Here at Microsoft we have a soccer league, MSSL. We play two seasons: one during fall and one during spring. Recently, I also started playing ice hockey a sport of my dream. For a long time I wanted to play it but I didnt know where to start.
Nowadays I also try to spend more time with my family - my wife and our daughter Yana who was just born recently. I like good company - having friends over at our house is great. I stay connected with my friends back in Kazakhstan. I visited them last year for the first time since I immigrated to US the vacation was just a blast. Too bad it was too short.
Also I love music - I can enjoy any type of it as long as it is good, but most of the time I listen to classical, heavy metal, and any type of rock. Music is always with me at home, in my car, and in my office. If there is no music I sing to myself though all my friends say that I should keep it only to myself :).
SSC : What positions do you play in soccer and hockey?
Slava: In soccer I play in defense, though my heart wants to play striker so I am constantly looking for a promotion :. My teammates are aware of this and always make fun of me. In hockey, though I still have to work on my skating, I actually got the promotion :. I play left winger and get to assist and actually score the goals - I just love it.
SSC : Favorite musician(s)?
Slava : From classical I usually listen opera. Verdi, Puccini, and Tchaikovsky are among my favorites. From heavy metal I like Helloween, Judas Priest, and Metallica.
SSC : Has Kazakhstan changed a lot since you left?
Slava : Yes Kazakhstan has definitely changed and changed in a good way. The best thing of all, people became much happier now. Kazakhstan's economy is booming. In many places I visited I didn't feel big difference between US and Kazakhstan - that was a great feeling.
SSC : Ever been to Bill Gates' House?
Slava : Yes, but I visited the old one in August of 1996 when I was an intern. Bill Gates has a great tradition - he invites all summer interns to his house for barbecue, during which he shares his vision and spends time just talking to people. It was a fun experience.
SSC : Will we see you at the PASS Summit in Dallas?
Slava : I submitted a proposal for SQLOS talk but to my surprise it was rejected. Now it looks like I will do the preconf talk instead. I was also stunned by the fact that the majority of SQL developers internal talks were rejected. Having PASS in Seattle and not letting developers - the guys that know SQL Server from inside and out and better than anyone else talk at the conference is just plain wrong. We put so many great features into SQL Server 2005, believe me we do want to talk about them they are our babies :).
SSC : I agree with you on the PASS talks, but it seems that most people want to know how to do something in a practical sense, rather than the theory?
Slava : ? I understand. However I still think there is a misconception. Many people don't realize that developers are one of the main sources for explaining practicalities around SQL Server. Although we don't help customers design their applications, we can make them better. We understand both SQL Server internals and how they can be leveraged in different environments. Keep in mind that internals is not database theory. As I mentioned earlier, we often work closely with some of our largest customers. I noticed that after every such engagement our customers express astonishing appreciation to us. I think the main reason is that in a matter of days we significantly improve their applications - we just know how to do it. In addition, while working with us, our customers acquire enormous amount of experience and knowledge. For us these engagements are very important as well - we understand customers' major pain points and how to improve our product. However, there are only few developers in our team,, so it is not realistic for us to work with every customer. Therefore I think that, given the chance, customers should reach out and use every opportunity of getting in touch with us. Our blogs serve as excellent initial resources and points of contact - use them, ask questions, provide comments - we are eager to answer questions and establish a solid line of communication. Conferences are another great way of interacting with developers. Unfortunately our developers cannot go to every conference. But having a conference in Seattle and not letting developers talk rather then providing just a couple of hours for "ask the experts" session is wrong in my opinion.