Software Development

In a microservices system data tends to get spread out. Without a consistent mechanism for handling identifiers it can become increasingly difficult to follow how data flows through the system. And, it can become problematic to even know what data is being dealt with. In many monolithic applications a database tends to act as the…

Read More Identifiers in Microservices Systems

This is the second installment in a short series on my experiences applying Clean Architecture to Ruby on Rails. The first part provides some helpful context for this installment. Working on Green Field projects is often very enjoyable. Such projects come with few encumbrances, and lots of room to explore. They can be really good…

Read More Applying Clean Architecture to Ruby on Rails: Green Fields

RubyConf 2017 has wrapped up, and it was great. If this is the first of this series you are coming to, please check out the retrospectives from day one and day two. “You Are Insufficiently Persuasive” (Sandi Metz) Sandi Metz always delivers very compelling talks and her emphasis in this keynote on the things that make…

Read More RubyConf 2017 Retrospective — Day 3

This is the second installment of my daily retrospectives on RubyConf 2017. There was a lot of great material produced on the first day and I suggest going back and reading my first day restrospective. Today I was reminded that one of the things I’ve enjoyed about the Ruby community is the diversity of people…

Read More RubyConf 2017 Retrospective — Day 2

As a devoted Rubyist for the last eleven years, I continue to find things to love about Ruby and its direction as a programming language. This year’s RubyConf is my sixth, and has a fun symmetry with my first attendance back in 2010 when RubyConf first came to New Orleans. Below are my thoughts on…

Read More RubyConf 2017 Retrospective — Day 1

Whitney Meers wrote an article that produced an interesting conversation in my employer’s engineering Slack channel. The article presented a sarcastic take on “11 Things Developers Love Hearing From Non-Developer Co-Workers.” The conversation this inspired between myself and some coworkers was how could these eleven comments be addressed in more constructive ways, instead of letting…

Read More 11 Opportunities for Better Conversations

I recently watched a presentation by Peter Campbell from 2016’s O’Reilly Software Architecture Conference in London. The presentation was titled “Architecture as Belief.” The talk’s emphasis was on identifying and discussing the fundamental principles that underly decision-making as software architects. Peter did a very good job identifying that software architecture is not primarily about making…

Read More Principles of Software Engineering

By Pixabay, CC0 Licensed, https://www.pexels.com/photo/abstract-aluminum-architectural-architecture-210158/ Last week DHH wrote about his love for implicit code, and held up Rails as an example of the benefits. As someone who has been working with Ruby on Rails since 2006, I appreciate a lot of the benefits that Rails offers. However, I have also run up against some…

Read More The Right Abstraction Matters

Web development started for me with PHP and Perl when table-based layouts were considered only a half-way bad idea. In 2006 I began working with Ruby and Rails, and I focussed on content management systems and e-commerce. On the front-end I have worked with plain JavaScript, jQuery, MooTools, and a variety of other frameworks. Now,…

Read More A Rubyist’s Perspective on React

Code smells tend to attract developer attention. We have automated tooling for many languages that can spot the most obvious ones. But, code smells are low-level problems and have corresponding low-level solutions. But, what about when your application has a clear mismatch between the way it is built and the problem it is trying to…

Read More Domain Smells: Domain-Data Overcoupling