Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The frugal developer

Ricardo Sueiras
March 26, 2025
11

The frugal developer

Ricardo Sueiras

March 26, 2025
Tweet

Transcript

  1. It’s crucial to find the right balance between your technical

    and business needs – to find the sweet spot that aligns with your risk tolerance and budget. Remember, frugality is about maximizing value, not just minimizing spend. And to do that, you need to determine what you’re willing to pay for.
  2. cloud Managed Open Source Self Manage •Open Source technology skill

    and expertise •Installation and configuration of OSS •Scaling and performance tuning •Security configuration •Patching – updates and security fixes •Upstream contributions and fixes •Support of open source technology •Infrastructure patching – security and functional •Compute orchestration, provisioning •Cluster scaling •Physical hardware, host OS/kernel, networking, and facilities •Physical data centre capabilities Self host •Use open source technology Customer Manages
  3. Build_ |- Run local |- Shut down dev servers |-

    Developing for spot |- Code optimisation
  4. import boto3 import time s3 = boto3.client('s3') bucket_name = "your-bucket-name"

    # List the bucket contents 1000 times (excessive API calls) for _ in range(1000): objects = s3.list_objects_v2(Bucket=bucket_name) # Download the same files over and over instead of caching for obj in objects.get("Contents", []): key = obj["Key"] s3.download_file(bucket_name, key, f"/tmp/{key}") # Re-downloading every time # Uploading large file in small chunks without using multipart upload with open("large_file.dat", "rb") as f: while chunk := f.read(1024): # Reading in tiny 1KB chunks s3.put_object(Bucket=bucket_name, Key="uploads/large_file.dat", Body=chunk)
  5. import boto3 dynamodb = boto3.client("dynamodb") table_name = "your-dynamodb-table" # Scanning

    entire table instead of querying specific records response = dynamodb.scan(TableName=table_name) # Process items (even if we only need a few) for item in response.get("Items", []): print(item)
  6. "We have deployed ACCP to thousands of cloud instances hosting

    our source of truth Apache Cassandra databases as well as our performance sensitive Memcached tiers. ACCP is successfully reducing crypto overhead by up to 90% in various workloads primarily TLS and message digests. For example, ACCP accelerates our internode communication, quorum data reads, anti-entropy repair, and continuous S3 backups. We were pleased with how easy it was to integrate ACCP with both off-the-shelf and in-house Java software.” Joey Lynch Netflix Cloud Data Engineering Team Up to 90% crypto overhead reduction
  7. Build_ |- Run local |- Shut down dev servers |-

    Developing for spot |- Code optimisation |- Automate everything
  8. > Cold start optimisation > Optimise your dependencies > Set

    the right logging levels > Review Well Architected best practices
  9. > P: Amazon Q Developer > B: OSS Tools >

    B: Infracost (Terraform)
  10. > P: Amazon Q Developer > B: OSS Tools >

    B: Infracost (Terraform) > B: AWS Lambda Power Tuning
  11. > P: Amazon Q Developer > B: OSS Tools >

    B: Infracost (Terraform) > B: AWS Lambda Power Tuning > R: Autospotting and Saving Expert (OSS)
  12. > P: Amazon Q Developer > B: OSS Tools >

    B: Infracost (Terraform) > B: AWS Lambda Power Tuning > R: Autospotting and Saving Expert (OSS) > R: Steampipe with Thrifty mod
  13. Takeaway_ |- You have options, but starting early is key

    |- There are some great tools can use |- Amazon Q Developer can help you optimize and reduce your costs