Codethink helps York Instruments to deliver world-beating medical brain-scanner


Originally posted here.

Codethink partnered with York Instruments on a project to develop a new Magnetoencephalogram (MEG) scanner to replace their existing apparatus. This is a neuroimaging device which maps brain activity by recording magnetic fields which are produced by naturally occurring electrical currents in the brain.

The problem at the time was that the capture-and-compute brain of the original scanner was difficult to repair or replace if there was a failure. This was due to the unavailability of the original equipment manufacturer (OEM), resulting in a lack of available parts.

Within the main apparatus of an MEG, superconducting quantum interference devices (SQUIDs), are used to measure very subtle changes in magnetic fields influenced by brain activity. These SQUIDs require super-cooling, commonly with liquid helium, which means that the apparatus to store them needs to be substantial. Liquid helium is also very dangerous to humans so a high level of due diligence is required for the safety of anyone interacting with the scanner. In their new MEG system, York Instruments replaced the SQUIDs used with Hybrid Quantum Interference Devices (HyQUIDs), which are able to operate at higher temperatures than SQUIDs and can operate more accurately. This has positive implications for the safety and cost of the MEG, as less coolant is required.

In this project, Codethink worked on both hardware and software, in a range of different areas including upgrading the Linux kernel used, assisting with updating U-boot, working on the in FPGA and CPLD firmware, working on the core data transfer protocols, the sample data multiplexer, and real-time-displays as well as further software assistance and consulting.

Codethink engineers worked on the full low-level command and control system for synchronising and monitoring a distributed network of data capturing systems. Throughout our time working with York Instruments, Codethink engineers ensured a high standard of code and documentation was maintained.

The development of York Instrument’s main data acquisition pipeline and a variety of GUIs was done in tandem with the hardware design in order to closely integrate the two. One of the most challenging aspects of the work involved developing a system that ensures hundreds of sensors, that were all connected to different computers, actually took measurements within microseconds of each other. Engineers managed this by means of a pair of counter rotating, fibre-optic loops, with a precise calibration algorithm.

The sensors send thousands of samples of data per second over the network to a single system. This system is required to rapidly match up each incoming sample so that all sample numbers are grouped together. Due to the volume of data that the system is required to match together and the minimal amount of time available to do it in, the multiplexer needs to be very efficient. Once the data has been gathered and grouped, it saves samples to HDF5 format and also multicasts to a LAN for real-time data consumers to present or process captured data in real time.

“The real time display we wrote implemented a noise cancellation system. The sizes of the magnetic field fluctuations caused by brain activity is tiny compared to electromagnetic noise created by external sources, such as a passing car. The noise cancellation system worked by having some extra sensors in the magnetically shielded room which were far enough from the head of the patient that they would not pick up the brain activity, only the noise. And then the readings for these were used with the some weightings to subtract the noise from the sensors around the brain.” – Michael Drake

Codethink’s engineers enjoyed working on a medical product, contributing to something that would, in turn, help others.

5 reasons you should re-do your first software CV


As of writing, I’ve spent the last 18 months of my life mainly looking over CVs.

I’ve found that a lot of CV’s don’t earn an interview for a very simple reason:

There isn’t enough time spent on them.

Okay, this isn’t very helpful so I’ll break down my thoughts…

  1. You haven’t elaborated on your skillset

If your skills section looks like this, you need to elaborate:

Programming languages: C, C++, Java, SQL, FORTRAN, Haskell, Python, Matlab.

Instead, create a section for projects that you’ve done, tell me what the project was, what you did, and the technology that you used to do it. This will look a lot more structured and is therefore easier to digest.
(Brownie points if you include a link to your work)
(If you were working in a team at a hackathon, you should be specific about the role you played)

Also, despite common advice from educational institutions, there’s no general rule on CV length.

You shouldn’t sacrifice important information to fit the traditionally accepted one/two page criteria

2. I can’t tell what you want

The recruitment process is two way thing.

I state what I want to see in an applicant on a job advert.

When replying to the job advert, I need to know that it’s what you want.

In essence, I need to be able to see the match there.

If I can see that you’ve demonstrated your interest in the job and your passion for the field you want to go in to, I’m more likely to think you’re going to stay in the job longer. If that’s the case, you’re doing well.

By articulating your passion, interest and drive to succeed in your field, you’re creating positive signs for the company you’re applying to.

3. It doesn’t stand out from the crowd

This is important for graduates.

You need to think about what each CV will look like that goes forward for a job.

As most graduates receive similar briefings on producing a CV, from my experience, a lot of the resulting applications tend to look the same.

If you’ve done the same course, with the same modules as someone else and both are formatted it in LaTeX over one page, they’re going to look very similar.

If your CV looks the same as all of the others, it’s more difficult for it to stand out.

In the case of the example, where the majority produce a one page CV, make yours two and include a cover letter. If you decide not to format your CV using LaTeX, use it for your cover letter instead and you’re not losing out.

4. You’ve not tailored your CV to the job you’re applying for

A commonly distributed tip for writing a CV is to include in your professional profile section that you’d specifically like to apply for a job at the company you’re applying to.

If you don’t change that between applications though, it doesn’t look great.

If you send the same CV out to every company that you apply for, it’s likely that you’ll get fewer responses.

Be sure to analyse the detail of what each company is looking for, and emphasise your strengths accordingly.

E.g. If there’s a good chance you’ll be customer facing, emphasise any team activities, or other things where you can point out a need for good communication skills.

Focus on sending fewer CVs, but investing more time into each application.

5. You haven’t come across in the right way

Your CV is you on paper. It’s a representation of you going through the education system, into the world of work and it will be the basis on which you are judged in the application process.

It’s important to make sure that you have a professional email. It should scream the word “Adult”.

You need to spell and grammar check everything. If you’re going to be working in software you will need attention to detail in your work and avoidable spelling mistakes can look lazy.

Getting your CV right is crucial in landing your first role. Once you’ve overcome your interviews and you start on day one, the journey really begins.

If you enjoyed this post, here’s some more below!