Dan Teodosiu
danteodosiu.bsky.social
Dan Teodosiu
@danteodosiu.bsky.social
Computer scientist, executive and entrepreneur. Startup advisor, ex-CTO at Criteo and Onfido.
Aligning product and GTM using customer value metrics

📅 When: Wednesday 24th September
🕓 Time: 4–5pm (BST)
💻 Where: Online

Please register here: lnkd.in/ebz4ZJ3p
LinkedIn
This link will take you to a page that’s not on LinkedIn
lnkd.in
September 5, 2025 at 1:06 PM
I'm excited to invite you to an exclusive session with fellow Balderton EIR Dave Kellogg. We’ll share practical frameworks and tips on:
✅ Identifying how you create value for customers
✅ Measuring it with leading metrics
✅ Aligning both your initiatives and your teams with customer value 🧵
September 5, 2025 at 1:06 PM
Shipping a “high-end” equipment like the #Devialet #ExpertPro without #gapless #UPnP #DLNA support is just an embarrassment. Even my old #cyrusaudio streamer supported this!
Thanks for listening #Devialet. (3/3)
November 9, 2024 at 4:08 PM
Digging further, it turns out the #ExpertPro is using the #Rygel #UPnP renderer.

But #Rygel has supported #UPnP since 2013/2014. So is the #Devialet #ExpertPro using an older version than that?! Weird since the UPnP support was added to Devialet around 2019-2020. (2/3)
November 9, 2024 at 4:08 PM
- The #Devialet #ExpertPro is not really a consumer device, most users won’t be able to fix this kind of issue.
- Where one can find such a shoddy implementation of #TCP nowadays?!
- Customer service matters.
Thank you for listening #Devialet. (9/9)
November 9, 2024 at 4:03 PM
#ExpertPro behaves: no more #ZeroWindow packets. Note the somersaults of the #TCP window size: the #Devialet is literally begging for more traffic. Not going to get it, due to flow control on the #raspberrypi.
Goal achieved: no more interruptions when playing!

Conclusions? (8/9)
November 9, 2024 at 4:03 PM
Let's add a delay for all packets sent from the #raspberrypi to the #Devialet:
tc qdisc add dev eth0 root handle 1: prio
tc qdisc add dev eth0 parent 1:3 handle 30: netem delay $LATENCY
tc filter add dev eth0 protocol ip parent 1:0 prio 3 u32 match ip dst $IP flowid 1:3

The #Devialet (7/9)
November 9, 2024 at 4:03 PM
This after being contacted several times and after I contact their head of Product and Engineering @JLAfresne.
So what’s the way out? Give up and throw away the #Devialet device? (6/9)
November 9, 2024 at 4:03 PM
The #Devialet behavior when #DLNA #UPNP streaming from #minidlna running on #macOS is quite different and actually what I would expect.
#Devialet must not like #Linux #TCP stack?

#Devialet customer support provides no answer after 2 months. (5/9)
November 9, 2024 at 4:03 PM
Turns out the #Devialet is telling the server to stop sending during the pause! It keeps sending #ZeroWindow packets, then eventually re-enables the send by opening its TCP window.
Now this starts looking like a problem with the TCP stack implementation of the #Devialet! (4/9)
November 9, 2024 at 4:03 PM
A look at the network capture shows the size of the #TCP receive window of the #Devialet goes to 0 during the interruptions. Notice the see-saw pattern and the size of the #TCP window becoming quite large (~2MB), too large for such a device.
This is surely not possible?! (3/9)
November 9, 2024 at 4:03 PM
The #Devialet device is used as a #DLNA #UPNP renderer and pulling content from a #minidlna server on a #raspberrypi (same LAN). The sound quality is gorgeous, until occasionally there’s no sound for 7-15s. This occurs mostly when streaming hi-res FLAC.
What’s going on? (2/9)
November 9, 2024 at 4:03 PM