Currently, I am working on fast dynamic language implementations,
on combining concurrency models in a safe manner,
automatically preventing concurrency issues from manifesting,
and to enable developers to make sense of complex concurrent programs
with appropriate tools.
When we have to debug applications that use concurrency,
perhaps written in Java,
all we get from the debugger is a list of threads,
perhaps some information about held locks,
and the ability to step through each thread separately.