Jack Faulkner

Self-Learning Software Engineering

Profile

I am a Software Engineer with experience in developing software solutions across the full-stack of software development. My strong analytical and problem-solving skills, combined with my passion for coding, enable me to contribute to the success of a project. My determination and passion is shown in my success of independently learning to code in languages such as Java (Web & Android), and C# (ASP.NET Core). I'm seeking an opportunity to further challenge my technical skills and join a team where I can continue to grow and learn from other experienced developers.

To read more about my professional experience check out my CV.

Projects

Core Estate / C#

ASP.NET Core Web App

Core Estate is a simple real estate web app and my first C# ASP.NET Core project. After spending a few weeks learning to develop using C# ASP.NET Core I decided to put my skills to the test and create a real world app.

Click here to try Core Estate. Or check out the Core Estate GitHub repo.

Here's a break down of my approach to creating Core Estate:

Session 1
Generate project files and configure the app for authorization and authentication.
Create WebUser model to extend IdentityUser and the AspNetUsers table.
Create ForSaleProperty and ToRentProperty models.
Generate Razor pages for CRUD operations.
Create manage pages for properties and restrict them to users with PropertyManager role.
Create PropertyViewing model.
Create request viewing page and manage viewings pages.

Session 2
Create page to list users viewings and page for property managers to confirm viewings.
Update display annotations for model data.

Session 3
Create PropertyPhoto model and API to upload photos for a property.

Session 4
Add PropertyPhotos carousel to the property details pages.
Update property descriptions layout.

Session 5
Update delete handlers on property pages to remove photos for that property.
Move and update viewings button to the right side of the property details pages.

Session 6
Update property description inputs to textarea elements.
Update PropertyPhotos API to upload multiple files.

Session 7
Update layout and styling for property index and details pages.
Move property cards into shared views.
Update property pages and site root to use property card views.
Update media queries and bootstrap breakpoints used in pages.

Session 8
Add filter by address to property pages.
Add sort options to property pages.

Number Recognition / Java

Android App

The Number Recognition app implements a trained neural netowrk to detect what number has been drawn on screen. After a digit has been drawn on screen, the network predicts the number drawn with 96% accuracy. The app loads the saved weights and biases from a neural network previously trained on Java command line program.

Screenshot of Number Recognition app

Snake / Kotlin

Android App

Snake is a recreation of the classic snake style game. While the standard game can be played on the app, it also includes an AI mode where an algorithm simulates playing the game. The AI mode has 3 different algorithms, scan the full board, move towards the treat, move randomly. On top of this a machine learning neural network feature was added to visualise the progression of how machines can learn over time.

Screenshot of Snake app

Money Pots / Java

Android App

Money Pots is an app I developed to provide myself a better way of viewing all purchases, bills, and income from a single place. The app shows all transactions relating to a pot as a list of transactions. It also provides an overview of all of the pots with a total and pie chart displaying the pots data.

Screenshot of Money Pots app

Messenger / Java

Android App

Messenger is an app I developed to learn more about creating apps which update content from other users in real time. When on the app new messages are received instantly and a notification sent for every new message received.

Screenshot of Messenger app

Portfolio / Node.js

Website

This website itself is also one of my projects. I thought producing a website dedicated to showcasing the projects I have worked on would better demonstrate the software I am able to develop. It uses Node.js to serve and render the pages and is hosted on a remote server which I manage myself.

Contact

Email

jackjoshua.faulkner@gmail.com

GitHub