Posts

Showing posts from September, 2019

Queue, Binary Tree and BFS in iOS Swift

Image
Following on from my last post, this is a short post with code samples to achieve the above on Swift. I won’t talk too much about the background to Binary Search Trees or the BFS algorithm, instead just focus on the code. If you need to get more of a background to this post, then best have a read of my previous post,  Breadth-First Search in Typescript and Javascript. The code Just like my  previous post , this code solves the exact same problem, except here it’s done in Swift instead of Typescript or Javascript. class Node<T: Comparable> { var key: T! var left: Node? var right: Node? init(key:T) { self.key = key } } class Queue<T> { private var items = [T]() func add(item: T) { items.append(item) } func pop() -> T? { return items.removeFirst() } func isEmpty() -> Bool { return (items.count == 0) } } class BinaryTree<H:Comparable> { private var rootNode: Node...

Using artificial intelligence (AI) tech when recruiting candidates for a job

Image
Having published my first research paper in Machine Learning (ML) and Artificial Intelligence (AI) in 2008, I am happy to know just how mainstream AI has gotten as off late. One of the mainstream applications of AI, that I came across recently is a recruitment tool called HireVue. They claim it uses “AI” to screen prospective candidates for a job. I had a brief look at the software, how it works and these are my thoughts on it. How HireVue works? It ranks candidates based on some of the words the they use in the interview and then looks for specific keywords relative to the role they are interviewing for. It has a history of successful employees in the role in the past and then compares the new candidate based on what it knows from its history. It uses Facial recognition to look for certain expressions and eye movements in candidates. Finally, It evaluates all responses and places the candidates in buckets e.g, top, mid and bottom and presents it as a recommendation. It predicts ...

Agile User Story and technical specification for an app for busy consultants

Image
One of the things I aim to highlight in this post is how to carefully examine and understand a  problem before applying cutting edge technology to solve it. In this post, we will first look at a problem from the end-user’s perspective, establish and understand the user story, then propose the technology to solve it. User  Story As a busy consultant who visits lots of clients, there’s a lot information that I come across which I want to note. However, I don’t have the time to write (or type) them all down, typically I would make paper notes, which I end up misplacing from time to time. Additionally, in my pile of my paper notes, I often find it difficult to find the information I need. Story Interpretation Reading the consultant’s story, it’s clear that typing on the keyboard is just not preferred. That’s a fair requirement and we have a problem that we need to solve. One of the first technologies that comes to mind is natural language processing, where the consultant...