High frequency trading explained by a hft software developer