I am using the first-party Slack desktop client for Windows.
Other systems, like Lync (Skype for Business), Skype, all the way back to MSN Messenger, allowed me to receive notifications when contacts came online.
As Slack works on a disconnected model across all of a users' devices the concept of "coming online" or "going offline" / "signing out" doesn't really apply to Slack, but Slack does still classify users as being online/available, idle, away and sleeping. And to my surprise, there doesn't seem to be a way to tell Slack to notify me if a particular contact changes status, or specifically, is no-longer marked as away or not-signed-in-on-any-device.
Searching online for "slack notify when someone comes online" just yields irrelevant articles listing UI features of Slack that I was already aware of.
Interestingly, Slack's own API does expose presence events, e.g. https://api.slack.com/events/presence_change - I'm just surprised the official client won't let me as a user subscribe to them.
I suppose this is intentional - it isn't Slack-like to require these notifications: the scenario is that you want to be notified so that you know you can talk to someone - because if they're not online you cannot send them messages (Offline Messaging support in MSN Messenger and Skype notwithstanding). Given that Slack will deliver the message to their client software, especially mobile devices, regardless, it means all you need to do is send the message you want to send them anyway and wait for your recipient to reply... eventually. The problem with this approach is that sometimes you want to talk to someone without wanting to seem like you want to - there's also the problem of decorum: I could send my boss a message at 3am and wait for his reply at 9am - but I don't want him to think I'm up on SuperUser.com at 3am...