Quick Overview
Job Description
Role: Senior Automation Engineer (Python / Django API Development)
Location: Remote
Duration: 6+ Months Contract
Role Summary:
We are building self-service endpoints that wrap the Cisco Network-as-Code (NaC) process, which runs as Terraform-based GitLab pipelines, to give customers a consistent intake experience in place of manual handoffs. Requests are validated against various sources of truth, including Nautobot and IPAM. We are seeking a senior engineer to assist in the design and delivery of these Django services using integration-test-first TDD and sound software engineering principles.
Role Responsibilities:
- Design, build, and maintain Django REST APIs that wrap the Cisco Network-as-Code (NaC) process as a customer intake service, covering request submission, validation, approval, and pipeline-driven fulfillment.
- Practice integration-test-first TDD: start each feature with failing API-level integration tests (Django/DRF test client against a real test database), then drive the internals with focused unit tests, keeping business logic thoroughly covered.
- Help define API contracts (schemas, versioning, error models, idempotency) and publish clear OpenAPI documentation.
- Model intake data and workflows in Django (models, serializers, validators, service layer) with clean separation of concerns.
- Integrate with GitLab to turn validated intake requests into NaC changes: generate YAML data model updates, open merge requests, trigger and monitor pipelines via the GitLab API and webhooks, and report status back to requesters.
- Integrate with ServiceNow and other enterprise systems, using mocks and contract tests to isolate external dependencies.
- Integrate with various sources of truth, including Nautobot and IPAM: validate intake requests against authoritative data (IPs, prefixes, VLANs, devices) and write results back via their APIs (e.g., Nautobot REST and GraphQL), avoiding duplicate data and drift.
- Build and optimize Python scripts and Ansible playbooks supporting server onboarding and data center provisioning workflows.
- Collaborate with Software Engineers and UX teams to align backend APIs with the self-service portal.
- Contribute to the service's CI/CD pipeline in GitLab: automated test gates, linting, static analysis, coverage thresholds, and repeatable, low-risk deployments.
- Implement robust error handling, input validation, logging, and authentication/authorization.
- Apply Agile and DevOps practices: sprints, backlog grooming, code reviews, and pair programming.
- Contribute to architecture decisions and engineering standards, mentor engineers, and share knowledge through documentation and demos.
Skills Required:
- Advanced Python with production Django and Django REST Framework experience (serializers, viewsets, permissions, ORM)
- Test-driven development with an integration-tests-first approach, plus unit testing (pytest or Django TestCase, APIClient, fixtures/factories, mocking, code coverage)
- REST API design: resource modeling, versioning, pagination, idempotency, error handling, and OpenAPI/Swagger documentation
- REST integrations with GitLab, ServiceNow, and enterprise platforms
- Nautobot integration (REST and GraphQL APIs, e.g., pynautobot) and IPAM concepts (prefixes, IPs, VLANs, VRFs)
- Relational databases (e.g., PostgreSQL)
- Git/GitLab, merge request workflows, and GitLab CI/CD pipelines
- Ansible and YAML for provisioning and onboarding automation
- Networking fundamentals (VLANs, port configs, provisioning) and familiarity with Cisco network environments
- Infrastructure as Code (IaC) best practices, including YAML data-model-driven configuration
- Engineering Principles & Methodology
- Software engineering principles: SOLID, DRY, separation of concerns, clean architecture, refactoring, and technical debt management
- Integration-first testing strategy (integration tests at the API boundary, supported by unit and contract tests) enforced through CI, with GitLab, Nautobot, and ServiceNow interactions stubbed or mocked at the client boundary
- Agile development (sprints, backlog management, standups, retrospectives)
- DevOps practices (CI/CD, automation frameworks)
- Clear technical documentation, including API and architecture documentation
Soft Skills:
- Strong collaboration in cross-functional Agile teams
- Effective communication with engineers and stakeholders
- Problem-solving and troubleshooting mindset
- Adaptability to changing priorities
- Ability to contribute to technical decisions and mentor through pair programming and code reviews
Preferred/Optional Skills:
- Understanding of Terraform principles and Cisco Network-as-Code (declarative configuration, state management, idempotency, modules, plan/apply workflows)
- Nautobot app/plugin or Jobs development (Nautobot is built on Django)
- Asynchronous task processing (e.g., Celery) and message queues
- Docker/Kubernetes experience
- Monitoring/observability tools
Similar jobs
- RA
Site Reliability Engineer
NewRaydar
United States🇺🇸Remote23 hours agoNode.jsHelmKubernetes+3Technology - RL
Lead ForgeRock Platform Engineer (IAM)
NewResource Logistics
San Antonio, TX🇺🇸On-siteYesterdayMicroservicesSpringSpring Boot+14Technology - GE
Site Reliability Engineer
NewGenesis10
Jersey City, NJ🇺🇸$60 - $68/hrHybridYesterdayLoad BalancingSplunkAzure+10Technology - ES
Senior Data DevOps Engineer with Azure
EPAM Systems
United States🇺🇸Hybrid5 days agoMLOpsAzureData Pipeline+1Technology - QS
Palantir Platform Engineer with Security Clearance
NewQuantum Science Solutions
Herndon, VA🇺🇸HybridYesterdayETLPythonTechnology - CT
Azure platform engineer
NewCIS Technologies Inc.
United States🇺🇸RemoteYesterdayAzureDNSGitHub Actions+2Technology