Posts

View Categories

  • Concurrency from single host applications up to massively distributed services

    Concurrency is when multiple software threads or programs are run at the same time, and is a key aspect of many modern applications.

    Continue reading...

  • 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...


subscribe via RSS