TIM JOHNSTON

full stack software engineer

Liftoff in T minus 3 . . . . . . 2 . . . . . . 1 . . . . . .

Hello!

I'm Tim.

I'm a software developer from Pittsburgh, PA, USA.

These are a few of my favorite things:Camping! Bubble tea! Cats. . . and also dogs!

More than anything, I love activities that keep my mind and body engaged. A board game night with friends (the more strategic the game, the better), a peaceful stroll though the woods, and an evening in the kitchen cooking up something spicy are just a few of my favorite activites.

Level up!I value and seek out opportunities to experience new things and gain fresh perspectives.

I prefer to learn by doing, and I think that the best way to develop a new skill (professional or otherwise) is to jump right in and give it a go.

My Skills

Technologies

AWS

Azure

C#/.NET

Django

Docker

Figma

Gatling

Git

Hibernate

HTML & CSS

Java

JavaScript

Jenkins

jQuery

JUnit

MATLAB

MySQL

OracleDB

PHP

Postgres

Python

React

Selenium

Spring Boot

Thrift

Twig

TypeScript

Methodologies

Agile

Automated Testing

Back-end Development

Front-end Development

Linux & Windows Environments

Relational Database Management

REST APIs

Test Driven Development

UI/UX Design

My Values

and the quotes that guide me in my professional and personal life

I believe in

trailblazing

"The best way to predict the future is to invent it."

Dr. Alan Kay

I try to

exist in the moment

"Stake your entire life in here and now. Yes! If you stake your life now... you will be alive!"

Matsuoka Shuzo

I prioritize

quality

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."

Martin Fowler

I value

every single attempt

"Fail often, fail fast, fail forward. It's the secret sauce to success in tech. . . and in life."

Reid Hoffman

My Projects

DayBreakr

Django, React, Postgres, Docker, AWS

React SPA & Django REST API allowing users to configure highly customizable alarms. Alarm configurations may be saved through the web app and retrieved by the alarm hardware device via a call to the API.

Tech Specs

Tech stack

Django (Python), React (TypeScript), Postgres, Docker, Docker Compose, AWS Lightsail, NGINX, Git

Methodologies

REST API design, Single Page Application, Relational database design, Authentication with Auth0

Comments

  • RESTful backend API build with Python and Django exposes endpoints to persist and retrieve alarm configurations
  • API secured using the Auth0 authentication service
  • Data persistence in a Postges database handled by the Django ORM
  • Fully responsive & mobile-friendly React & TypeScript SPA frontend allows users to create new alarm configurations, including choosing alarm music (via the integrated Spotify search API), setting "sunrise" light color and brightness, and vibration intensity
  • Deployed with HTTPS on an AWS Lightsail Linux instance using Docker, Docker Compose, and an NGINX server

ThirstyCat: Hardware

Raspberry Pi, Python

Pressure-activated camera & Twitter bot that detects when my cat gets a drink, captures a photo, and automatically tweets the photo using the Twitter API.

Tech Specs

Tech stack

Raspberry Pi, Python, Git

Methodologies

Utilization of hardware & peripherals including a PiCam & pressure plate, Development in a Linux environment (Raspbian / Debian), REST API consumption (See ThirstyCat: Web App)

Comments

  • Built a weight-sensitive platform with a Raspberry Pi and force-sensing resistor; placed platform in front of my cat's water bowl
  • Wrote a Python script to read weight values and trigger a camera to take a photo when values exceed some threshold
  • Picture is automatically tweeted using the Twitter API
  • Python script consumes the REST API built as part of the ThirstCat: Web App project to persist image and supporting data to a database, where it may be retrieved and used by the web app

ThirstyCat: Web App

Java, Spring Boot, MySQL, AWS

Full stack web app allowing users to view ThirstyCat photos and statistics. Users can create an account to receive automated email updates, favorite pictures, and submit photos of their own.

Tech Specs

Tech stack

Java, Spring Boot, MySQL, AWS, Hibernate, HTML / CSS / JavaScript, jQuery, JUnit, Git

Methodologies

Relational database design, Test driven development, Serverside development, Clientside development, UI/UX design

Comments

  • RESTful backend API built with Java and Spring Boot exposes endpoints to persist and retrieve images and data
  • API built with test driven development and secured with Spring Security JWT Bearer Authentication
  • Data persistence in a MySQL database handled with Hibernate JPA
  • UI designed and built with JSP, HTML, CSS, JavaScript, jQuery, and Bootstrap displays recent images and statistics
  • UI security implemented with Spring Security allowing users to create accounts, log in, and save pictures to their library
  • Deployed on AWS with Elastic Beanstalk

GradientBox

Python, Django, Javascript

Full stack web app where developers and designers are surprised with randomly selected CSS gradients created by other users. Users may also create and share their own gradients.

Tech Specs

Tech stack

Python, Django, HTML / CSS / JavaScript, Git, SQLite DB

Methodologies

Relational database design, Serverside development, Clientside development, UI/UX design

Comments

  • RESTful API created with Python and Django exposes endpoints allowing users to persist and retrieve custom gradient data
  • User interface with embedded color-picker lets users create custom gradients, generates CSS, and lets users load a randomly selected gradient created and shared by a previous user
  • JavaScript and jQuery used to create an interactive, sleek user experience

Personal Website

Vanilla HTML / CSS / JavaScript

Fully responsive static website built to serve as my online portfolio. Not much more to say. . . you're already here, after all!

Tech Specs

Tech stack

HTML / CSS / JavaScript, Git

Methodologies

Clientside development, UI/UX design

Comments

  • Fully-responsive design (down to 320 pixel screen widths) implemented with fully vanilla HTML, CSS, & JavaScript
  • Clean, minimalistic design creates a modern and tidy UI

WeatherViz

Java, Spring MVC, PostgreSQL; Group project

Collaboratively built forecast app, developed with the agile methodology. Users may view visualizations of current and historic weather conditions across the US or create an account to receive personalized local forecasts.

Tech Specs

Tech stack

Java, Spring MVC, JSP, PostgreSQL, HTML / CSS / JavaScript, Git

Methodologies

Agile, relational database design, Clientside development (my primary contribution), Serverside development (group members' primary contributions)

Comments

  • Full stack web application built in a team of three developers and one product owner, utilizing the agile methodology
  • Implemented a RESTful backend web service with Java, Spring MVC, PostgreSQL, and Spring JDBC to store user information and retrieve/expose weather data
  • Developed a UI to display customizable weather visualizations using Javascript, jQuery, Highcharts, and the Dark Sky weather API