The Software Engineer works with a team of other software engineers, network and systems engineers to design, implement, and deploy software which meet customer's requirements, scales easily, removes the limitations of traditional networking solutions, and supports deployment in highly available environments. The Software Engineer participates and lead in architecture and design of various software components focused on creating applications that leverage technologies such as virtualization, micro services, SDN, NFV, and Big Data platforms and technologies. They work on technical assignments that are semi routine or greenfield in nature, but recognizes that need for occasional deviation from accepted practice. They normally follow established procedures on routine work and require instructions only on new assignments.