This position is available either in the Plymouth or Bodmin office and is for either a Mid-Level or Senior Developer, with a varying salary bracket of £25 to £32K or £32 to £40K dependent on experience. As a Software Developer, you will be contributing to a multitude of projects, working towards tight deadlines. Good verbal and written communications skills are necessary and having previous experience of dealing with clinical safety would be highly advantageous. You will be responsible for ensuring that developed software meets design criteria; in line with performance indicators, quality standards, statutory regulations and to agreed timescales.
Problems you will address involve the interpretation of cases and evaluation of requirements and as such, frequent interaction with colleagues across all departments will be required. The majority of your contact will be in liaison and consultation with management across the business. There is also a requirement to devise solutions involving some originality, drawing both on procedures and acquired knowledge and skills. Most software development within the company follows a ‘Lean and Agile’ methodology, which places particular emphasis on good communication within a close team. Externally, you will have regular contact with General Practitioners, Clinicians, Health Authorities and associated personnel at all levels.
- Is comfortable with parallelisation and asynchronous flow
- Identifies and solves logical problems and can define/map business logic to algorithms and functions robustly
- Capable of working simultaneously on different projects, with little impact due to context switching, utilises dead times and or blocks in projects
- Efficient in time management and task prioritising, regularly achieves targets and will promptly identify deviations, acting accordingly to correct them
- Assists in the design of libraries and or applications. Can extent high level designs further in granularity of details satisfying specifications. Will likely pass them to more junior members of the team and supervise development
- Implements and extends code in production environments, reflecting the requirements and following the designs given. Proficient in at least one language and capable of writing; quality, reliable, fault tolerant and efficient code in different languages, to ensure no bugs.
- Writes production quality, robust code and understands interaction, races and emergence. Visualises his/her code as part of a larger system, not in isolation and considers and controls complex, non-linear effects from the code within the solution
- Can design parallel code, asynchronous flows and synchronisation. Has control over it and can apply it where necessary to improve performance, concurrency and or user’s product experience
- Is aware of and controls memory and resources used when writing code. Visualises his/her code in interaction with hardware and network limitations, not in isolation and considers and controls the use of resources with the objective to optimise the execution in the production environment
- Has developed an analytical thinking process, with the capability to understand business processes and map them to logical or procedural workflows. Can design algorithms and functions that reflect such workflows. These skills allow him/her to rapidly identify potential problems in existing code
- Under supervision, can coach more junior team members and assist more senior team members in progress reviews and evaluations. Can identify knowledge gaps in more junior developers and will actively try to fill them and or indirectly motivate the peer to work on them. Oversees their progress and motivates them to continue growing
- Understands data structures and can design them for general uses. Masters serialisation of data for perpetuation and transport. Has a sound understanding of data structures and can design them robustly to satisfy general requirements. Has a very sound understanding of data serialisation in different formats and applies them as necessary considering their relative advantages
- Understands and employs Unit testing when necessary. Is comfortable writing unit tests in his/her own code or in someone else’s code
- Understands compilers and linkers and can solve/debug building problems easily (eg. dependencies, recursive dependency, etc)
- Understands document structures of solutions. Can design efficient document structures for new solutions written in different languages. Optimises versioning in repository, creates easily understandable (by third parties) structures
Skills & Technologies
- Unit testing
- MySQL and MSSQL
- Dependency injection
- Object Oriented (class and prototype based), Event-Driven, Imperative, Procedural & Declarative programming paradigms
- Data structure design, modelling and representation. Information metrics, graphs and trees and algorithms. Data perpetuation and transport
- Windows, Linux and Unix OS. Windows desktop UI programming
- Be familiar with Jira, Confluence, Mantis, Git, CVS
- Be familiar with MVC programming for desktop and web
- Frameworks: .NET, Mono, QT, Laravel, AngularJS, Sencha, Ext JS
- Asynchronous processing and parallelisation
- Revision control and issue tracking
- Waterfall, agile and lean development
To be considered for this role, you should have the relevant qualifications in computer science. You will report to the Application Delivery Manager / Systems Architect. This role is office based with occasional site visits to client premises. You will be required to work to strict, internally or externally imposed deadlines. You will also be responsible for any computer systems/equipment used or evaluated and for maintaining the integrity and confidentiality of patient information that may be encountered.
If you have the experience and are currently looking for a new challenge, then please submit an up to date CV by using the ‘apply’ button below. For an informal chat, please phone 01752 252533 and ask for Rachel V. Many thanks for your interest.