Ya casi llega con su consulta. Solo usa filter
cláusula para obtener el recuento de votos del usuario actual
SELECT
post.postID as postID,
post.title as title,
post.author as author,
post.created as created,
COALESCE(sum(votes.vote), 0) as voteCount,
COALESCE(sum(votes.vote) filter (where votes.username= 'username'), 0) as userVote -- in '' just provide username for current login user
FROM post
LEFT JOIN votes ON post.postID = votes.postID
GROUP BY 1,2,3,4
ORDER BY 5 DESC
Otra forma es usando una combinación izquierda más como la siguiente:
SELECT
p.postID as postID,
p.title as title,
p.author as author,
p.created as created,
COALESCE(sum(v1.vote), 0) as voteCount,
COALESCE(v2.vote , 0) as userVote -- in '' just provide username for current login user
FROM post p
LEFT JOIN votes v1 ON p.postID = v1.postID
LEFT JOIN votes v2 on p.postID = v2.postID and v2.username='username'
GROUP BY 1,2,3,4,v2.vote
ORDER BY 5 DESC