How to Become a Clinical Developer #doctorswhocode

Before I became a clinical developer I was a relatively technology-naive doctor for 6 years. Sure, I was interested in technology but I couldn’t write a single line of code and I certainly didn’t know what was possible through software, the internet and the coming age of medical technology. For me it all started out as it always does with trying to solve a problem. I was trying to solve the problem of delayed diagnosis for patients with IBS by building an algorithm. This then led to a chain reaction of other discoveries which thrust me down the path towards data science. (Interestingly whilst I did build an algorithm I became instantly dissatisfied with it and thus why I am now obsessed with machine learning.) This is my ‘why’ – I exist to make things better for patients and clinicians through technology and this is my compass by which I make decisions.

That was my situation. The key question you need to ask yourself is: What is my problem? This is the key to unlocking this journey from normal clinician to clinician developer. Now, at this point some people might say why not outsource the solution. This is a very valid point and for an easy problem – like building a landing page for a website for instance you may well want to do this. However, I think that logic is flawed in several ways:

  • Firstly, if you ‘outsource’ things you don’t know how they were built and therefore cannot change them. This means they are doomed to be ‘static’ and static things always atrophy over time – this is a fundamental law of all nature – ignore it at your peril.
  • Secondly, it deprives you of a chance to develop as a person. Developing software is just as much about developing problem solving skills, communication skills, product development skills, business insight and growth/time hacking as it is developing technical skills. If you don’t learn at the start you will pay for it later in other ways.
  • Thirdly, if you start simple and at the beginning, you will grow with your subsequent products. I didn’t start by writing an algorithm. I started by building a blog and experimenting with social media! Why did I do this? It was the best starting point I could think of at the time and it was a great springboard to then learning web developement, then power-use of tools, then coding and then data science! If I had started at the data science end I wouldn’t have gone anywhere.
  • Fourthly, it becomes really expensive. Many startups are bankrupted simply because development costs are so high. Combine this with the fact that most startups fail (because they fail to achieve product-market fit) and you have a recipe for waste. The first bit where you have lots of ideas it both the easiest bit to learn to do yourself and also the most likely to fail. Outsourcing this part of your strategy is likely to end in a costly learning experience rather than a cheap rewarding one.
  • Finally, a lot of things we do simply can’t be outsourced. Healthcare projects by their nature tend to involve confidential-data and the fewer hands involved in the process, plus the more ‘in-control’ you can be as the developer at the source the better you can ring fence your work. Plus there is a massive international shortage of data scientists, and I therefore simply couldn’t outsource what I was working on, and I still can’t. This is why we need clinical developers who have a deep understanding of the problems that only they can solve!

I hope I have convinced you that contrary to popular believe there are some major benefits to getting your hands dirty as a clinician. But now the key question. Where do you start?
This is a question that cannot be answered in a straightforward way. To find the answer you need to start at the end (where you think you want to end up) and work backwards:

  • If your ambition is to build a website to support patient’s with a specific condition, then start by becoming an expert in that condition, joining social media groups and micro-blogging (Tumblr, Twitter etc) – Then when you have a good understanding of what the problems are that they face, build a simple blog of your own on WordPress (I will explain how to do this in a later post, it is extremely simple and requires no coding skills at all). Then focus on building ‘traction’ (again I will explain more about this in future posts). By this point you will have by developed the skills to build a basic site and you can move on to doing more complex things on WordPress (The functionality in WordPress is immense and you can achieve an enormous result without writing a single line of code). Then you need to start learning some HTML, CSS, JS code to take things further (However, many will not want or need to and this is fine as well – you no longer need to code to be a frontend developer. The rules of the game have changed and what counts is results not how fast your page loads.)

  • If your aim is to produce the next killer medical application to make life better for other clinical staff then start by becoming a power user of other people’s applications, take an online course in app design and start simply by building a basic website – This is key (as I will explain in future articles the way to build a killer app is not to start with an app). Then gradually increase the complexity of the site and move towards performing simple backend-functions (Again I recommend WordPress as it means you can obtain results quickly on your own). Then start building a simple web-app (again in WordPress). I suggest you stick with WordPress when you are learning as it is beginner-friendly and you can ‘hack’ quickly (achieve fast results). At this point you need to be thinking about learning either python, ruby or PHP. I suggest you start with python as it is beginner friendly and very readable as well as very powerful. By this point you will have ‘unlocked’ the beginning of the path to becoming a backend developer and you will be well on your way to building the web-app you really desire.

  • If you ultimately want to solve a complex machine learning problem that is specific to your line of work I suggest you start by manipulating big-data in Excel. Then try using some more specialised software. Then learn the programming language Python as this will give you the right kind of mindset to move to the next stage – This will act as a launchpad (I suggest you ignore all other programming languages at the start or you will get confused.) Then do some online-courses (I will recommend which ones later). Then find a dataset that is important to you and start playing with Python packages etc. Go on a bootcamp and start applying what you have learned. One of the features of medical datasets is that they are normally confidential, so I strongly recommend you don’t put them on Kaggle or GitHub (online developer communities) but you can play with other data-sets using these communities.

I hope this makes sense. I plan to write everything in as simple a way as I can because the point of this site is to encourage other clinicians on this journey. If you think I am using language that is too technical please let me know and I will ‘develop’ it.Clinical Developers would like to thank the ‘Python Software Foundation’ for the use of their fantastic logo. We are proud supporters of Python.Originally published on www.clinicaldevelopers.org the network for clinicians who want to develop.

Types of Clinical Developer #Doctorswhocode

 

cdn-logo-anonymous-pro

There are lots of different kinds of clinical developer but they generally fall into 6 different broad disciplines as represented by the different colours of the octagon above. In a way the disciplines are somewhat artificial, as what really matters is getting results and not which broad category you fall into. For instance you cannot be a frontend developer and not be at least slightly interested in user experience design. However, they help to give others some idea of your background strengths when it comes to building a team.

Note: Not all of these roles even require much coding skill. Some developers can get by without coding at all! I will cover this in future posts.

Clinician Frontend Developer

computer

‘Frontend’ generally pertains to the parts of the website that you as the visitor can see. These developers focus on producing visible web presence. They range from those who rely entirely on pre-built products (this is a completely acceptable way to start and can actually get you quite far as I will show you) to those who code in HTML, CSS, Javascript, SQL and often other languages as well. If your main aim is to produce a tangible web-presence then this is the route you want to take at the start. 

Clinician Backend Developer

settings

‘Backend’ is all about the things you can’t see. This type of developer tends to deal with everything from servers and members-only areas on websites, to fully functional web-apps and sometimes whole online platforms. They tend to code in some of the higher-order languages like Python, PHP and Ruby. It is quite difficult to be a backend clinician developer without having at least some basic coding skills. However, there are all sorts of frameworks that make things much easier (I will explain about these as we go on). If you want to build web-algorithms or fully functional websites with members areas etc you will need to know at least some ‘backend’ skills.

Clinician IoS/Android App Developer

smartphone

These clinicians focus on phone apps. These require a whole different framework in order to build. I won’t go into it now but this whole area is changing extremely quickly and standalone phone-apps probably aren’t the best way to start-out if you are starting a business. However, once you have an established product there is definitely sometimes a place for building a ‘phone presence’. Some clinicians have built incredibly successful businesses using phone apps.

Clinician Data Scientist

light-bulb

This is my personal area of interest. The clinician data scientist knows how to use computers to solve complex data issues and build algorithms. They generally code in Python or R and use algorithms to analyse data. Machine learning problems are solved by this group and I believe we are only just at the beginning of seeing the impact data scientists will have on our clinical lives. However, the problems specifically require detailed experience and understanding of the problem in order for them to be solved. This is where the clinician data scientist has a massive advantage.

Clinician UX Specialist

group

UX stands for user-experience design. These clinicians focus on making things flow by reducing ‘friction’ and making things ‘human’ shaped. This can be achieved by relentless testing, market research, attention to detail and most importantly focussing on what would best solve their own problems. The clinician is well placed to be a UX expert as they have deep personal experience of the issues which beset those they care for and fellow clinicians. It requires a very open mindset and is not so much about the technical aspects, although many are very adept coders as well. If anything is going to work it needs good UX to be woven into it. 

Clinician Full-Stack Developer

layers.png

This is the full package. Fluent in many languages they can basically do everything above to a degree but possibly not to the depth of someone well versed in one discipline. If you need one person to test out ideas quickly this person is your best bet. They can also network very effectively with other developers and because they can iterate ‘build’ very quickly they are a real asset to any development team. In the future they will be common but at the moment they are rare.

To find out more visit : www.clinicaldevelopers.org   – signup to our mailing list for updates, tips and tricks.

Why Become a Clinical Developer?

A time is coming when technology and medicine will be synonymous. For the first time in history you can build your own toolbox for almost no money and iterate (build things) really quickly.

earth-globe

At present clinicians are increasingly working with developers to produce technology. However, because there doesn’t yet exist a common language between the two worlds this can result in communication difficulty. Enter the clinical developer who knows the difference between an SQL database and a host but also the real problems on the ground and some of the subtleties of healthcare.

unlock

One way a clinician developer can communicate their ideas is by building a prototype. This prototype can be built quickly and enables the clinician to test their concept quickly but also show a professional developer what it is that they want to achieve. As a beginner the best way to start is by using tools. There are hundreds of these available nowadays and they are the best way to ‘get into’ a field quickly to achieve results at a very low cost. Some of the best tools will be covered in a following post.

cursor

Tools may be all that a clinical developer needs to achieve results, and indeed most will. However, some will want to take things further. This is where you need to decide what kind of clinician developer to become. This will be covered in the next post.

To find out more visit: www.clinicaldevelopers.org – signup to our mailing list for updates, tips and tricks.

The Clinical Developers Network #doctorswhocode

Welcome to the Clinical Developers Network,

11

Who am I?

I’m Matt Stammers and I just founded the clinical developers network.

I am a Gastroenterology registrar currently working in the UK NHS full-time. I love my specialty and I love the NHS, but I am persistently frustrated by IT issues both within, and outside of the system.

For a long time I have looked on as successive groups have tried to change things without much success. There are many reasons why these projects normally fail – (lack of lean thinking/planning, lack of cooperation/joined up thinking, low involvement of users and lack of attention to user-requirements, etc.) However, if I was to pinpoint the single biggest reason that would be: A lack of engagement from clinical staff. They are not engaged because they were not involved in the project development, they don’t understand how ‘geeks’ think and fundamentally the project wasn’t designed with them in the forefront of the developer’s minds.

This is a major challenge to both software designers and clinicians – until it is addressed there will continue to be failure after failure in implementation.

Enter: The clinical developer

clinical

The clinician developer is a hybrid-doctor who understands both worlds and knows how to speak to both sides. Now the clinical developer comes in many shapes and forms. Some like me love the technical things and machine learning, others love UX and design, others just love building websites and some don’t actually code themselves but they use tools to develop. This is for the majority the best way to start.

After all, the clinician developer doesn’t seek to displace full-time developers but rather to bridge the gap. What does the clinician bring that no other can? A deep understanding of the problems! Only clinical staff have this perspective.

So if you want to find out more then head over and sign-up to join the community. Tell me what you think and most importantly tell us about who you are and what your up to!

Together we can #change #healthcare for the better

11

To find out more visit www.clinicaldevelopers.org – signup to our mailing list for updates, tips and tricks.