Mid/Senior Research Software Engineer (Python)
Working on Mobile Distributed Databases and Web Technologies
Location: Chilworth, Southampton, UK
Salary: £39,992 per annum
Full Time Fixed Term for 30 months
Closing Date: Saturday 07 April 2018
Interview Date: To be confirmed
This role will primary focus on development of an eventually-consistent distributed database/web/ORM framework, to enable the fast development of database backed web applications to run on “sometimes connected” networks of portable micro-servers (i.e. BluHubs). These portable micro-servers: run their own local LAMP stack which host a number of local PHP and Flask web applications, include a Wi-Fi hotspot that allows users to locally connect to and browse these web-apps, communicate peer-to-peer via an ad-hoc Wi-Fi mesh network, and can communicate with the cloud when fixed line, Wi-Fi, or 3G connectivity is available. Applications built on this framework would be hosted on these micro-servers so that they can be used in a standalone way, but would also synchronize their data models with other micro-servers and/or the cloud when in range/connected.
The aim of developing the framework will be to simplify/automate the task of synchronizing the data between instances of web apps hosted on the micro-servers, and therefore simplify and accelerate development of apps that will run in this context. The role will therefore include background research on existing methods for data synchronization, development of proof of concepts, and then modification/development of a reusable framework (e.g. SQLAlchemy) for developing database backed web apps in this distributed/mobile/sometimes-connected environment. Once developed, this framework will be used to develop a web application for storing patient records to run on a mixture of fixed and mobile BluHubs, to support rural prosthetics health workers in Cambodia.
This role is primarily a pure software development role, which will include elements of research and innovation around mobile database synchronization and some related security concerns. Innovation associated with the project may well be patented and this employee would take an active role in contributed to this IP protection process. Although advertised in an academic context and as an employee of the University of Southampton, the successful applicant will be effectively working as a fulltime Software developer, and will mostly be based with BluPoint Ltd working closely with their software development team at the Science Park in Chilworth, Southampton (i.e. 4-days a week). Later in the project research papers and presentations will be made, but this should only require limited involvement from this role.
The primary development language will be Python, though the ability to pick up other languages & technologies quickly is highly desirable. Experience in using a range of database systems (including SQL and NoSQL), data modelling languages/frameworks, and web frameworks is highly desirable. Furthermore, any knowledge of relevant theory around distributed databases, distributed versioning, eventually consistent databases, transactional systems, and/or domain specific languages would also be helpful, though not essential.
Applicants don’t have to be from an academic background (although some experience of academia would be helpful for interactions with academic project partners), but should have strong experience in software development. The primary aim of this role within the project is to develop real working reusable software, where others in the project will be more focussed on academic writing. There may be a need to contribute to writing related patent applications, and some contribution to draft publications but this role would be primarily focussed on developing working software/code working closely with the world class development team at BluPoint.
This role would also include an exciting opportunity to travel to Cambodia, and to work with the people who will be using the system in country.
For more information please visit: https://www.blupoint.org/job/senior-python-sotware-engineer/
Please note: this role was previously advertised as a Postdoc role, but was taken down and has been revised to encompass both research programmers and/or fellows. The closing date for applications is now 7th April.