Hey, that's me!

I'm Ben O'Sullivan, a Fullstack Web Developer that specialises in Javascript technologies such as Node JS, Angular2+, Typescript, Gulp, Stylus, Sass, and more! Having started programming in primary school with languages such as Lua, I have spent many years learning, developing, and perfecting my skills. As I became older, I was drawn into the Minecraft phenomenon, and quickly sought out to learn Java where I began tinkering with Minecraft Server plugins. Later on, I started exploring the web, where I quickly became proficient in HTML and CSS, eventually discovering the wide and beautiful ecosystem of Javascript, where I have focused the majority of my attention on ever since.

Want to see some of my projects? Keep scrolling down, and feel free to try them all out. All source code is available on my Github, with instructions on how to compile / run projects that require more advanced setup.

Projects

Reload, Shoot, Block!

Node JS Express Typescript Websockets

Reload, Shoot, Block! is a browser based 1v1 game based on the traditional Rock, Paper, Scissors. Players can create a lobby by visiting the webpage and share the link with their friends, where upon the friend loading the link both players will start battling it out! Architecturally, Reload, Shoot, Block! follows the client - server pattern, with the clients communicating via JSON messages to the server using Websockets. To ensure correct format, both the server and the client utilise Typescript's interface system to ensure the object being converted to a string (via JSON.stringify) contains the correct types.

Binoctal Hexadecimal

HTML / CSS Bootstrap Javascript

Binoctal Hexadecimal is a browser based game testing your knowledge of base conversions between bases 2, 8, 10, and 16. With three difficulties to choose from and instant feedback on whether you converted correctly, Binoctal Hexadecimal is an invaluable tool that I designed to aid in studying different bases and how to convert between them. This project taught me about event handling, states, and forced me to learn base conversions so as to verify the questions were answerable. As per usual, I went with Bootstrap to make the game presentable so as to focus more on functionality of the game itself rather than aesthetics.

Game of Life

HTML CSS Javascript Bootstrap

Based on John Conway's Game of Life, Game of Life is a browser implementation of the same ruleset that Conway invented with configurable options such as tick speed (how many milliseconds until the next generation is calculated) and grid size. The grid is scaled to the browser size, and thus can scale to any device, ensuring playability across a number of devices. This project had its own challenges and pitfalls during development, especially with regard to the grid system. Having to scale to a variable width and height in addition to a variable grid size posed quite the challenge, but is now complete thanks to many coffee breaks and midnight revelations.

Waverr

HTML CSS Javascript

Waverr is an online trigonometric graphing calculator that supports sine and cosine functions with custom parameters. This project relies more heavily on math knowledge than programming, but was an interesting experiment regardless. To draw the function, Waverr uses the user's accuracy input field to determine how many points along the horizontal axis should be drawn and calculated. For each point, its physical x position on the screen is converted to a corresponding position given the domain. Once converted, this position is fed into the user defined trigonometric function where the y position is determined. A point has been determined, and a line is drawn from the previous point to this current one, and the process repeats until the desired amount of points have been calculated and drawn.

When Will I Earn This Much

HTML CSS Javascript Skeleton CSS

When Will I Earn This Much is an online calculator that determines when you will earn a certain amount of money given some amount of money per week, your current balance, and the day of the week you get paid. WWiETM is a project I created back when I was first getting into web development, but recently I gave it a polish to enable real time feedback as data is entered. I also fixed a bug whereby the day of the week chosen as pay day did not affect the calculation. While being a relatively simpler project, this calculator taught me about using Dates in Javascript, and the logic around them.

Upcoming Projects

Sins of a Modding Empire

Electron Angular Typescript NodeJS

Sins of a Modding Empire is an upcoming project that intends to make installing and changing mods in Sins of a Solar Empire: Rebellion simpler and more intuitive. On first launch, SoaME will automatically detect the installation directory of Sins as well as the location to install mods. In the event either of these steps is unsuccessful, the user will be prompted to manually locate these resources. Future features involve storing mod installation status (not installed, installed, active, etc.), a custom 'mod' script that will inform SoaME what steps it should take to install a mod, ability to enable / disable mods within a collection, and more!