Dovetail Hiring again

Dovetail Software is hiring developers to work on our HR Case Management SaaS app. We’re looking for smart people to help us work on some cool stuff on cutting edge technology hosted in AWS. Help us write some code, automate … Continue reading 

Posted in Uncategorized | 2 Comments

Stitching Together A Saas Of SaaS (And Never Owning A Single Server)

In the late 90′s and early 2000′s, I spent a lot of time working with IT / operations departments to get servers procured, setup, configured and running the web apps that I was building. This was a large part of … Continue reading 

Posted in Analysis and Design, Business, Management, Networking, Product Reviews, Productivity, SignalLeaf, Tools and Vendors, WatchMeCode, Web | 6 Comments

Maybe that shouldn’t be settable

I think this is pretty, and I wanted to share. I like classes where the compiler ensures they are always in a valid state—you can’t help but use them correctly. I was writing a class that needed to call a … Continue reading 

Posted in refactoring | 22 Comments

SOLID JavaScript In A Wobbly World (Wide Web)

I got to speak at CodeMash 2014, and gave a talk on applying the SOLID software principles to JavaScript. In addition to giving the talk, though, I also recorded the session and have published the video with all the resources!  … Continue reading 

Posted in Analysis and Design, Community, Javascript, Presentations | Leave a comment

When is it a Good Idea to write Bad Code?

Imagine an asteroid is barreling towards earth and the head of NASA tells you and your development team that they have 12 months to code the guidance system for the missile that will knock the asteroid off it’s earthbound trajectory. … Continue reading 

Posted in project management, technical debt | Tagged | 7 Comments

Semantics, Modules And Testing: Why (And How) I Test Internal Components, Not Private Methods

I saw someone tweet about a new-ish JavaScript library called Autooc. recently. I had not heard of it, so I clicked the link to find out more. It looks like an interesting project. I’ll have to look at it further … Continue reading 

Posted in AntiPatterns, Behavior Driven Development, CommonJS, Community, Javascript, Marionette, Modules, NodeJS, NPM, Principles and Patterns, Testing, Unit Testing | 1 Comment

Separating Concerns – Part 2: Services

In the previous article on Separation of Concerns, libraries were explained as a way to decompose an application into separate sets of functions, resulting in code that is easier to maintain and has higher cohesion. This article continues the subject, … Continue reading 

Posted in Uncategorized | Leave a comment

CRUD is Not a Service

Introduction Many systems implement CRUD (create, read, update, and delete) using a repository pattern. An entity is loaded using a Get method, some business layer logic makes changes to the entity, and ultimately saved using a Put method. This exact … Continue reading 

Posted in Development | 5 Comments

AngularJS–Part 8, More choice when testing

Introduction This is a series of posts about AngularJS and our experiences with it while migrating the client of a complex enterprise application from Silverlight to HTML5/CSS/JavaScript using AngularJS as a framework. Since the migration is a very ambitious undertaken … Continue reading 

Posted in AngularJS, How To, introduction, Setup, TDD | 1 Comment

AngularJS–Part 7, Getting ready to test

Introduction This is a series of posts about AngularJS and our experiences with it while migrating the client of a complex enterprise application from Silverlight to HTML5/CSS/JavaScript using AngularJS as a framework. Since the migration is a very ambitious undertaken … Continue reading 

Posted in AngularJS, introduction, Setup, TDD | 1 Comment