Software Developer (2 levels)

Farringdon James
10 Oct 2018
14 Oct 2018
Contract Type
Full Time

Location is either Bodmin, Cornwall or Plymouth, Devon

Please note there are 2 levels available:

Mid level Developer--£25-£32k

Senior level Developer--£32-£40k

Main Purpose of Job / Key Tasks

* Can contribute simultaneously to different projects.

Is capable to work simultaneously in different projects with little impact due to context switching. Uses it to its advantage in order to utilise dead times and or blocks in projects.

Efficient in time management and task prioritising.

Can work towards set milestones and targets and pursues them. It 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 its development.

* Implements and extends code reflecting the requirements and following the design given. Proficient at one language and capable of writing quality code in different languages. (No bugs)

Commercial/industrial proven experience has given him/her the necessary knowledge to write reliable, fault tolerant and efficient code. Has processed lessons-learnt through his/her career and has built a solid base of knowledge that places him/her in a comfortable position when delivering code into production environments.

* Writes production quality robust code and understands interaction, races and emergence. (No bugs)

Visualises his/her code as part of a larger system, not in isolation, and considers and controls complex non-linear effects from the code in the solution.

* Is comfortable with parallelisation and asynchronous flow. (No bugs)

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 use when writing code, thinking in the solution as a whole.

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.

* Identifies and solves logical problems and can define/map business logic to algorithms and functions robustly.

Has developed an analytical thinking process whereby is capable of understanding quickly business processes and mapping 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.

* Coaches juniors and transfers knowledge.

Under supervision, can coach more junior team members and assists 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. Identify performance problems in more junior developer and helps the peer to overcome them.

* 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 its own code or in someone else code. Can proof without loss of generality a given unit.

* Is comfortable with compilers and linkers.

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.

Knowledge & Skills

The post holder should have relevant qualifications in computer science.

As a snapshot, Microtest is currently interested in the following technologies

* Object Oriented (class and prototype based), Event-Driven, Imperative, Procedural & Declarative programming paradigms

* C, C++, C#, JavaScript, Python, PHP, CSS, HTML, XML, Json

* Dependency injection.

* Have a good understanding of unit testing.

* 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.

Good verbal and written communications skills are necessary. Having previous experience of dealing with clinical safety would be highly advantageous

Other Company benefits

* 28 Days annual leave (inc. Bank Holidays) increasing to 33, pro-rata.

* Pension scheme,

* Health Care Plans,

* Salary sacrifice bicycle schemes

* Plus many more

Similar jobs

Similar jobs