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 Craig Freedman recently after ardently following his blog for quite some time now.
SSC : What exactly do you do at Microsoft?
Craig : Im a software design engineer on the SQL Server relational engine. Specifically, I work on the query execution team which is part of the larger query processor team that includes the query optimizer. My team is responsible for implementing the various physical operators such as index scans and seeks, joins, aggregations, and so forth so that we can execute the query plans generated by the optimizer.
SSC : What feature(s) of SQL Server 2005 did you really enjoy working on?
Craig : One of the first tasks I had when I joined the SQL Server team was to rework how the insert, update, and delete operators handle non-clustered indexes. This was necessary to support partitioned tables. Being new to the team, I pretty much had the design handed to me. Unfortunately, after I implemented it, we found that the performance was not acceptable. We went back, thought about it, and made a bunch of improvements. Still it did not meet our performance goals. So, I went back and thought about it again and suggested a major redesign. Given that wed just rewritten all of this code only a few months earlier and given that my proposal was fairly radical and would require quite a bit of time to implement, I encountered a fair amount of skepticism and pushback. Finally, I convinced everyone to let me give it a go and I rewrote the entire thing from scratch. This time we nailed the performance numbers. The code stuck and it's what we shipped in 2005.
I also had the chance to do some fairly interesting work to improve random I/O performance in index nested loop joins by sorting on keys. I happened to see an email from Jim Gray about some serious performance issues he had with some queries from his Sky Server project. Apparently, some other folks had already looked at the problem and understood what needed to be done, but when they prototyped the solution, it actually made performance worse. Everyone was busy trying to ship SQL Server 2000 and the issue fell by the wayside. Jim really wanted someone to take another look. I did and lo and behold the problem was a little-endian big-endian mix up. We were sorting the I/Os into the wrong order one of the worst possible orders! A few lines of code later and Jims queries started running two and even three orders of magnitude faster. Queries that took hours to run were finishing in minutes or even seconds. Jim was so pleased that he sent a message thanking me to a bunch of the senior managers here. It felt great to have that kind of impact.
SSC : Do you see partitioned data becoming more and more prevalent in the future?
Craig : For certain workloads, partitioned data is clearly essential for manageability purposes. As storage continues to get cheaper and data sizes grow, I do think we will see more customers deploying solutions that use partitioning.
SSC : What percentage of your time is actually coding things and what percent is on design?
Craig : Its hard to say exactly I dont punch a clock but I definitely spend the lions share of my time on design and forward thinking. Since we shipped Yukon, the percentage of time I spend on design has gone up which is pretty natural given how the software release cycle works.
SSC : How long have you been working on SQL Server?
Craig : Ive been with Microsoft and SQL Server for just over 5 years now. All told, Ive been developing relational database engines for over 10 years.
SSC : Any interview questions that stumped you during your MS interview?
Craig : I dont actually recall any of the specific questions, but I do recall that it was a really tough interview and that I worked pretty hard to get through it. Apparently, I did okay since they offered me the job.
SSC : Give us a little background on yourself, how did you get into computers?
Craig : Sometime in the mid-70s my father brought home from his office a device that contained a primitive microprocessor with a small hexadecimal keypad and LED display. It was probably about two to three times the size of a modern laptop computer. You could write simple programs in machine code, key them in using the hex keypad, and execute them. Mostly we just made the display count up and down; simple stuff like that. I was fascinated by this machine; its one of my earliest memories. Ever since them Ive enjoyed working with computers, albeit somewhat more powerful machines.
Later on I had the chance to work on an HP terminal that had a BASIC interpreter in it. You had to load the interpreter off a tape drive. I also recall spending some time one summer playing with a Pascal compiler on a system with those really old large 8 inch floppy drives. Basically, if it was a computer, I was fascinated by it.
SSC : Where did you attend college and what was your degree?
Craig : I have a Bachelors degree in Computer Engineering from the University of Michigan, Ann Arbor and a Masters degree and PhD in Computer Science from the University of Wisconsin, Madison. I worked in the database department at Madison and took all of the database classes, but my thesis was actually on the subject of parallel file systems.
SSC : Did you see yourself as a programmer/developer when you were growing up?
Craig : I knew Id be working with computers and probably software though Im not sure I knew exactly what Id be doing. For a long time, I thought Id do something more research oriented, but somewhere along the way, I decided Id rather be a developer.
SSC : How do you like living in Redmond?
Craig : I really enjoy living in the Pacific Northwest. Ive lived here for over 10 years first in the Portland area and now in the Seattle area. I really like the climate and the geography. The weather is far more temperate than in any other area that Ive lived, were surrounded by mountains and forests, and the ocean is within driving distance. At the same time, weve got all of the advantages of any other big city in terms of entertainment, culture, and so on.
SSC : Who's the most fun to work with at Microsoft?
Craig : My manager, of course. But seriously, there are a lot of great folks working here. Way too many to mention. I already mentioned the time I worked with Jim Gray. That was a lot of fun. Id also like to give a special mention to Lev Novik from the replication team whos been mentoring me for the past few months.
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?
Craig : Peter Spiro is one of the most interesting people Ive met at Microsoft. Some time back, he gave a talk about himself and many of his personal experiences to a packed room. He talked about many of the places hes been and things hes done. Before he even started his career, he spent perhaps 10 or more years I dont recall every detail traveling to out of the way places, helping people, and learning. I was truly amazed at the breadth and scope of his background. I should also mention that at the SQL Server 2005 ship party, when Peter saw my wife who hed met on only one prior occasion nearly 5 years earlier, he recalled details of her career and interests without any prompting. This really impressed both of us.
SSC : What's your current favorite tech gadget?
Craig : Despite a strong start with that early portable computer that sparked my interest in the first place, Im actually not all that into gadgets. I do have a new cell phone which is capable of all sorts of multimedia feats, but I actually use it to, well, make phone calls. If anything, low tech toys interest me more. For example, a couple of years ago, my wife bought me a complete set of Wedgits (see the image). This is a kids building toy and my kids had to fight with me to play with it.
SSC : What does Craig like to do when he's not working on SQL Server?
Craig : I try to spend time with my family. I have two young kids who are growing up way too fast. My daughter has been on a swim team since she was 5. I love to go to her meets and cheer her on. My son is too young for the swim team, but he loves to swim too. Hes already learning to reach and pull and can tread water just about forever! This year my daughter is joining a soccer team and my son is starting gymnastics.
In terms of me personally, I enjoy the outdoors. I like to go on hikes and go to the beach when time permits sometimes with my whole family and sometimes just on a date with my wife.
I also enjoy solving puzzles. I like things that challenge me and make me think.
SSC : What's the most challenging puzzle you've worked on in your spare time (not necessarily computing)
Craig : No one puzzle really stands out. Its funny that you mention not necessarily computing. In high school, I spent lots of time on math and logic puzzles but not anymore. If I could remember a good example of a puzzle from those days, Id share it, but its been too many years.
Nowadays, I like to find something that Im not very good at something that in and of itself might not be considered much of a challenge, but that is a challenge for me and I try to do something about it. For example, about 6 or 7 years ago, I decided to learn how to do crossword puzzles. It seemed to me that I ought to be able to solve at least the easiest puzzles yet I was actually pretty bad at them. So, I started suffering through the daily crossword in the newspaper. I did this for at least a year until I started to find it boring. I still pick up the occasional puzzle mostly the more challenging Saturday or Sunday puzzles.
SSC : Will we see you at the PASS Summit in November?
Craig : I hope so. I really enjoy talking to our customers.