Posts

View Categories

  • 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

    Go forces us to ask ourselves those all-encompassing questions:

    What should I do now?

    What things are most important to me?

    What should I be focusing on?

    Or combined into a more immediate, actionable form: What is the most important thing for me to do right now?

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

  • Setting up secure AWS S3 buckets with CloudFormation

    In this post I'll go over a few of the configuration settings that you can use to secure your S3 resources, with a base CloudFormation template at the end that you can play with and extend.

    Continue reading...

  • Diving into the Essential Eight strategies to mitigate security incidents part 2: limiting blast radius and recovering

    This is the second part of a deep dive into the ACSC Essential Eight, covering the final four security controls for reducing enterprise risk. It reviews ISM controls, maturity levels, and practical implementation guidance to help teams operationalize these safeguards.

    Continue reading...

  • Living in Seattle or Vancouver on a budget

    One of the most reliable ways to build financial security is to save part of every paycheck as soon as you’re able, so you can both enjoy life in the moment and handle whatever life throws your way.

    It’s harder to save today than it was a few decades ago thanks to an inflated cost of living. However, if you’re earning $30k/year or more, there are practical ways to take control of the big things so that even in cities like Seattle and Vancouver, you can live well, build up an emergency fund, and begin saving for the future.

    Continue reading...

  • Diving into the Essential Eight strategies to mitigate security incidents part 1: preventing delivery and execution of malware

    I introduced some of the security guides published by the Australian Cyber Security Centre and their Essential Eight mitigation strategies for businesses in my last post, and I’d like to dive deeper into the first four mitigation strategies for preventing delivery and execution of malware.

    The Essential Eight mitigation strategies:

    1. Application whitelisting
    2. Patching applications
    3. Configuring Microsoft Office macro settings
    4. Hardening user applications
    5. Restricting administrative privileges
    6. Patching operating systems
    7. Multi-factor authentication
    8. Daily backups

    Continue reading...


subscribe via RSS