Bryan Smith

on the Art of Software

Who’s job is security?

A few months ago I said the following: I hope how slow security-as-a-default for IoT is not an indicator of how many years of insecurity we’ll have. At this point I’m positive it is an indicator. The DDoS take-down of the Krebs on Security blog is further proof. So who’s job is the security of IoT devices? Or […]

Read More

The Dev Triad: An Effective Branching Technique for Day-to-Day Commit Management


In my previous post about effective source code branching (a DVCS agnostic branching pattern) I mentioned that adding a Dev-Stable branch was a great way to guarantee you always have a buildable copy of Dev. Distributed version control systems such as Mercurial and Git are fantastic at merging, and unit tests provide a mechanism to ensure code […]

Read More

A Practical Branching Pattern

A practical branching pattern that isn't overly complex and scales to your engineering teams needs.

[A slide presentation of this article is down at the bottom – 2016-03-18] An essential part of effectively releasing software and software engineering at large is implementing a source control branching pattern. Today’s distributed version control tools (such as Git and Mercurial) have come a long way, merging is no longer the burden it once […]

Read More

Does an ‘About Page’ Add Value to a Product Site?

“Is an About page valuable, for people who are thinking about purchasing?” I recently saw this question asked, whether an About page added value on a product website for customers who are thinking about making a first purchase. My gut reaction was “of course”, as is commonly believed, About pages help users learn about you; […]

Read More

Put Your Applications User Manual on Your Website

Is it a good idea to put your user manual on your web site? Yes, not only is it a good idea, if you’re not putting it online you and your customers are missing out. Here’s why your documentation should be online. Your users look online first (and so does everybody else’s). Providing answers natively where […]

Read More

Security is a Design Principle (Not an Afterthought)

Security is a Design Principle

In what turns out to be rather topical to my current side project; IoT security made news today with it’s lack of security (again). I hope how slow security as a default on wifi routers wasn’t an indicator of how many years of insecurity on IoT in general we’ll have. From Ars Technica: Shodan, a […]

Read More

Project Looking Glass: My take on a Smart Mirror (Part 1)

I recently came across Michael Teeuw’s great Magic Mirror concept. Essentially a framed two-way mirror with an LCD behind it. By setting the screen to show mostly black the white text shows through, and with the wonders of today’s technology he connected it to the internet. It’s a rather clever idea and another great example […]

Read More

3 Ways to Create a Startup Culture Based on Data for Product Design Decisions

No one likes awkward or painful conversations where both parties walk away feeling like they didn’t get what they want. Yet when it comes to product design or project direction this is often what happens when a startup’s culture does not already base decisions on product and customer data. Awkward moments will keep happening every time […]

Read More

Managing Feature Creep Prior to Launch

Managing feature creep, endless scope, or whatever you call the temptation to “add just one more feature” is just one of many problems software engineers, application architects, and product designers face. At no other point in time does the fight matter more than before your software launches, you’re setting the tone of your application before […]

Read More

    To get the latest updates

    >> <<