I was asked by a client today to provide 4 bullet points to include in a job description for a developer position that will be primarily responsible for SQL Development. I explained that my preference is to focus on database engine first, then worry about T-SQL. Too many times I see customers who focus on “code skills” for database developers. And end up with coders who don’t understand the engine, physical storage, indexing, data modeling, etc.

Anyway, here is what I came up with.

  • Must have a strong understanding of the SQL Server database engine works, including but not limited to: Physical storage, indexing, physical database design best practices, and the Query Optimizer.
  • Demonstrated ability to create normalized database schemas utilizing data modeling discipline. Understanding of normalization, de-normalization, and the difference between the two. Ability to create schemas for both OLTP and OLAP databases.
  • Ability to both write good T-SQL code, and assist developers in tuning theirs. Understand the difference between T-SQL that just returns the results asked for and good T-SQL.
  • Understanding of various SQL Server features such as SSIS, SSAS, SSRS, XML, Service Broker, Full-Text, etc. and how they are used. Expertise in one or more would be a plus.