Shawn Osborne

Web Developer++

My Blog

I am passionate about developing responsive, accessible, and performant websites and web applications.

As an Associate of Applied Science in Web Programming and a certified Front-end Web Developer, JavaScript Developer, and Responsive Web Designer, I possess knowledge and experience in vital web programming languages, including Semantic HTML, CSS, JavaScript, SQL, and PHP. I am also expanding my expertise by mastering the popular JavaScript framework Vue.js and the ecosystem surrounding that, which will empower me to rapidly develop dynamic, interactive, scalable web applications and APIs.

As a lifelong learner, I am committed to staying current on the latest web development trends and best practices. With my educational background, certifications, and passion for web development, I offer valuable assets to any team.

Beyond web development, I enjoy experimenting with cooking and exploring dishes with my loved ones, gardening my vegetables and house plants, keeping fish, and finding inspiration in various video games and books in my leisure time.

Thank you for taking the time to learn about me. I am eager to contribute my skills and knowledge to real-world projects and confident in my dedication and enthusiasm for success in a professional web development role. Please feel free to explore my portfolio as well as my Github. If you have any questions or collaboration opportunities, please don't hesitate to reach out.

My education:

Degree - Web Programming AAS
Associate's Degree
October 2020 - August 2022

Built a strong foundation of computer programming concepts.

Gained the skills and knowledge necessary to plan, analyze, build, maintain, and troubleshoot websites and web applications.

Completed courses in HTML, CSS, JavaScript, PHP, SQL, the Software Development Life Cycle (SDLC), Responsive Web Design, Object Oriented Programming (OOP), Advanced Algebra, General Statistics, Business Communication, General Phychology, Ethics, and more.

Certificate - Front-End Development
Front-End Development Certificate
November 2022 - Febuary 2023

Practiced constructing responsive, interactive websites and User Interfaces, connecting web applications to a backend server, and automating application build and deployment.

Learned how to set up a Node and Express environment, how to handle HTTP requests & routes, and modify elements dynamically using asynchronously retrieved data.

Completed coursework with HTML5, CSS/SASS, JavaScript/Node/Express, and Webpack.

Certificate - JavaScript Algorithms and Data Structures
JavaScript Certificate
March 2023 - May 2023

Practiced writing effective algorithms by breaking problems into smaller parts to solve.

Learned and practiced using different built in JS methods.

Completed coursework with JavaScript, Object Oriented Programming, and Functional Programming.

Certificate - Responsive Web Design
Responsive Web Design Certificate
January 2020 - March 2020

Practiced building webpages with HTML and CSS

Learned to follow best practices for web accessiblity.

Studied how to make webpages respond to different screen sizes with CSS Flexbox, Grid, Media Queries, and absolute and relative CSS size units.

Learned how to apply different elements of visual design such as typography, color, graphics, animation, and page layouts to help deliver the message the site aims to deliver.

Blackjack 21

Blackjack game screenshot

Technologies used:

Object-Oriented Programming

JavaScript

Local Storage

SASS

Webpack

Description:

For this project, I used a modular object-oriented structure for reuse in multiple card games.

The module - oopCards.js contains the logic for setting up the deck, deapng cards, calculating total points, and rendering the cards. The object-oriented structure includes Classes representing the players, cards, deck, and score.

The module - blackjack.js imports the Table class from the oopCards.js file, which creates the player and deck objects from the respective Classes. The Table Class represents a blackjack table and has several methods, such as:

... start() - initializes the table with players and a deck of cards.

... newCard() - deals with a new card from the remaining cards in the deck.

... renderCard() - creates a new div for each card that contains their suit (♠ ♣ ♦ ♥) and face (A, K, Q, J, or a number 2-10) if the face value is a number it renders that amount of suit icons to the card div.

This file also holds the various HTML element variables used for the different UI elements. It contains game state information such as player and dealer hands, scores, and the number of wins. It also checks for saved scores in local storage and uses them to initialize the player and dealer win amounts.

View the github repo here: Card Games

Weather App

weather app screenshot

Technologies used:

JavaScript

REST API

Node.js

Express.js

Vue.js

Description:

Weather web app built using Javascript and frameworks Node.js, Express.js, and Vue.js. Styling is with vanilla CSS, and is bundled using Vite.

Users can search for any location in the US by entering a city name and state or a ZIP code. The express server will retrieve the weather data from the external APIs weather.gov, airnow.gov, and geonames.org for the specified location and send it to the front-end to display on the interface.

Weather information for the entered location includes temperature, humidity, wind speed/direction, rain chance, dewpoint, sunrise/sunset times, weather conditions (e.g., sunny, cloudy, rainy), weather alerts, and current air quality in 7-day forecast, current conditions, and an hourly forecast of the next 48 hours.

The app is designed to be responsive, adapting to different screen sizes and devices.

Geographic Location API: www.geonames.org API to fetch location data based on user input. Returns latitude and longitude for use in weather search (for accuracy).

Weather API: https://www.weather.gov API to fetch real-time and future weather data from the National Weather Service.

View the github repo here: National Weather

Paint Amount Calculator

Paint Calculator screenshot

Technologies used:

JavaScript

Vue.js

Vue Single File Components

CSS

Description:

This application takes in room measurements and sends the room information to an array of room objects which then goes to a localStorage JSON object.

The localStorage object is parsed to be displayed in the "saved rooms" section of the document so the measurments can persist on the device.

The user can delete rooms from the localStorage object from this section.

View the github repo here: Paint Amount