software engineer guidebook pdf github