Hiring manager reached out, did an initial HR screen, met with the hiring manager, then a technical interview following a programming assessment. Then I waited for ages and was only formally rejected after I followed up, having received an offer elsewhere.