Paul Smith

Senior Software Engineer
Byte
LinkedIn GitHub YouTube

Skills

HTML/CSS JavaScript TypeScript Bootstrap Node.js Express.js React.js Microsoft Azure SQL and NoSQL Databases MongoDB Firebase CosmosDB Git Responsive Web Design (RWD) Progressive Web Apps (PWA)

Courses that I teach

Below are the courses that I teach in the Application and Web Development Program at Ranken Technical College.

AWD 1111: Database-Driven Web Development

HTML/CSS JavaScript Bootstrap Node.js Express.js React.js MongoDB MySQL Git

Students successfully completing this course will be able to:

  • Use CSS and Bootstrap to design responsive web sites.
  • Use Node.js, Express.js, and modern Javascript syntax to build web applications.
  • Develop web forms that post data to the server and retrieve results.
  • Use a Database Management System to persist, manipulate, and query user data.
  • Develop web APIs and use JavaScript AJAX calls to update web pages dynamically.
  • Use React.js to create dynamic web pages.

AWD 1112: Mobile App Development

Java Android Firebase Retrofit Volley Picasso Architecture Components Git

Students successfully completing this course will be able to:

  • Develop Android Apps that respond to events in Android Studio.
  • Use TextView, EditText, Button, ImageView, Spinner, and RecyclerView widgets to build Android Apps.
  • Develop Android Apps that have multiple screens and pass data between those screens using Intents.
  • Develop Android Apps that use themes, styles, dimens.xml, colors.xml, strings.xml to change the appearance of widgets and adjust to sizes to different screen dimensions.
  • Develop Android Apps that include a database component and demonstrate OOP principles.
  • Develop Android Apps that communicate with REST APIs.

AWD 1000: Web Development Technologies

HTML/CSS JavaScript jQuery Bootstrap Git

Students successfully completing this course will be able to:

  • Write standards compliant HTML5 and CSS3 to structure and style a web page.
  • Use CSS3 to position elements on a web page using responsive web design techniques including Bootstrap.
  • Create websites that include images, lists, tables, video, audio, icons, and animations.
  • Develop web forms that use JavaScript to respond to events.
  • Solve problems using fundamental programming concepts including variables, branching, and loops.
  • Manipulate the DOM using JavaScript and jQuery.

Projects

My Little Recipe Book

MongoDB JavaScript Bootstrap Node.js Express.js React.js Web Scraping Twitter API Youtube API Heroku

Hobby project to build a recipe search engine. Just type in 2-3 ingredients you have on hand, and get suggestions for what to make.

Learn 2 Earn

SQL Server C# ASP.NET MVC Entity Framework Azure

The Learn to Earn (L2E) program provides a pathway of activities/engagements for secondary school students (6th-12th grades) which provides exposure to STEM careers and earns college scholarship credits.

Published NPM Packages

JavaScript Node.js Express.js

I've created and published a few small open-source projects as npm packages.

bassoon
A library for efficiently streaming JSON objects to your front-end.
domloaded
A micro-library for postponing code execution until the DOM is loaded.
joi-mongodb
Simple Joi validator for MongoDB's ObjectId.
valid-oid
Express middleware for validating a MongoDB ObjectId in the endpoint path.
valid-body-joi
Express middleware for validating the request body with Joi.
valid-request-joi
Express middleware for validating the request with Joi.
valid-request-joi
A simple wrapper for Express route handlers, which propagates errors to the centralized error handler.
@merlin4/express-auth
A collection of authentication and authorization middleware functions.
@merlin4/mongodb-connect
Utility functions to simplify connecting to a MongoDB database.

Unity Asset Store

C# Unity 2D/3D Game Development

My published packages that you can use in your own game.

Game Development

C# Unity 2D/3D Game Development
I've built various game prototypes and participated in several game jams. You can find them below.

The Firmacore Incursion
Cooperative online multiplayer game. Uses Node.js and Socket.io for the server. And Unity for the client. (Global Game Jam 2021)
Bouncy Runner
Touch gesture-based endless runner for Android. Integrates with some Facebook APIs. (Solo Project)
Costume Crash
Local 2-4 player brawler game. Supports Xbox 360 controllers for input. (STL Scatterjam 2017)
Gravity Wells
3D Starfox-esque shoot-em-up, where you drive a rover around the surface of a planet. Uses custom shaders to implement a low-res/dithered look. Supports Xbox 360 controller for input. (CGA Jam 2017)
Pete's Discount Market
Run a potion shop in a 3D, VR-esque environment. Simplified art style for a comical appeal. (Butterscotch ShenaniJam 2017)
Final Transmission
2D space fighter shoot-em-up, where you must navigate through waves of asteroids, before making your final transmission seconds before your ships is destroyed. (Global Game Jam 2018)
How do we kill it now?
Fight waves of slime monsters of escalating difficulty using only your sword. Features a custom slime shader that I wrote for the game jam. (Global Game Jam 2015)
Out of Season
Cute isomorphic survival game. Avoid roaming enemies, which navigate via an occupancy-based heatmap approach. (STL Scatterjam 2016)
Hairspray Hannah
Dark atmospheric survival game. Heavy focus on shadows and lighting to build the environment. (Butterscotch ShenaniJam 2018)
Ritual of the End
Small 2D platformer with 2 boss fights. Lead a team of teenagers that had never made a game before or worked Unity. (Global Game Jam 2016)
Shadowrun Combat Tracker & Dice Roller
A small web app I built to help to me host a weekly Shadowrun 5ed game. Data is persisted locally with the localStorage APIs to facilitate easy offline usage. (Solo Project)
Spring the Fence
2D runner game with a pogo-stick. Navigate increasing difficult obstacles to reach the end of the level. Eat cupcakes to unlock special powers. (STL Scatter Jam 2014)
Sky Scraper
Swing around the level with your dual grappling guns, and reach the door to the next level. (STL Scatter Jam 2015)
Sky Walker
Navigate a procedurally generated obstacle course using dual grappling guns, and reach the portal at the end of the level. (Solo Project)
Rubberband
Fling rubberbands at plastic army men. Knock over enough army men within the time limit to unlock the next level. (Group Project)
The Title
Augmented reality experiment inspired by Pokemon Go. (Global Game Jam 2017)
Home Is Where The Friends Are
Native Android game involving building sentences from a limited vocabulary. (Global Game Jam 2019)

Work Experience

Senior Software Engineer

Byte
June 2022 - Present
Remote
Microsoft Azure JavaScript TypeScript Node.js Express.js React.js NoSQL CosmosDB Git BitBucket Jira

IT Instructor

Ranken Technical College (AWD Program)
Aug 2017 - June 2022
St. Louis, MO
HTML/CSS JavaScript Bootstrap Node.js Express.js React.js MongoDB Firebase MySQL SQL Server C# ASP.NET MVC Entity Framework Java Android Git

Software Developer

Biomedical Systems (eCOA Team)
Jan 2014 - July 2017
St. Louis, MO
SQL Server C# ASP.NET MVC Entity Framework Java Android SQLite Team Foundation Server (TFS)

Software Developer

Elekta (Monaco Team)
Mar 2011 - Dec 2013
St. Louis, MO
C++ 2011 Managed C++ C# Microsoft Foundation Classes (MFC) Windows Presentation Framework (WPF) Subversion (SVN)

Education

Computer Science - Bachelor of Science

2008 - 2010
Kansas City, MO

Computer Science - Associate

2005 - 2008
Kansas City, MO