Eli Weinstock-Herman


Started May 2013     http://www.sqlishard.com/
MSSQL ASP.Net KnockoutJS Azure

I started working on SQLisHard as a place to point folks when they asked me how to learn SQL. SQLisHard was inspired by TryRuby, a site to interactively learn Ruby (with much better artistic ability than I have, obviously).

Early Version of "Select" exercises

Blog Posts

I've written blog posts based on this site and this was the basis of scripts that became a database deployment talk:

Blog Posts:

Conference Talk:


When I wrote SQLisHard, I was working at PrecisionLender, which heavily influenced both the tech stack and some of the more experimental choices. Don't copy those choices :). Looking back, some of are technologies I never used again, others are ones that I learned how to use better later (knockout), and a very few were mature enough to influence other projects.


The SQLisHard application runs in Windows Azure and executes queries against sample data that resides in an Azure SQL Database. The site runs as a shared website in Windows Azure Web Sites.


The application is an ASP.Net application, using both MVC and Web API on the server-side with the SquishIt library to manage CSS and JavaScript resources. The client-side uses HTML5 Boilerplate and javascript libraries like jQuery, knockout.js with koExternalTemplateEngine, and modernizr. Behind the scenes, results and errors are collected and logged to cloud logging services, where they can be evaluated, charted, and improved from.

Continuous Delivery

The build and deployment process is automated; a custom build setup in TeamCity watches for code changes, running unit and integration tests (Nunit, Selenium, SpecFlow, Jasmine), and deploys both local test environments and the production environment.