Job responsibilities
- Executes creative software solutions, design, development, and technical troubleshooting with ability to think beyond routine or conventional approaches to build solutions or break down technical problems
- Develops Automation Tools and creates and maintains applications for network automation, including configuration management, monitoring, and troubleshooting tools.
- Documents software design, code, and usage instructions to facilitate maintenance, resiliency testing and future development.
- Integrates software solutions with various network devices and systems using APIs and network protocols.
- Collaborates with Network Engineers and works closely with Network Engineers and Product Owners to understand requirements, develop solutions and ensure seamless integration of software tools.
- Identifies opportunities to eliminate or automate remediation of recurring issues to improve overall operational stability of software applications and systems
- Leads evaluation sessions with external vendors, startups, and internal teams to drive outcomes-oriented probing of architectural designs, technical credentials, and applicability for use within existing systems and information architecture
- Conducts thorough testing and validation of developed software to ensure it meets functional, security and performance requirements.
- Adds to team culture of diversity, equity, inclusion, and respect
Required qualifications, capabilities, and skills
- Formal training or certification on software engineering concepts and 5+ years of applied experience
- Hands-on practical experience delivering system design, application development, testing, and operational stability
- Advanced in one or more programming language(s)-python. Extensive experience with Python development and ability to write loosely-coupled, modular and readable services using best-in-class architecture patterns (e.g. adapter pattern, unit of work pattern, repository pattern) with a test-first approach.
- Proficiency of networking concepts, protocols (TCP/IP, DNS, DHCP) and technologies.
- Experience with RESTful APIs, JSON, and XML for integrating software with management systems and providing Engineer CRUD capabilities to intent data.
- Proficient in all aspects of the Software Development Life Cycle
- Proficiency in working with Linux operating systems, including scripting and basic administration tasks.
- Experience with version control systems, particularly BitBucket and Git, for code management and collaboration and familiarity with network automation tools, such as Ansible.
- Experience in various testing types (unit testing, integration testing, performance testing, post-validation testing, Test Driven Development (TDD), Behavior Driven Development (BDD), cyber testing, resiliency testing)
- Demonstrated proficiency in software applications and technical processes within a technical discipline (e.g., cloud, artificial intelligence, machine learning, mobile, etc.)
- Experience with container technologies such as Kubernetes and Docker.
Preferred qualifications, capabilities, and skills
- Experience with databases (SQL NoSQL) for storing and retrieving network configuration and performance data.
- Understanding of DevOps principles and practices, including CI/CD pipelines.
- Alerting and Monitoring: Proficiency in setting up alerting in monitoring tools like Grafana, Splunk, Jaeger, Dynatrace, and OpenTelementry.