Freeman Technology manufactures a precision laboratory instrument which is utilised by a wide range of industries around the world for measuring the flow properties of powders.

The primary responsibility of this role is to develop software for the company’s line of analytical instrumentation. As the lead Software Engineer you will be responsible for driving forward and shaping the design and development of C# software applications for the next generation of laboratory instrumentation and integrating the various packages with the relevant hardware/firmware.

The role will require collaboration with colleagues in electronic, electrical and mechanical engineering, and you will be expected to contribute to the design of system architecture, with particular focus on the electronics and control systems.

As the company is beginning a “ground up” design of their next generation instrument, as the lead Software Engineer, you will be expected to drive this project from a software perspective, and take responsibility for all software, from driver level up to graphical user interface. If of interest, you will have the opportunity to work on code at lower levels, as the design concept is likely to embrace FPGA and microprocessor based technologies.

It will be an on-going requirement to maintain and troubleshoot the company’s existing software applications. These are written in Visual Basic 6, and whilst there is no intention to develop any of these applications further, it is inevitable that a certainly level of troubleshooting will be required.

Principle Duties

  • Develop code to provide the control interface and data analysis software applications for the company’s next generation of powder characterisation instruments
  • Work with colleagues to contribute to the design of this next generation product, with a focus on the electronics, control systems and system architecture
  • Manage the design of the software and hardware (where relevant) through professional documentation and project meetings, in-line with the company’s existing practices
  • Occasionally troubleshoot problems with company’s existing software applications, which will require use of Visual Basic 6
  • Support colleagues in IT from time to time, and become familiar with the structure and design of the company’s SQL database
  • Requirements

  • Expert knowledge in the development of C# software applications for real products, e.g. scientific instrumentation, medical devices, industrial equipment, laboratory instruments / equipment, etc.
  • Experience of working with Linux platforms, particularly with regard to interfacing data acquisition hardware and external PCs
  • Knowledge of .net ( or
  • Understanding of Visual Basic 6 (VB6)
  • Knowledge and appreciation of hardware-OS interaction
  • Experience in the design of control systems and a good understanding of the function of electronics and microprocessor level hardware
  • Understanding of Driver and system DLLs, Interrupt Request Handling, Memory allocation and DOS batch files
  • Ability to review program code and/or resulting test data to identify faults and generate software based solution where possible
  • High standard of record keeping required both in terms of software management and internal and external communications
  • Ability to prepare detailed documentation relating to software issues in order to support both in-house teams and external distributors and customers
  • Experience of website maintenance (beneficial)
  • Knowledge of SQL and Access database functions (beneficial)
  • Excellent verbal and written skills
  • Highly self-motivated, with ability to work individually or within a team
  • Commitment to working as a team member within a rapidly growing, dynamic and fast-paced company
  • This role represents a fantastic opportunity for the right individual to join a dedicated team as part of a successful, growing company.

    To apply, please email your CV to