Craig Atkinson
Home
Blog
About
  • Faster test failure debugging with GenAI?

    Mar 11, 2025 development productivity testing

    What are some ways we can use GenAI to make developers' lives easier? A couple of years ago I had the chance to use GenAI to help build out a natural-language-to-query-language translator in a software observability system. This capability allowed users to ask a plain-English question such as "What are my slowest …

    Read More
  • Separate plumbing code from business logic

    Jun 13, 2024 development

    Over the course of your career you will hear about many design patterns. From higher-level design patterns like model-view-controller and model-view-presenter to implementation patterns such as observer, singleton, and adapter pattern. These patterns are valuable to establish a consistent design / architecture and …

    Read More
  • Faster Gradle builds through caching and parallelization

    May 18, 2024 development gradle productivity tools

    Spend less time waiting for your build to run and more time developing software by enhancing your Gradle build with caching and parallel execution. The fastest part of your build is one you don't even need to run at all. And then run the necessary parts of your build in parallel.

    Read More
  • How many alerts are too many?

    Mar 24, 2024 development devops team on-call

    Recently I came across a Reddit post where the author wanted to know if their on-call situation was standard or if it was out of the ordinary. The post describes a tire fire, not a production-ready software system: "Is it normal to get alerted multiple times each and every hour of oncall, and then expected to go …

    Read More
  • ChatGPT experiment - analyzing a team's oncall impact

    Mar 26, 2023 development experiments chatgpt

    As you've likely seen, ChatGPT is getting a lot of attention lately. I wanted to experiment with it and see what I could learn, so this past weekend I tried out integrating ChatGPT into one of my apps. What was it like to work with and what could I potentially get from it? This is a recounting of my experiment. A while …

    Read More
  • You can't build everything: opportunity cost in software development

    Mar 21, 2023 development organization team

    Why can't you just add this new feature or fix that lingering bug? After all, it's the time and effort for that change alone - right? But it's not just the cost of what work you choose to tackle - you're also paying the price for all the other work you didn't implement instead. That's the opportunity cost. Opportunity …

    Read More
  • Ten communication tips for staff-plus engineers

    Jan 4, 2023 career team

    As a staff-plus engineer, you likely advanced through your career solving challenging technical problems. And now that you've reached the staff-plus level, it'll just be more of that - won't it? Sorry! While in well-crafted staff-plus roles you will have sufficient focus and time for helping teams solve technical …

    Read More
  • Four keys I look for when reviewing software pull requests

    Dec 10, 2022 development team

    Over the past 15 years I've reviewed hundreds upon hundreds of pull requests. From pull requests against projects I built and maintain to PRs submitted as promotion portfolio reviews in projects I've never seen or worked on, and everything in between. Over time I've developed a set of four key items I look for in each …

    Read More
  • Mock API servers for Maestro Android testing using MockServer and Gradle

    Nov 17, 2022 Android mobile Gradle testing

    Maestro is a great library for writing high-level UI tests that verify your Android app works from your users' perspective. For a more detailed intro into Maestro, please see my recent Maestro intro post. If you're testing an app that makes REST API calls, you'll need a way to verify those parts of the app work …

    Read More
  • High-level Android UI tests with Maestro

    Oct 30, 2022 Android mobile testing

    For fun I've recently been building an Android app with Kotlin and Compose. With this app, I can set goals for the week and track my progress towards those goals. My schedule is too varied day-to-day to successfully finish daily goals of say, read X minutes a day. But I found that setting goals per week helped me …

    Read More
    • ««
    • «
    • 1
    • 2
    • 3
    • »
    • »»

Craig Atkinson

Software engineer, continually curious, highly caffeinated.
Read More

Featured Posts

  • Ten communication tips for staff-plus engineers
  • Four keys I look for when reviewing software pull requests
  • Five ways to be a force multiplier in software engineering
  • Lessons learned from building an open-source side project

Recent Posts

  • Faster test failure debugging with GenAI?
  • Separate plumbing code from business logic
  • Faster Gradle builds through caching and parallelization
  • How many alerts are too many?
  • ChatGPT experiment - analyzing a team's oncall impact
  • You can't build everything: opportunity cost in software development
  • Ten communication tips for staff-plus engineers
  • Four keys I look for when reviewing software pull requests

Categories

DEVELOPMENT 23 TESTING 8 ANDROID 3 CI 3 MOBILE 3 OBSERVABILITY 3 CAREER 2 REACT 2 DEVOPS 1 EXPERIMENTS 1 ON-CALL 1 OPEN-SOURCE 1 ORGANIZATION 1 PRODUCTIVITY 1
All Categories
ANDROID3 CAREER2 CI3 DEVELOPMENT23 DEVOPS1 EXPERIMENTS1 MOBILE3 OBSERVABILITY3 ON-CALL1 OPEN-SOURCE1 ORGANIZATION1 PRODUCTIVITY1 REACT2 TESTING8 TOOLS1
[A~Z][0~9]

Tags

DEVELOPMENT 10 TESTING 9 KOTLIN 5 TEAM 4 ANDROID 3 GITHUB 3 GRADLE 3 OBSERVABILITY 3 PRODUCTIVITY 3 REACT 3 CAREER 2 CI 2 CYPRESS 2 DATABASE 2
All Tags
ANDROID3 CAREER2 CHATGPT1 CI2 CODE1 CODE-COVERAGE1 CYPRESS2 DATABASE2 DEVELOPMENT10 DEVOPS1 DOCKER1 EXPERIMENTS1 GITHUB3 GITHUB-ACTIONS2 GRADLE3 HONEYCOMB1 INDEX1 JOOQ1 KOTLIN5 KTOR1 METRICS1 MOBILE2 OBSERVABILITY3 ON-CALL1 OPEN-SOURCE1 OPENTELEMETRY2 ORGANIZATION1 PERFORMANCE1 POSTGRES2 PRODUCTIVITY3 REACT3 RECHARTS1 SIDE-PROJECT1 TEAM4 TESTING9 TOOLS1
[A~Z][0~9]

Copyright © 2025 CRAIG ATKINSON. All Rights Reserved - Privacy policy