Thanos
@thanos-in-matrix.bsky.social
🐛I know nothing🦋
🐸Notes and thoughts 🌿
🐸Notes and thoughts 🌿
Pinned
Thanos
@thanos-in-matrix.bsky.social
· Jun 6
Things I want to write about but currently lack the time:
- GCP Log Explorer Optimization
- Manual Blue/Green GKE Node Pool Update
- Elevation of Privilege Game
- Exercise: Build your own Product Owner
- Balancing Documentation vs Code as Documentation
- GCP Log Explorer Optimization
- Manual Blue/Green GKE Node Pool Update
- Elevation of Privilege Game
- Exercise: Build your own Product Owner
- Balancing Documentation vs Code as Documentation
I've recently taken the Product Owner role.
Stop bringing me solutions.
Bring me problems!
My job isn't to enrich endpoints.
It's to filter noise, expose real pain, and align effort with impact.
No problem statement ➡️ No work.
Stop bringing me solutions.
Bring me problems!
My job isn't to enrich endpoints.
It's to filter noise, expose real pain, and align effort with impact.
No problem statement ➡️ No work.
September 9, 2025 at 2:00 PM
I've recently taken the Product Owner role.
Stop bringing me solutions.
Bring me problems!
My job isn't to enrich endpoints.
It's to filter noise, expose real pain, and align effort with impact.
No problem statement ➡️ No work.
Stop bringing me solutions.
Bring me problems!
My job isn't to enrich endpoints.
It's to filter noise, expose real pain, and align effort with impact.
No problem statement ➡️ No work.
Probation works both ways. The company assesses your performance, and you assess the company.
August 12, 2025 at 11:04 AM
Probation works both ways. The company assesses your performance, and you assess the company.
Agile Meets Architecture, Berlin 2025
TL;DR from my notes
TL;DR from my notes
August 5, 2025 at 4:46 PM
Agile Meets Architecture, Berlin 2025
TL;DR from my notes
TL;DR from my notes
August 3, 2025 at 5:06 AM
If you have Cloud Run workloads, consider the pricing model too. For high req rate, and consistent load -> instance base pricing. For occasional workload -> request based pricing.
August 2, 2025 at 6:50 AM
If you have Cloud Run workloads, consider the pricing model too. For high req rate, and consistent load -> instance base pricing. For occasional workload -> request based pricing.
A common thinking pattern I see with more junior developers is focusing on the latest tools or standards to make an impact.
A senior starts with the organization's needs and identifies real problems, evaluates tools, and chooses the right one for the job.
Focus on problems, not solutions!
A senior starts with the organization's needs and identifies real problems, evaluates tools, and chooses the right one for the job.
Focus on problems, not solutions!
July 18, 2025 at 8:12 AM
A common thinking pattern I see with more junior developers is focusing on the latest tools or standards to make an impact.
A senior starts with the organization's needs and identifies real problems, evaluates tools, and chooses the right one for the job.
Focus on problems, not solutions!
A senior starts with the organization's needs and identifies real problems, evaluates tools, and chooses the right one for the job.
Focus on problems, not solutions!
Every external system you integrate with, hardware/software, becomes a point of risk. One unreliable/problematic partner means worse customer experience and more internal workarounds, monitoring, and communication. This doesn’t scale linearly.
July 14, 2025 at 4:09 PM
Every external system you integrate with, hardware/software, becomes a point of risk. One unreliable/problematic partner means worse customer experience and more internal workarounds, monitoring, and communication. This doesn’t scale linearly.
SLI = What you measure (e.g., % of 5XX errors)
SLO = The target (e.g., <5% errors in 900s)
SLA = The promise to others (e.g., 99% uptime)
You set SLOs stricter than SLAs to stay safe.
You set alerts to catch drift before you fail the target.
SLO = The target (e.g., <5% errors in 900s)
SLA = The promise to others (e.g., 99% uptime)
You set SLOs stricter than SLAs to stay safe.
You set alerts to catch drift before you fail the target.
June 25, 2025 at 1:16 PM
SLI = What you measure (e.g., % of 5XX errors)
SLO = The target (e.g., <5% errors in 900s)
SLA = The promise to others (e.g., 99% uptime)
You set SLOs stricter than SLAs to stay safe.
You set alerts to catch drift before you fail the target.
SLO = The target (e.g., <5% errors in 900s)
SLA = The promise to others (e.g., 99% uptime)
You set SLOs stricter than SLAs to stay safe.
You set alerts to catch drift before you fail the target.
tldr; Google updated their API quota with an invalid config, the change was propagated in different locations and customers were getting 503s.
status.cloud.google.com/incidents/ow...
status.cloud.google.com/incidents/ow...
Google Cloud Service Health
status.cloud.google.com
June 13, 2025 at 11:28 AM
tldr; Google updated their API quota with an invalid config, the change was propagated in different locations and customers were getting 503s.
status.cloud.google.com/incidents/ow...
status.cloud.google.com/incidents/ow...
Things I want to write about but currently lack the time:
- GCP Log Explorer Optimization
- Manual Blue/Green GKE Node Pool Update
- Elevation of Privilege Game
- Exercise: Build your own Product Owner
- Balancing Documentation vs Code as Documentation
- GCP Log Explorer Optimization
- Manual Blue/Green GKE Node Pool Update
- Elevation of Privilege Game
- Exercise: Build your own Product Owner
- Balancing Documentation vs Code as Documentation
June 6, 2025 at 9:45 AM
Things I want to write about but currently lack the time:
- GCP Log Explorer Optimization
- Manual Blue/Green GKE Node Pool Update
- Elevation of Privilege Game
- Exercise: Build your own Product Owner
- Balancing Documentation vs Code as Documentation
- GCP Log Explorer Optimization
- Manual Blue/Green GKE Node Pool Update
- Elevation of Privilege Game
- Exercise: Build your own Product Owner
- Balancing Documentation vs Code as Documentation
In Kubernetes, control plane's components make global decisions about the cluster (for example, scheduling), as well as detecting and responding to cluster events (for example, starting up a new pod when a Deployment's replicas field is unsatisfied).
June 3, 2025 at 8:53 PM
In Kubernetes, control plane's components make global decisions about the cluster (for example, scheduling), as well as detecting and responding to cluster events (for example, starting up a new pod when a Deployment's replicas field is unsatisfied).
Don’t ask people what they expect from a presentation. They don’t know.
A story is more powerful than pictures alone.
A story is more powerful than pictures alone.
June 2, 2025 at 9:29 AM
Don’t ask people what they expect from a presentation. They don’t know.
A story is more powerful than pictures alone.
A story is more powerful than pictures alone.
The certificate chain must start with the sender's certificate (server/client cert). Each subsequent certificate must directly certify the one preceding it.
Server/Client Certificate → Intermediate CA(s) → Root CA ( omitted if it's part of the trust store)
datatracker.ietf.org/doc/html/rfc...
Server/Client Certificate → Intermediate CA(s) → Root CA ( omitted if it's part of the trust store)
datatracker.ietf.org/doc/html/rfc...
May 30, 2025 at 3:00 PM
The certificate chain must start with the sender's certificate (server/client cert). Each subsequent certificate must directly certify the one preceding it.
Server/Client Certificate → Intermediate CA(s) → Root CA ( omitted if it's part of the trust store)
datatracker.ietf.org/doc/html/rfc...
Server/Client Certificate → Intermediate CA(s) → Root CA ( omitted if it's part of the trust store)
datatracker.ietf.org/doc/html/rfc...
If I can recommend storytelling to you for any reason at all, it would be that storytelling helps you realize that the biggest, scariest, most painful or regretful things in your head get small and surmountable when you share them with two, or three, or twenty, or three thousand people.Matthew Dicks
May 29, 2025 at 11:14 AM
If I can recommend storytelling to you for any reason at all, it would be that storytelling helps you realize that the biggest, scariest, most painful or regretful things in your head get small and surmountable when you share them with two, or three, or twenty, or three thousand people.Matthew Dicks
The best engineers aren’t the ones who know everything but rather the ones that know how to learn anything.
May 27, 2025 at 6:42 PM
The best engineers aren’t the ones who know everything but rather the ones that know how to learn anything.
“To hone your craft is to honor creation. It doesn’t matter if you become the best in your field. By practicing to improve, you are fulfilling your ultimate purpose on this planet.” — Rick Rubin, The Creative Act
May 26, 2025 at 6:14 AM
“To hone your craft is to honor creation. It doesn’t matter if you become the best in your field. By practicing to improve, you are fulfilling your ultimate purpose on this planet.” — Rick Rubin, The Creative Act
The `compact()` function in Terraform is handy when iterating over potentially null resources — e.g., if you’ve removed a resource that another depends on.
`compact()` removes any nulls from a list.
developer.hashicorp.com/terraform/la...
`compact()` removes any nulls from a list.
developer.hashicorp.com/terraform/la...
compact - Functions - Configuration Language | Terraform | HashiCorp Developer
The compact function removes null or empty string elements from a list.
developer.hashicorp.com
May 19, 2025 at 12:04 PM
The `compact()` function in Terraform is handy when iterating over potentially null resources — e.g., if you’ve removed a resource that another depends on.
`compact()` removes any nulls from a list.
developer.hashicorp.com/terraform/la...
`compact()` removes any nulls from a list.
developer.hashicorp.com/terraform/la...
Deleting secrets from a secret store is a common root cause of incidents. To ensure that secrets are not in use, enable audit logs and check whether they have been accessed recently.
In Google Cloud, Data Access Audit Logs are disable by default due to the logging amount that they can produce.
In Google Cloud, Data Access Audit Logs are disable by default due to the logging amount that they can produce.
May 19, 2025 at 9:26 AM
Deleting secrets from a secret store is a common root cause of incidents. To ensure that secrets are not in use, enable audit logs and check whether they have been accessed recently.
In Google Cloud, Data Access Audit Logs are disable by default due to the logging amount that they can produce.
In Google Cloud, Data Access Audit Logs are disable by default due to the logging amount that they can produce.
After a database migration, check that hardware utilization stay within reasonable limits. Watch for spikes or high average CPU — could mean you forgot an index. Assuming an SQL DB, and proper alerting for resource utilization!
April 17, 2025 at 8:25 AM
After a database migration, check that hardware utilization stay within reasonable limits. Watch for spikes or high average CPU — could mean you forgot an index. Assuming an SQL DB, and proper alerting for resource utilization!
When a Terraform-managed resource is modified outside of Terraform, it may try to replace it on the next run. The ignore_changes meta-argument tells Terraform to ignore specific attributes of the resource.
developer.hashicorp.com/terraform/la...
developer.hashicorp.com/terraform/la...
The lifecycle Meta-Argument - Configuration Language | Terraform | HashiCorp Developer
The meta-arguments in a lifecycle block allow you to customize resource behavior.
developer.hashicorp.com
April 16, 2025 at 3:04 PM
When a Terraform-managed resource is modified outside of Terraform, it may try to replace it on the next run. The ignore_changes meta-argument tells Terraform to ignore specific attributes of the resource.
developer.hashicorp.com/terraform/la...
developer.hashicorp.com/terraform/la...
If you need to rename a resource in Terraform, it will try to recreate it by default. But with the `terraform state mv` command, you can map the new name to the existing remote object in the state.
developer.hashicorp.com/terraform/cl...
developer.hashicorp.com/terraform/cl...
terraform state mv command reference | Terraform | HashiCorp Developer
The `terraform state mv` command changes bindings in Terraform state so that existing remote objects bind to new resource instances.
developer.hashicorp.com
April 16, 2025 at 2:18 PM
If you need to rename a resource in Terraform, it will try to recreate it by default. But with the `terraform state mv` command, you can map the new name to the existing remote object in the state.
developer.hashicorp.com/terraform/cl...
developer.hashicorp.com/terraform/cl...
In tech teams, as in other constellations of collaboration, juniors bring new perspectives — untainted by the complacency of long-term expertise. They see problems in ways that experts might overlook.
April 14, 2025 at 6:48 AM
In tech teams, as in other constellations of collaboration, juniors bring new perspectives — untainted by the complacency of long-term expertise. They see problems in ways that experts might overlook.