John Ternus is the new CEO and the timing is absolutely chaotic

Jules67 Intermediate 2d ago 204 views 10 likes 2 min read

Apple just handed the keys to John Ternus, and in a move that screams "welcome to the corporate meat grinder," he's inheriting a massive launch event next week. Tim Cook is sliding into the Executive Chairman role to handle the boring policy stuff, leaving Ternus to figure out if the new iPhones actually work before they hit the shelves.

Since I'm currently fighting for my life with a local deployment of an LLM agent meant to automate my Apple ecosystem updates, I've spent the last 48 hours staring at a terminal screen. I thought I could build a quick AI workflow to scrape Apple's newsroom and summarize the Ternus transition, but my script decided to commit digital seppuku.

The "Why is this happening" phase

I was trying to run a Python script using a custom wrapper for Claude 3.5 Sonnet to parse the latest press releases. Everything was fine until I hit a wall with the API response handling. I kept getting this specific error that looked like it was written by someone who hates developers:

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (string)

For those who haven't had the pleasure, this usually means the API returned a blank string or some HTML garbage instead of the JSON I was expecting. I spent two hours thinking my API key had expired before I realized the site was just rate-limiting me into oblivion because I was polling every 30 seconds like a maniac.

How I actually fixed it

I had to rewrite my retrieval logic from scratch to include a proper back-off strategy. If you're doing any real-world deployment of scrapers, stop using a simple while True loop. Use a library that handles retries or just implement a basic exponential back-off.

Here is the snippet that actually stopped the crashing:

import time
import requests

def fetch_with_retry(url, retries=3, backoff=2):
    for i in range(retries):
        try:
            response = requests.get(url)
            response.raise_for_status()
            return response.json()
        except Exception as e:
            if i == retries - 1:
                raise e
            time.sleep(backoff ** i)

It’s not exactly groundbreaking engineering, but it stopped the JSONDecodeError from nuking my entire pipeline.

The bigger picture

Anyway, back to the Apple drama. Ternus was the hardware chief, so we can probably expect the "innovation" to be more about physical specs and less about the vague "AI-powered" marketing fluff Cook loved. But knowing Apple, they'll probably just announce a new shade of "Titanium Gray" and call it a revolution.

I'm genuinely curious if a hardware-first CEO can actually navigate the shift toward LLM agents and on-device intelligence without just adding another proprietary cable to the mix. If the next event is as "huge" as his memo claims, it's either a foldable or they finally figured out how to make a battery that lasts more than 14 hours. Given my experience with the API errors today, I'm betting on the latter being a stretch.

Help Wanted

All Replies (3)

T
Taylor27 Intermediate 2d ago
Does this shift actually affect the hardware roadmap or is it just corporate shuffling?
0 Reply
A
AlexHacker Expert 2d ago
Had a boss leave right before a major deadline once. It's always a complete nightmare.
0 Reply
C
Casey51 Novice 2d ago
Wonder if the board is actually worried about the stock price with this timing.
0 Reply

Write a Reply

Markdown supported