Definitions:

  • Feature Engineering: The process of using domain knowledge to extract features (characteristics, properties, attributes) from raw data. Feature engineering involves transforming raw data into a format that can be used by machine learning algorithms to improve their accuracy and efficiency. This can include tasks such as creating new features, selecting relevant features, and transforming existing features.
  • Feature Stores: Centralised repositories that enable the storage, retrieval, and sharing of features used in machine learning models. Feature stores provide a consistent and efficient way to manage and access features, ensuring that they are readily available for model training and deployment. This helps to streamline the machine learning workflow and improve collaboration among data scientists and engineers.
  • Federated Learning: A machine learning technique that trains an algorithm across multiple decentralised devices or servers holding local data samples, without exchanging them. Federated learning allows models to be trained on decentralised data while preserving privacy and security. This is particularly useful in scenarios where data cannot be shared due to regulatory or privacy concerns, such as in healthcare and finance.
  • Frontend Development: The development of the graphical user interface (GUI) of a software application. Frontend development involves creating the visual and interactive elements that users engage with, including web pages, mobile apps, and desktop applications. This typically includes working with technologies such as HTML, CSS, and JavaScript to ensure a seamless and engaging user experience.
  • Full-Stack Development: The development of both the frontend and backend of a software application. Full-stack developers are proficient in both frontend technologies (such as HTML, CSS, and JavaScript) and backend technologies (such as server-side programming languages, databases, and APIs). This holistic approach enables developers to create complete applications from start to finish, ensuring cohesive and integrated solutions.
  • Functional Programming: A programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data. Functional programming emphasises the use of pure functions, which are functions that produce the same output for the same input and have no side effects. This approach can lead to more predictable and maintainable code, and it is particularly useful in parallel and concurrent programming.