Senior Software Development Engineer
full-time
The ideal candidate is an experienced Senior backend and integration-focused software engineer with strong Python/PHP, API, SQL and Linux skills who is comfortable working close to production infrastructure.
They should be confident operating at the command line, troubleshooting applications and services on Linux, and capable of becoming productive within the team's FreeBSD-based production environment.
They should be able to move between software development, automation, operating systems, troubleshooting and systems integration, while understanding enough about ISP and Broadband services to work effectively with network and platform engineers.
The successful candidate will be an experienced software engineer capable of working across application development, systems integration, automation and production Broadband platforms.
Core technical requirements
Strong software development experience in Python and/or PHP, with Python considered an important capability for future automation and integration development.
Strong understanding of object-oriented programming, software design principles and maintainable code development.
Experience developing and consuming REST APIs and integrating with third-party platforms and services.
Strong working knowledge of JSON, with practical exposure to XML and other structured data formats advantageous.
Strong SQL skills and experience with relational databases, particularly MySQL/MariaDB.
Strong practical experience working with Linux operating systems in development and production environments.
Good command-line and shell skills, including:
filesystem and permissions management
process and service management
package management
log analysis
networking and connectivity troubleshooting
scripting and task automation
Experience with FreeBSD is highly advantageous. The Broadband estate includes production services running on FreeBSD and the candidate should be comfortable learning and operating across both Linux and BSD environments.
General understanding of Unix-like operating system concepts, including services/daemons, permissions, users/groups, networking, filesystems and package management.
Experience with Git-based source control, preferably GitLab, including merge requests, branching strategies and collaborative code review.
Practical understanding of CI/CD pipelines, automated testing and controlled deployment into production environments.
Ability to troubleshoot production applications across:
application code
APIs and integrations
databases
web/application servers
Linux / FreeBSD operating systems
network connectivity
Experience developing and supporting business-critical production systems, including incident troubleshooting and root-cause analysis.
Ability to understand existing codebases, including legacy applications, and progressively modernise them without disrupting live services.
Experience with secure software development practices, including input validation, secrets management, authentication, access control and dependency management.
Strong technical documentation skills, including documenting APIs, application behaviour, integrations and operational procedures.
Broadband / ISP knowledge
The candidate does not need to be a network engineer but must be comfortable working in a network-centric environment.
Experience or understanding of the following would be highly advantageous:
RADIUS / AAA concepts, including authentication, authorisation and accounting
ISP subscriber provisioning and lifecycle management
Broadband technologies such as fibre, LTE, 5G and fixed wireless access
Customer and FNO integration models
IP addressing, DNS, HTTP/S and basic TCP/IP troubleshooting
Subscriber usage, quota and package management
Network automation and provisioning workflows
Working with network engineering teams on service activation and troubleshooting
Automation and integration
The role will be expected to contribute significantly to automation and reduction of manual operational processes.
Relevant experience includes:
Python-based automation
Shell scripting
API orchestration and systems integration
Scheduled/background processing
Data transformation and validation
Workflow automation
Integration with customer, FNO and internal NTT DATA platforms
Event-driven or queue-based processing
Development of operational tools used by Engineering and Support teams
Experience with tools such as Ansible or similar automation platforms would be advantageous.
Web and application technologies
Experience in some of the following would be beneficial:
PHP 8+
Python frameworks such as FastAPI, Flask or Django
JavaScript / TypeScript
HTML/CSS
Node.js
Nginx and Apache
PHP-FPM
Application deployment and troubleshooting on Linux and FreeBSD
Exposure to mobile application development or mobile application integration would be advantageous
Strong backend capability is more important than front-end specialisation.
DevOps and platform engineering
Exposure to the following would be advantageous:
GitLab CI/CD
Docker
Kubernetes / OpenShift
Ansible
Linux and FreeBSD package management
Shell scripting
Logging and monitoring platforms
Prometheus / Grafana
Secure software supply-chain practices
Automated testing and deployment
Given the current Broadband development structure, the candidate must be capable of operating independently and providing technical depth within the team.
The successful candidate should be able to:
take ownership of a technical requirement from design through to production
break complex requirements into deliverable technical components
review and improve existing code
conduct meaningful code reviews
troubleshoot complex production issues across application, database, OS and network layers
make sound technical design decisions
estimate development effort and identify delivery risks
work across multiple concurrent customer and platform priorities
mentor less experienced developers
contribute to development standards and engineering practices
document systems sufficiently to reduce individual knowledge dependency
Advantageous experience
The following are beneficial but should not be treated as mandatory:
FreeBSD administration and development
Mobile application development, including native or cross-platform mobile applications
Experience with mobile frameworks such as Flutter, React Native, Kotlin, Swift or similar
Integration of mobile applications with backend APIs, authentication and push-notification services
Java, C# or Node.js
PostgreSQL or Microsoft SQL Server
Redis or other caching technologies
Kafka or messaging platforms
AWS or other public cloud platforms
YANG, NETCONF, RESTCONF or Cisco NSO
Network automation
Telecommunications or ISP platform development
ESRI / GIS integrations
TR-069 / TR-369 / device-management platforms
Agile / Scrum delivery environments