Details
-
About🚚⛅️🚔 Official Cloud Pusher (DevOps)
-
SkillsYou write it, I deploy it, test it, manage it, secure it...
-
LocationNorth Carolina, USA
-
Website
-
Github
Joined devRant on 4/10/2016
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API

From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
-
Hey, we need a service to resize some images. Oh, it’ll also need a globally diverse cache, with cache purging capabilities, only cache certain images in the United States, support auto scaling, handle half a petabyte of data , but we don’t know when it’ll be needed, so just plan on all of it being needed at once. It has to support a robust security profile using only basic HTTP auth, be written in Java, hosted on-prem, and be fully protected from ddos attacks. It must be backwards compatible with the previous API we use, but that’s poorly documented, you’ll figure it out. Also, it must support being rolled out 20% of the way so we can test it, and forget about it, and leave two copies of our app in production.
You can re-use the code we already have for image thumbnails even though it’s written in Python, caches nothing and is hosted in the cloud. It should be easy. This guy can show you how it all works.2 -
"Unexpectedly found nil while unwrapping an Optional value"
What dev thought this would be a good idea in Swift? Sometimes I hear the compiler's thoughts as it comes across this:
1. The dev explicitly told me this value would be optional.
2. I have a record from the database, and I see a 'nil' in the column for this value.
3. That's not "None" , Oh my god, I need there to be an explicit "None<CustomType>".
4. Shit shit shit shit. Oh my god.
5. PANIC!4 -
MySQL 5.5 end of life’d in 2010. In 2021 my company started an upgrade to 5.6. The outdated dependencies meant we needed 25 engineers for 2 months full-time to make the upgrade as invisible to users as possible. We still took about 90 minutes of downtime on cutover day. Not upgrading MySQL on time meant we paid way more in terms of engineering hours. The reason we call it debt, is because you pay interest when you don’t tKe care of it right away.4
-
No. No. And Absolutely No.
The Three Laws of Robotics MUST not be broken.
https://cnn.com/2022/11/...21 -
A personal memo to all developers on devRant:
* Assume every external line of code, (including every service you consume) is an unreliable crock of flaming shit. These services can and will fail in the most glorious ways. Write your code to be resilient, and ASSUME FAILURE of dependencies. Even if it's your own team writing the other service.
Heard in a meeting today: "Your team's service outage is going to cause my service to corrupt the database!"
Response I wanted to give: "No, you asshat, my service outage is a normal part of living with microservices. Your app should have been smart enough to recognize the failure."8 -
Every once in a while I come across a challenge that's actually challenging. Most recently ... "Develop Regex for validating and extracting a recipe's ingredient's quantity"
Regex should properly identify the numbers in each of the following lines:
1 cup of ingredient
Diced 1/2 cup of ingredient
.5 tsp of ingredient
1 1/2 packed cup of ingredient
1.5 cup of Heavy whipping cream
My answer is the first comment in case you want to solve it yourself. I'd love to know what others come up with.5 -
I spent hours trying to figure out why a specific library couldn't be found on my system. I finally tore apart the ./configure script to no avail. I did a full text search of the source code and found a `config.log` file mentioning it was having trouble with a sub-dependency. I had failed to install OpenSSL.
-
What I need to do today:
* terraform init
* terraform plan
* terraform apply
What I'm doing today:
* Rebuilding a docker container, because our outdated version of Terraform doesn't run on M1 Macs natively.
* Fighting with corporate IT man-in-the-middle SSL certs, because those aren't trusted inside the Docker container. These are now applied to all internet traffic, not just traffic destined to the VPN. Terraform doesn't like it, so it won't download any modules.
* Waiting for a blazing fast 1.5 Mbps connection rate when connected to the VPN.
* Learning I can no longer turn off the VPN, as it's a forced policy on my laptop.
Not sure if I'd be more productive today fighting these issues, or just waiting around for days (weeks?) for IT to mail me an Intel mac.6 -
A custom script that makes a Jira ticket, assigns it to me, marks it as in progress, check out a git branch, set the commit title and the Jira title to my command line argument…. Push, open a PR, and fuck it, merge that shit too.
I checked all the corporate boxes and you got the typo fixed. -
What did I do while down for the count with Covid?
* Setup a static React site
* Hosted the site at Cloudflare Pages
* Protected the page through CF access
* Extracted the JWT
* Setup a Rails API to validate the token
Now I have static React UIs with a nice rich API backend.2 -
To IT: I can no longer clone GitHub repos from the command line.
From IT… Hello DevOps engineer…. You’re no longer allowed to use port 22. It’s not safe. All traffic must be port 443.
Really!?8 -
Me (new position): Hey, can I run this locally?
Other dev: No, it can only run through CI.
Me (exploring): Oh, I see. CI -> Docker -> Makefile -> Ansible -> Packer -> Terraform -> new EC2 image -> new EC2 host -> command.
Well fuck. That's not going to work locally.4 -
Just created a Cloudflare worker that sends messages to the backend over PubSub. Feeling pretty bad-ass right now.3
-
Request I saw today...
* A new, empty AWS Account
* The ability to run 120 high memory EC2 instances, including up to 80 instances of dl1.24xlarge, but don't worry, 40 of them will be spot instances. I'll probably just start with two m5.xlarge for simplicity.
* VPC Peering into our primary AWS network
* VPC Peering into a 3rd party's network (because we're paying them for this service)
* A couple cross-acount IAM roles
* Granting "AWS: AdministratorAccess" to said IAM roles
I'm a bit behind schedule, and this is urgent. When will you have this completed?2 -
Every day I feel like Dr. Leonard McCoy.
"I'm an automation expert, not a ..."
* DBA
* ElasticSearch administrator
* Kafka Architect
* Email marketing specialist
* SEO Analyst
* Front end developer
* Doctor
* Project manager
* Accountant8 -
"We are the great decision makers. We have come to a final answer. We have decided that you must implement this feature using the one way everybody agreed was the worst. The great decision makers will now go slumber for 200 years to leave this decision in your hands. Use our words wisely, or you will not have success in your career."
-
Let's say AWS assigned you an IP address , which was Pi to 7 digits... would you release it if you didn't need it anymore?12
-
Don't get bullied by your cloud provider. You CAN negotiate your contract with them, and you should.1
-
Does a basic Kubernetes ClusterIP Service run on OSI Layer 4? There's musings of calling a Service Mesh 4.5, but out-of-the-box Kubernetes services... What OSI layer would you put them on?9
-
Other team lead: Hi DevOps Team, We need you to deploy this app to production. It's maintainers gave up on it in 2019, but we looked at it and it feels right.
Me: Uhm. That's not going to work. It'll fail the security scan before you can even finish the build in CI.
Other team lead: Yeah, this app is the right thing to do, and we needed it last week, but since that won't work, we'll just use this other very very infant technology that was just born yesterday. It's not stable in production, or on MySQL, or in AWS at all, but it's the other direction we can to go.
Me: What problem are you trying to solve in the first place?
Other team lead: Oh, we need access to the read from the production database.2 -
I manage a team of engineers.
Toxic Culture Post #2:
Manager: Everybody on your team needs their own swimlane in Jira. Each person's work should be their own lane. When I have a ticket for <Project A> I want to make sure that <Bob> always gets it, all tickets for <Project B> must go to <James>. You'll need to figure out which team member will handle <New Project C> and create their personal swim lane.
Me: That's not really how SCRUM works. Actually, that's not how teamwork works. You're creating silos and we all need to learn how to do these tasks. We're a cross-functional team, and each team member brings their own unique talents to the whole process.
Manager: So you'll create the swimlanes?
Me: No
Manager (to Bob): You'll be devoted to <Project A> from now own. It's the only work I expect you to do. All work for that project will be yours.
Likewise, my manager also reached out to each team member and assigned them specific tasks, furthering the silos.6 -
Python be like:
TypeError: 'callable_iterator' object is not callable
and also:
TypeError 'callable_iterator' object is not subscriptable
Why the fuck did you name it "callable iterator" if you can't call it, or iterate it.4 -
Started my new job in November. At least it only took me four months to discover the toxic culture before I'm on the market again. Uuuuugggggh Fuuuuck.2
-
Excelling in my job depends on me understanding where the company has been burned in the past. Once I figured out those places, it's easy to see why we prioritize certain decisions.