Summer 2019, I worked with the Microsoft Visual Studio Diagnostics Tools team to add features to the CPU profiling tool
I'm Richard Hayes
A Computer Science student at the University of Ottawa. I was a Microsoft Software Intern summer 2019. I recently built and published a Unity game called the central processing unit. Right now, I'm building a ReactJS app to allow students to interactively design a graph, write custom code in an inbrowser editor, and animate the graph while steping over the code.
I'm also designing a tokenizer, lexer, and generator for a custom programing language called twentysix which compiles to JS. Each week, I solve leet code challenges with friends for fun; I like learning about data structures, algorithims, and solving programing puzzles.
Summer 2019, I worked with the Microsoft Visual Studio Diagnostics Tools team to add features to the CPU profiling tool
I built a Unity game that mimics the inner workings of a CPU: instruction register, program register, and memory space
Summer 2018, I worked at Microsoft on a HoloLens project
During the school year, I wrote a 2D space exploration game in Unity
By moving once from left to right
across the array of heights, it’s possible to calculate the total trapped rain water using a stack
.
To determine the minimum capacity required to ship all packages within D days, it was optimal to use a binary search
. Assuming that the minimum weight was K
, we know that all capacities less than K
will fail and all capacities larger will succeed. Thus, we perform a binary search
over the space of all possible capacities until we find then minimum capacity K
such that k1 is false.
This problem is from Round 1A Google Code Jam 2019, I solved it by constructing a suffix tree
, which I then traversed using a post order traversal
in order to match strings into groups of two from longest to shortest suffix.
Given the hex string in the white box
below. Construct a graph according to the following rules:
Find the sum of every unique shortest path
. Two shortest paths are unique
if one of the paths contains at least one node that the other does not. The shortest path between two nodes is a series of edges along which one could travel to get from one node to the other.
5d0d
has 3 unique nodes 5, d, and 0
. As we traverse the string from left to right, we find the following edges:
5d
with value 5 + d = 5 + 13 = 18
d0
with value d + 0 = 13 + 0 = 13
0d
which is the same as d0
, so we ignore itWe have 3 shortest paths to consider as follows:
0
to d
with a cost of 13
0
to 5
with a cost of 31
d
to 5
with a cost of 18
So, the answer to this example case is 13 + 31 + 18 = 62
Given the function below, find the largest integer n
such that query(n)
returns false
and query(n+1)
returns true
. The answer is an integer between 1
and 80000000000
(80 billion!)


Find the missing value (hint: read the title):
I make youtube videos about Unity, Git, Servers, and Algorithims.
Use arrow keys
to move. Collect the gold
before the other players. This is multiplayer game with anyone else on this site. Written with NodeJS
and Socket.io
. Player list and scores are shown below:
Spread
is a game about strategically selecting a starting point for a virus
. Left click
on the canvas to start the spread.
Reach out to me on Twitter or by email !