View Categories

  • Process for designing distributed systems

    In this post I’ll step through my process for designing distributed systems, with example questions and artifacts associated with each step.

    Continue reading...

  • Choosing between AWS compute services

    When building a new service in AWS, it can be difficult to decide between all the available compute services. In this post I’ll give a brief overview of the main options and describe how I compare and choose between them for a given project.

    Continue reading...

  • AWS caching options

    Caching is a technique used to store frequently accessed data for fast retrieval, reducing the load on backend services and improving application performance. AWS provides several caching options that can be used at different layers of the infrastructure stack.

    Continue reading...

  • AWS S3 bucket creation dates and S3 master regions

    While working on functionality that depended on AWS S3 bucket ages, I noticed that published bucket CreationDate values didn’t always reflect when the buckets were created.

    Continue reading...

  • Choosing a logging library for Kotlin or Java AWS Lambda functions

    There are a lot of logging libraries to choose from when writing AWS Lambda functions in Kotlin or Java. Since Kotlin is fully interoperable with Java, Kotlin projects have access to both Kotlin-based and Java-based logging libraries.

    This post compares some of the major options and evaluates which are most suitable for Lambda functions.

    Continue reading...

  • Lessons learned from using AWS Data Pipeline

    One of the projects I worked on last year had a requirement to sync daily snapshots of data from Amazon RDS to Amazon S3 in order to support other internal services that ingested from S3 data providers.

    I decided to use AWS Data Pipeline since it seemed to be a good fit for our use cases and worked well in a proof-of-concept.

    This turned out to be a less than ideal solution although it did the job, and I learned several lessons from the experience.

    Continue reading...

  • Lessons learned from playing Go

    Managing too many choices

    Continue reading...

  • Investigating 'You don't have enough free space in /var/cache/apt/archives/' errors

    I was recently having issues upgrading Debian Linux due to You don't have enough free space in /var/cache/apt/archives/ errors, and it took an hour or so to resolve the root cause of the issue (one program consuming far too much space). Hopefully this post will help cut down the debugging time for other people who run into this problem.

    Continue reading...

subscribe via RSS