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

  • 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

  • Using Eclipse for Android Development in 2017

    Innovation in platforms and tooling is necessary for companies to remain competitive, and Android development is no exception. The Android team at Google has been working hard in this department, with their latest major new thing being improved Java 8 support. This involves some big changes to the Android build system, which unfortunately has caused some casualties in tooling such as this previous approach to using Eclipse for Android development. With the prospect of cleaning up my Android codebase with... continue

  • This In-App Purchase Has Aready Been Bought

    If you’re developing iOS apps with in-app purchases, chances are you’ve seen this dreaded dialog and wondered why SKPaymentQueue isn’t calling your SKPaymentTransactionObserver. “This In-App Purchase has already been bought. It will be restored for free.” This scenario can easily occur when an error occurs before calling SKPaymentQueue.default().finishTransaction(transaction). Apple has designed the payment queue in such a way as to enable apps to fulfill a purchase before completing - with finishTransaction being the indication that fulfillment is complete. In the... continue

  • All Articles