Alistair Gray

  • @alistair
  • Junior Software Engineer || Author
  • He/Him
  • The Netherlands
Successfully managed ‘cold war tensions’ between my partner’s cat and my dog. Also trying to make it as a junior software engineer and a published author.
Read more

Software Engineering Student

  • General Assembly
  • Nov 2020 - Feb 2021

Author - Finding Your Fire Within a Burning World

  • Alistair Gray
  • May 2020 - Nov 2020

Founder - Graydient Aerospace

  • Alistair Gray
  • Oct 2019 - Mar 2020


  • Neu21
  • Mar 2018 - Oct 2019

Research Masters Student

  • Swinburne University of Technology
  • Feb 2016 - Feb 2019


  • OzGrav
  • Jul 2017 - Oct 2017

UX Researcher and Designer

  • ANZ Bank
  • Feb 2016 - Feb 2017

Founder - Knowledge Market

  • Alistair Gray
  • Nov 2015 - Jul 2016

Student Consultant Lead

  • Swinburne University of Technology
  • Feb 2015 - Nov 2015

Volunteer / Personal Assistant to Peter H. Diamandis

  • Creativity Australia
  • Mar 2015 - Mar 2015

Assistant Buyer

  • Myer
  • Feb 2010 - Jul 2012

What Alistair's working on

What Alistair's working on


Feb 01, 2021
Feb 01, 2021
Left a role at General Assembly
Ended my journey as Software Engineering Student at General Assembly!
Software Engineering Student, General Assembly


Dec 11, 2020
Dec 11, 2020
Created a terrible product
Week 6 was project week. I had to come up with my own idea and whilst I think its a valid one that isn't met by the market, expectation vs. reality was hard hitting this time. 

The idea was called Reality. It was trying to resolve the many issues in real estate, from misleading photos or information given by realtors to rewarding the ones who do a great job. There is an existing service that does this part already called RateMyAgent, but I wanted to integrate property management, search and selection on top. Quite ambitious!

I had structured a Rails backend that enabled a person to upload properties, give them details and even review the property. I had separate accounts and logins too. But the associations were already so complex, I spent the majority of the time working on them. It was only until the day before that I created a simple front end and this was not ideal. It was ugly!

Whilst the experience was intense, there was a lot to be learned from the process and I was to take the learnings into a tough problem in a group project.
Dec 04, 2020
Dec 04, 2020
Learned Ruby on Rails
Weeks 4 and 5 consisted of Ruby and Ruby on Rails. It also was the introduction of OOP (Object Oriented Programming).

This was initially a very obscure framework and programming language. There seemed to be so much 'magic' behind the creation of projects, with a 'Rails new' command it all seemed to easy...and then the associations began.

Associations link multiple models together. In simple terms, if you have two models, one called fruit and another called apple, in Rails, the apple belongs to the fruit. But things can get wildly complex as your project grows.
Nov 20, 2020
Nov 20, 2020
Built something new
Week 3 was our first project week. The task for each student was to develop their own tic-tac-toe game. It needed to have HTML, CSS and JS with jQuery. There was bonus points for developing a simple AI player and I was determined to get there.

Overall it was a fairly painless project, except for the CSS. You can see that I really was struggling with that in this project and I defaulted to just focus on the logic.

The AI was the most interesting challenge because it needed to know when the player had made its move and not make all its moves. It also needed to know what the board looked like as you are essentially teaching something about its world from scratch

I figured out that if you let the player first change the variable, which was essentially the 'state' of the game, it was a way to not let the AI run wild.

You can play it here if you like and the github is here too.
Nov 13, 2020
Nov 13, 2020
Learned CSS
Week 2 was all about HTML and CSS with a demonstrative amount of Javascript as well. The mantra was 'HTML is the content, CSS determines how it will look and Javascript controls its behaviour'. 

At the time I really struggled with CSS. It felt like perpetual trial and error to get something to go where it should. It took me until after graduation to get a better grasp of modern techniques such as Grid and Flex.

We did learn jQuery and that I really enjoyed. It seemed to enhance what vanilla JS was already offering and it could allow you to do more with HTML with less code.
Nov 06, 2020
Nov 06, 2020
Built something new
The first official week was all about vanilla Javascript featuring: loops, arrays, functions and objects. It was a steep climb, not only learning all of this but in the practice of immediately applying it in tough challenges. At week's end, we received a daunting task, one that is revered by the GA alumni. MTA

This task involved utilising all of what we learned to calculate a trip on the MTA in NYC. You can see how I did it here

// // An idea for the direction was to use the +/- sign as a way to demonstrate direction
 | // // If the number of stops is negative, then it should move right to left and vice versa
 | // // if it is a postive number. I ended up using > < to determine the index position instead.
 | //
 | // Now to integrate the other 2 lines. The complex nature of this is that although Union Square
 | // acts as a hub for all 3, the lines do not mirror each other exactly.
 | //
 | // First part is to put the arrays into an object
 | // If startLoc is in nLine && endLoc is in sixLine then

 | const subwayLines = {
 |   nLine: ["times square", "34th", "28th", "23rd", "union square", "8th"],
 |   lLine: ["8th", "6th", "union square", "3rd", "1st"],
 |   sixLine: ["grand central", "33rd", "28th", "23rd", "union square", "astor place"]
 | }; // object subwayLines
Get your own page like this