Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine which, when translated into English loosely means, "rocks greatly." Add in Node.js' package ecosystem, npm, which is the largest ecosystem of open source libraries in the world, with transpiler support that brings advanced features to the party, with the ability for coding in a single language to run from the UI to the DB and you end up with the very best development language there is. I can write productively in almost any language but I choose node.js. And I like it.

Node Posts:


Expressjs, with it great routing, brilliant testability, and clarity of purpose, is my go-to API creation solution. Downside? It isn't Strong Loop. And it is still is owned by our friends IBM.


React makes it painless to create interactive UIs. Add Redux, the ability to go native and you have a winner. After learning, using and teaching React.js for a couple of years it is very clear that this is current JS frontend framework winner, for now.


I don't remember learning HTML... I do remember doing "view source" a lot about 1995. Nor do I remember learning CSS. All that changed when I had to teach it. And after doing that lots and lots of time, and doing lots of code reviews, I can say that I know it and can even appreciate well crafted CSS.

Html-css Posts:


MongoDB - it's the database for giant ideas. And I buy that. If your app needs to access gianormous amounts of data in a read optimized way or if some amount of data staleness is ok, I'd be all over Mongo to solve that problem. And this from the guy that was the business owner for a data warehouse so my standards are pretty high. What about MongoDB for transactional systems? nope.

Back in the day, we just called it configuration management. Or the build system. These days they add in a bit of software defined infrastructure and it is a whole new thing. Not in my book, but whatever. There is not doubt it is useful and important and tools like travis and gulp and the ever present git make it a straightforward affair. And I still love writing scripts that automate the whole thing!


CloudFormation is the most powerful tool in your AWS DevOps toolbelt. The ability to create then update using a transactional model in a declarative manner from souce then use the same model to deploy application is the best thing for the cloud... ever.

Cloudformation Posts:


Could implementing CI be any easier than Travis? Nope. Not in my experience. Why do anything else?


Opsworks is Chef running on AWS. On the, "Are servers pets or cattle?" spectrum, Opsworks is a little too far to the pet side for my taste. Not much of a fan.

Opsworks Posts:


AWS Elastic Beanstalk is an orchestration service offered from Amazon Web Services for deploying infrastructure which orchestrates various AWS services, including EC2, S3, Simple Notification Service (SNS), CloudWatch, autoscaling, and Elastic Load Balancers. For my money, EB is fantastic for microservice deployment on ECS.

Elastic-beanstalk Posts:

Elastic-beanstalk Projects:


S3 pretty much does everything. With unlimited storage that never gets lost accessible via HTTP, low cost archive storage options, web asset hosting, in-place data analytics via Athena or Redshift Spectrum, and about a million other use cases, S3 is THE default data storage option.

S3 Posts:


If SimpleDB grew up, got cloned, then got jack on Database Growth Hormone, it would look almost exactly DynamoDB except with great hair.

Dynamodb Projects:


MongoDB - it's the database for giant ideas. And I buy that. If your app needs to access gianormous amounts of data in a read optimized way or if some amount of data staleness is ok, I'd be all over Mongo to solve that problem. And this from the guy that was the business owner for a data warehouse so my standards are pretty high. What about MongoDB for transactional systems? nope.


A data warehouse that starts small for just $0.25 per hour with no commitments and scale out to petabytes of data for $1,000 per terabyte per year, less than a tenth the cost of traditional solutions, and includes Redshift Spectrum, allowing you to directly run SQL queries against exabytes of unstructured data in Amazon S3? Yeah, let's do that.

Redshift Posts:


What if there was a caching service that scaled elastically? What would you call it? CacheElastic? Nope that sounds odd with the adjective AFTER the noun. How about ElastiCache? Yep, that sounds good. Even better, ElastiCache supports Memecached for the easy stuff and Redis for all the complicated stuff. Cool.

Elasticache Posts:


The Relational Database Services is for those of us that want a easy to set up, operate and scale relational database. With support for the old school RDMBS including MS SQL Server and Oracle, open-source darlings MySQL and PostgreSQL, the scale to 64 TB of data Aurora service this service makes sense for so many use cases.

Rds Posts:


Python is a widely used high-level programming language for general-purpose programming, created by Guido van Rossum and first released in 1991. And after, JavaScript, it is my tool of choice to get everything, except browser based apps, out the door.

Python Posts:


Scrum is a management and control process that cuts through complexity to focus on building software that meets business needs. Management and teams are able to get their hands around the requirements and technologies, never let go, and deliver working software, incrementally and empirically. But the tight definition of Scrum Master and Product Owner combined with a good process defintion isn't enough to succeed... I'm a big fan of ScrumBan.


For one, Kanban is NOT an Agile tool, framework or methodology—in fact, it’s not even derived from software development practices. Instead, Kanban came out of lean manufacturing techniques made famous by Japanese automakers who used it to manage their workloads. It is so silly simple that it makes me smile. Bottom Line: good stuff... kanban is.


I love manifestos. And the any manifesto that goes like this has my love:

  • Early customer validation over releasing products with unknown end-user value
  • Collaborative design over designing on an island
  • Solving user problems over designing the next “cool” feature
  • Measuring KPIs over undefined success metrics
  • Applying appropriate tools over following a rigid plan
  • Nimble design over heavy wireframes, comps or specs

Learned about curriculum development Set wacky goal... didn't make it. What I learned Learning Objectives & Learning Assessment focused Self report I do, we do, you do; to we do, you do, you extend Full range of on the why, the what and alternatives/use cases


This course was developed for Level Education as part of their IoT offerings for hardware oriented folks with zero experience with AWS yet need some great way to manage their IoT device fleet and integrate it with the AWS IoT service.

Aws-iot Posts:


This course is a great example of why I love about curriculum development. Start with a simple problem... task automation from the command line. Present the basic skills hands on. Bring in higher order thinking by talking about the merits and challenges with approach. Iterate then present more complicated use cases. By the end, the student knows a new library, a new development workflow, and a couple of new data structures. Super fun course!

Data-struct Posts:

Data-struct Projects:


"Github Pages Portfolio Development with Jekyll, Yeoman and Gulp.js" is a three evening class where budding developers create their own portfolio website while learning the basics of Git, Github, Bash shell, the Ruby Tool Chain (rvm, gem and rake), Jekyll, Markdown, the Node.js Tool chain (nvm, node and npm), as well as how to scaffold using Yeoman then a bit about Gulp.js and the gulp-gh-pages plugin. This is a hands on, intensive class using the c9 online development environment. Folks get a lot of out this class, and the metrics keep getting better each time I teach it!

Portfolio-dev Posts:

Portfolio-dev Projects: