WorkflowFM Internship 2020

Software Development Intern (up to 3 months)

Deadline: Sun 28th June 2020, 5pm

The Project

WorkflowFM is a workflow modelling and management framework. It uses a formal reasoning approach to process composition, resulting in correct-by-construction workflow models that can be executed asynchronously. These are deployed to support 2 main types of applications:

  1. Workflow Monitoring: Incorporating IoT data streams, such as location tracking, we can monitor operations in real time, provide analytics, and send notifications when deviations occur.
  2. Workflow Simulation: Executing workflows virtually in a discrete event simulation environment enables predictive analytics, scheduling and optimization, “what-if” analysis, and decision support.

The project is currently being developed in Scala using the Play framework, a React front-end, Kafka and MongoDB for stream and data management, and deployed using Docker.

Main applications areas are healthcare and manufacturing, with key collaborations in the NHS and industry.

The Internship

We are looking for an enthusiastic UoE Informatics student to work with the WorkflowFM team on our solution.

Your work will focus on 1 of 3 potential topics:

  1. Complex Event Processing: filtering and analysis of location (geofencing) data.
    • Relevant knowledge: stream programming, Apache Kafka
  2. Discrete Event Simulation: optimizing and extending the simulation engine.
    • Relevant knowledge: concurrent programming, event-based systems, performance modelling and simulation, Akka.
  3. Job Shop Scheduling: implementing, integrating, and comparing a genetic algorithm for scheduling optimization.
    • Relevant knowledge: AI, genetic algorithms, optimization

This is a short term, high output project, so you will be expected to learn quickly and work in a fast pace.

The work does not require a physical presence, and can be performed remotely.


Essential skills

The following are required:

  • Knowledge and programming experience in Java, with concrete examples of previous work.
  • Basic knowledge and understanding of (non relational) data stores, such as MongoDB.
  • Demonstrable analytical skills (list relevant projects).
  • The motivation and drive to learn and work in a fast paced environment.
  • The ability to work and produce outputs independently given directions and support, but without hands-on management.

Desired skills

The following are highly desirable:

  • Knowledge and experience in functional programming, and particularly Scala.
  • Knowledge and experience in the relevant knowledge areas listed above for your choice of topic.


The internship is for up to 3 months, with an immediate start.

Apply by emailing Dr. Petros Papapanagiotou pe.p (at) with your CV and a short (max 1 page) cover letter describing:

  1. Why you are interested in the project.
  2. Which of the 3 topics you are interested in.
  3. Any relevant experience that would make you suitable for that topic.

Deadline: Sun 28th June 2020, 5pm

For more information, including salary details, please contact me by email.