Use named argument

Negative offsets into @_ aren't recommended.  The position or number
of callback parameters may change, and code using unnamed offsets may
behave odd rather than fail outright.  The constants exist so that @_
may change from time to time without breaking your code.
use meaningful useragent name

I wouldn't use POE::Component::Client::HTTP's default alias.  It's
deliberately silly to persuade serious code to change it.  And nobody will
know what the post() is doing unless there's an antecedent for the alias.
use delay instead of alarm

POE::Kernel->delay is almost exactly the same as POE::Kernel->alarm(time()
+ $something).  delay() uses Time::HiRes::time internally, for more
precise timing.
factor out request method

Since "_start" only exists to transfer execution to "tick", one can define
a named callback and use it for both events.  You don't often see this,
but POE supports it by design.