Welcome to Green’s Opinion! Below you’ll see some of my projects, open source and recent blog posts:

  • Troubleshooting Android App Crash on Chromebook

    One thing is true for all developers - that is, with wide enough distribution, if a user can do something with your app, they will. If you’re building apps for Android, you will eventually have users running your app on their Chromebook. This is great for those looking for a laptop-like experience with your Android app, but what do you do when your app crashes only on Chromebook? The official ARC developer docs have some great materials on troubleshooting, involving... continue

  • Your Team Might Not Be As Effective As You Think

    I’ve had the privilege of working with highly effective teams for most of my career. In particular, the past 5 years have been incredible, working with the best software developers that I’ve ever known. The kind of teams that books are written about — embracing software craftsmanship, self-organization, agility (small ‘a’), responsibility and continuous improvement. The kind of teams that are principled, that share knowledge freely and deliver high quality software in a repeatable, sustainable fashion. So you can imagine that it... continue

  • Faster Feedback Loop on Code Reviews

    We’ve all seen those projects that start with fast builds. Fast builds that build everything and run all of the tests are a great way to get feedback on your code review, whether it be Travis commenting on your GitHub Pull Request or Jenkins voting on your Gerrit code review. It’s almost inevitable that successful projects end up with growing build times, often to the point where the feedback loop on our changes is out of control. This post is... continue

  • Surfacing Abstractions in Code Reviews

    Code review tools such as GitHub PRs and Gerrit do a a great job of enabling developers to collaborate, but their file- and line-oriented approach leaves abstractions out of the picture. Developers must have the capacity to see the abstractions by reading the code, or risk having code reviews devolve into a critique of syntax, whitespace and implementation detail. The intrinsic ability to see abstractions comes easily for some, but others are at a disadvantage especially when less familiar with... continue

  • Architecting for the Value Stream

    More features, faster time to market, fewer defects. These are what organizations strive for. But an overly narrow continuous integration and continuous delivery focus on DevOps is insufficient to achieve these goals. Instead, we should be taking a whole-system point of view that considers factors beyond development and operations — including people, teams, processes and tools. By taking a constraints perspective, we can identify and address flow-limiting aspects of our value stream. The foundation of “good” architecture — principles such... continue

  • ELK Stack for Improved Support

    The ELK stack, composed of Elasticsearch, Logstash and Kibana, is world-class dashboarding for real-time monitoring of server environments, enabling sophisticated analysis and troubleshooting. Could we also leverage this great tooling to our advantage in situations where access to the server environment is an impossibility? Recently while investigating a customer support case, I looked into whether or not we could create a repeatable process to enable analysis of log files provided as part of a support case. Following are details of... continue

  • All Articles