Python/Linux Software EngineerApply Now
- Employment Type: Full Time
- Location: Bristol
- Date Added: November 2020
We are looking for a technically exceptional Software Engineer with Python, Linux and Database experience to join the Blu Wireless software team on a full-time permanent basis.
About the Team
The software team at Blu Wireless designs and develops production-quality data-plane and control-plane software for our innovative wireless system products. The work ranges from ground-up embedded firmware for a multi-core baseband modem, through wireless networking system products based on an ARM-Linux platform, all the way up to cloud-based network management services.
The team consists of around 20 software engineers, based in Bristol, England, and in Hyderabad in India.
The team is responsible for the development and delivery of complete ARM-Linux-based platform solutions for demonstration of our technology, as reference designs for customers, and as integrated system products targeted at wireless networking applications.
About the Role:
The Blu Wireless systems products are manufactured by a subcontractor in the Far East. The production process at the subcontractor (software and firmware programming, unit test and calibration, progress tracking) is managed using software provided by Blu Wireless, and the purpose of this role is to develop and enhance the production software and to support its use at the subcontractor.
The production support software is written in Python; it makes use of the tkinter library framework for GUI programming and PostgreSQL as a database. Future developments are expected to use the Django framework for a Web UI.
While being part of the Blu Wireless software team organisationally, you would work primarily with the production engineering team in Blu Wireless, turning new feature requests into quality deliverable software.
As well as software skills in Python programming, the ideal candidate would have experience of Linux system administration and also sufficient knowledge and understanding of electronic device manufacturing to be able to work with production engineers to help define software requirements and also to support the use of the software in production.
Accountabilities in the Role:
- Working with our production engineering specialists, you will analyse system requirements and define software specifications.
- You will be responsible for the development of specific software extensions and enhancements, where necessary identifying and making use of open-source software components and frameworks.
- You will be responsible for preparing, testing and releasing new versions of the production software.
- You will be responsible for supporting the use of the production software at the manufacturing subcontractor, including some administration of the network of Linux PCs on which the software operates.
- You will be expected to take full technical and timescale responsibility for your tasks.
- You will be expected to follow our software development quality processes, and to participate in reviewing and improving our working methods.
Desired Technical Background and Skills:
- A degree in a relevant subject (Electronic Engineering, Computer Science, Software Engineering) with significant software content, or other numerate degree (e.g. Mathematics or Physics) combined with relevant software engineering experience.
- Experience of programming in Python, with a demonstrated interest in producing clear specifications, good quality code, and a systematic approach to testing and performance evaluation.
- Experience of programming with databases (PostgreSQL or MySQL).
- Fluency with Linux command shells and shell-scripting.
- Experience of working in a product software team using software engineering tools, such as: version and configuration management systems (preferably Git), build systems (such as Jenkins), defect tracking (Mantis, Jira), code quality measurement and test coverage tools.
- Ideally, some familiarity with software system analysis and design techniques, such as data flow diagrams and database schemas.
- Ideally, some experience of developing software for Linux-based embedded products (e.g. networking equipment or set-top-boxes).
- Ideally, some knowledge of IEEE 802.11 wireless systems and RF concepts. If not, motivation and interest to learn quickly on-the-job.
Desired Personal Qualities:
- A good communicator and a collaborative team member.
- Able to take responsibility and ownership of tasks and see them through to an agreed timescale.
- Flexibility to take on other tasks and responsibilities if needed to meet team and business needs in a challenging commercial environment (e.g. working out of normal hours to solve urgent problems or to join calls with international customers or business partners).
- A thorough, persistent and focused approach to problem-solving.
- Enthusiasm for ongoing learning and personal development to improve technical and non-technical skills and knowledge.
Please fill in the form and attach your CV to apply for this role. Someone will be in touch if you’ve been chosen to come in for an interview.