Forward deployed engineer in Beirut. I build LLM agents and durable workflows, mostly in Python and C#, and I spend a fair amount of time in other people's codebases fixing what I run into.
MSc in Computer Science, AUB.
- Customer-facing LLM agents and the integration work around them
- Durable workflows: Temporal, retries, human approval steps, evaluation gates in CI
- Small fixes to the libraries I depend on
Merged contributions, newest first.
versatica/mediasoup and mediasoup-client
- mediasoup#1953 Reject an RTX codec whose
aptdoesn't point to a media codec, instead of panicking in Rust - mediasoup#1955 Worker: fix
RtxEncode()writing 2 bytes beyond the end of the packet - mediasoup#1952 Node: fix
pipeToRouter()failing forever after a failed pair creation - mediasoup#1950 Rust: fix
ScalabilityMode::ksvc()forL2T1_KEY - mediasoup-client#389 Stop the track if
produce()is called on a closed Transport - mediasoup-client#388 Treat
maxRetransmits: 0andmaxPacketLifeTime: 0as given inproduceData() - mediasoup-client#386 Close the DataChannel if
produceData()fails - mediasoup-client#385 Reject
setMaxSpatialLayer()if the handler fails
- livekit#4922 SFU: fix data stats bitrate and duration units
- livekit#4923 Measure data blob keys by their content
- egress#1416 Use UTC for the
{utc}filename template - agents#7523 Gladia STT: store region in
update_options
- #21533 util/cmpver: don't panic on numbers that overflow a uint64
- #2461 Reject values without a JSON representation in
JsonPayloadConverter
- storage#1459 S3: return an empty page for
max-keys=0in list objects - postgres-language-server#818 Pretty-print: separate a prefix operator from an operand that starts with an operator
- postgres-language-server#817 Pretty-print: keep
bpcharand"char"types and quoteVALID UNTIL - supabase-flutter#1898 Don't crash on a deep link with malformed percent-encoding
domaindrivendev/Swashbuckle.AspNetCore, 7 merged, including
- #4130 Drop the regex route constraint from the default Swagger route
- #4129 Keep a property's own summary when comments come from several XML files
- #4128 Emit form encoding for properties of a complex form parameter
- #5721 Expose
PendingInterceptortypes on the MockAgent namespace - #5723 Restore /xhr to the WPT filter
Also merged in Braintrust Python SDK (3), Braintrust JS SDK, GetStream stream-py, media-chrome and Cloudflare RealtimeKit UI.



