Back to the future

It’s January 2019 as I write this. I realized that I started on my journey with SQL Server in 1998, and I wanted to look at what’s changed through the lens of my career path.

1998 is the year I qualified as a Microsoft Certified Systems Engineer on the Windows NT 4.0 track. But a short while before that happened, I started at a consulting company that did PeopleSoft implementations. On my first day of that job, my new boss sat me down at the production server for the internal network and gave me the Administrator password. I don’t recall what I said, but his reply has stuck with me: “You want to be a network administrator. Administer it.”

At the time, PeopleSoft (v7.x) ran on several different RDBMS platforms including SQL Server 6.5. All I knew about SQL Server was that it was slower than Oracle, and although it was cheaper, it required Microsoft Windows (and associated licenses) to run. This was the job where I managed (in Oracle) to drop an important table before it was renamed, because we used a Data Mover script inside SQL*Plus, and thereby learned the value of a restorable backup. 21 years later, SQL Server runs natively on Linux, is faster than Oracle (according to the benchmarks anyway), and is still cheaper than Oracle despite switching to a CPU core licensing model. Oh yes, and Oracle now owns PeopleSoft.

I got deeper into SQL Server at my next job as a programmer (classic ASP and HTML). I wrote my first stored procedure on SQL Server 2000, and a custom registration database I helped build handled tens of thousands of something-or-other in the span of a week. We made the local news. (At a consulting engagement years later, I bumped into one of the other developers of that database and he remembered me.) I found the source code for that first stored procedure of mine a couple of years ago. Let’s just say that I hadn’t heard of SCOPE_IDENTITY() yet. My colleague meanwhile was writing dynamic T-SQL and storing snippets of the code in the database. It was my first exposure to what was a rudimentary code generator.

After that job I became an independent consultant, and coincidentally worked a lot with Access databases. Once or twice I was asked to migrate Access to SQL Server, so one of my pet peeves at the time was that it didn’t like spaces in table names unless you used square brackets to escape them. In 2004, I became a Java lecturer because I knew C#, and that led to me becoming a high school teacher the following year, again without going near SQL Server. In fact, I forgot clean about it. I loved teaching though, and had a tough decision to make at the end of 2005.

In 2006 I returned to the software development realm, because I got paid seven times as much as being a high school teacher, and I needed to eat. It was at that company where I rediscovered code generators. They had a business rule engine that had to automatically generate both C# and VB 6 code, and I was tasked with the VB 6 side. It was backed by SQL Server 2000, and that’s when I realized that this RDBMS could handle millions of rows quite comfortably, compared to Access. I met one of the best SQL Server DBAs in the world at that company, and we are still friends. (One of my proudest moments a few years later was when he asked me a question about SQL Server that had stumped a lot of people, but I could answer. It had to do with table variables.)

Then a bank poached me. I went for a round of interviews, and at the technical interview they made me import an Excel file into a table on SQL Server 2000 and query it to remove duplicates. Simple, really, but I’d forgotten so much about the product that I didn’t use Query Analyzer, and wrote my query in Notepad. That made an impression. It was at the bank that I — along with my whole team — learned about SQL Server 2005, and migrated everything to it. All the performance tricks I had learned earlier on SQL Server 2000 held me in good stead for later work. The biggest project I worked on was automating a process that used Excel, Access and a bit of SQL Server, which went from two weeks and needing to be managed with kid gloves, down to 8 hours and needing no human intervention (this included populating Excel spreadsheets one cell at a time with the screen refresh disabled via Visual Basic for Applications).

The bank was followed by, as the recruiter put it, a “game developer,” but they wanted to hire me for general development work. It was there that I ended up working with the three other South African banks in some way or another, culminating in a Rewards programme that we built in six months. I was responsible for the data tier and debit order integration. (I could read EBCDIC as though it was ASCII for two of those six months.) I designed the database on SQL Server 2005, despite SQL Server 2008 being released shortly after the project was implemented. If I could do it all over again, I’d have gotten access to the Early Adoption Program that Microsoft runs, purely to have access to DATE and DATETIME2 instead of the DATETIME data type.

That database is still running and has had many people use it, support it, and interface with it. At a PASS Summit a few years ago, the successor to our Rewards programme was demonstrated during the technical keynote. That was the second proudest moment of my SQL Server-related career (the first was co-authoring a book).

I went back to consulting again after that project, this time for an enterprise content management vendor, and used my SQL Server 2000 knowledge to work on performance tuning their customer databases. That was an amusing job because I only worked for ten months before we moved to Canada. I told my superior that I’d be happy to work remotely, and he said “Remote is Pretoria, not Canada.” Fast forward to three months later; I had a contract and I worked with them for another five years. They only moved their last SQL Server 2000 customer (to 2005, much to my disappointment) in the year 2013.

It’s 2019, and I’m now a published author with over 150 technical blog posts and an MVP for two years running. Though I certainly take none of these for granted — especially the MVP award — it’s incredible what I’ve experienced in 22 years, a lot of which dealt with SQL Server, taking it from something I initially treated with contempt to being the primary focus of my professional education and career in the last 12 years. I’m looking forward to what SQL Server 2019 and beyond will bring.

Share your anecdotes in the comments below.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: