Learning embedded programming as a software engineer