tech stack analysis