Functional Programming C# / Haskell Senior Software Engineer - remote

Medical Management Systems
Posted 4 years ago £60k - 90k (British Pounds)

Meddbase is a Saas healthcare web-application that runs all aspects of a medical practice (from GP practices up to large hospital groups). Our application includes:

  • Patient medical record system
  • Comprehensive consultation suite
  • Document management
  • Scheduling
  • Accounting
  • Email
  • Social network
  • Task management
  • Referral management
  • Reporting and query system for analytics
  • Clinical text analysis using NLP
  • Collaboration system
  • Practice networking
  • Patient portal
  • Occupational health portal
  • PACS system (MRI/X-ray/Ultrasound)
  • And much more...

We have a very relaxed working environment that is more akin to a start-up than a company that's been running since 2005. We have a team of 20 developers who are very capable and committed, there are no office politics or any of that nonsense, it's a very collaborative environment. We try to keep quite a flat structure where we expect developers to take responsibility for dealing with everything in their purview (with the CTO there as advisor if needed). This has allowed us to keep the team small and efficient.

Obviously with web-application development there's a reasonable amount of CRUD work, that's a given. But we have also developed interesting in-house tech of our own (distributed databases for document storage, natural language processing for clinical text parsing, UI frameworks, DSLs, distributed config systems with PAXOS, language-ext, and echo-process, to name a few). We run on our own machines in high-security data-centres rather than on AWS/Azure, and so we have also developed our own in-house solutions for deployment, etc. We are likely to become a hybrid solution over the next few years: cloud + our own servers.

The people we need are 'self starters' and are happy to work on any part of the stack, from UI, to back-end, to data-centre automation, services etc.  You must be prepared to develop code using the functional paradigm - this is super important, if you think Martin Fowler is a god, please don't apply.

We need creatively minded individuals who can solve unique problems;not just with code problems, but in improving healthcare too. Healthcare professionals are often not very tech-savvy, and are therefore either scared or incapable of communicating with tech-people. So we need programmers that can hear a real world problem and think creatively and with empathy for the end user.

You should have significant C# and web-development experience (the web experience doesn't have to be with .NET, we use ASP.NET for our 'transport' mechanism only - we don't use any of the MS frameworks (other than the .NET BCL) -- they change so often, and when we started writing the app in 2005 they were mostly awful). Haskell and F# experience is useful but not essential. We have a number of micro-services and libraries written in F# and will be implementing some of our new key architecture in Haskell If you don't have functional language experience, you will be expected to learn it and use it (the core application is C#, so that will give you time to get up to speed anyway).

If you know [Language-Ext](https://github.com/louthy/language-ext) (and understand why it exists) then that will help, as we use it throughout the ecosystem to bring robustness. SQL Server is our primary database solution, so experience with that is essential - but we also use Postgres. If you have any Postgres experience that would be valuable.

We don't care about what degree you have (or don't have), but we do want to see experience and a passion for what you do. Github projects are incredibly helpful for that, but any examples of work are also valuable. Written and spoken English must be good and you must be a UK resident and have the right to work in the UK.

We offer a very attractive salary, employee profit sharing, and a relaxed working environment - working on proper technological solutions. You will not be forced/expected to work long hours as so often happens in software (in fact we actively discourage it). Remote working is also an option, most of the engineers work remotely (but this must be after an initial in-office trial period of one month).  Remote workers are expected to visit the office at least once per-month for the development team meeting, which is where the developers all get together to talk about interesting things (not always work related).

Skills &Requirements:

  • Significant experience in C# and evidence of a varied career in software development.
  • Nice to have: Haskell or F# experience (or any functional language).
  • A willingness to use the functional language paradigm rather than OO.
  • SQL Server / any relational database experience.
  • Web application development experience.