Handshake

Joshua Rogan's Portfolio

Hello, potential employer or stalker! My name is Joshua Rogan. I have earned my bachelor's degree in Computer Science at the University of Pittsburgh.I am currently working at Fireman Creative as a full stack developer in Pittsburgh Pennsylvania. I also do a significant amount of freelance work for a variety of clients.

Keep scrolling or choose an item below to check out my personal portfolio!

Selected Works

Population Genetics Simulator

My Population Genetics Simulator was built for the University of Pittsburgh's Genetics Department as a tool for online genetics education and research. This tool helps to solve the urgent need for great "genomics literacy" of professionals across disciples.

This tool is primarily powered with JavaScript to compute the highly mathematical formulas. To increase in-browser performance, HTML5 Web Workers are utilized to create a threaded environment to dramatically speed up computation. Templating is provided through Laravel's Blade engine. Graphing utilizes a custom version of Canvas JS for it's high performance with large amounts of data. The FAQ is powered via the Bloodhound engine, created by twitter, for auto-complete and search.

Upcoming features will include an open API to access the computation engine and extend the application however is desired.

Pitt Quantum Repository

The Pitt Quantum Repository (PQR) was developed for the University of Pittsburgh's Chemistry Department to give users instant access to a large database of molecular properties computed from quantum mechanics, saving on the time necessary to repeat the same calculations over and over again. PQR makes it particularly easy to share a 3D rendition of molecular structures and properties for research, collaboration, and classes. For example, research papers can link to PQR entries using digital object identifiers (DOI). Lecture slides and handouts can link to PQR using barcodes that students can scan on their mobile devices.

PQR was developed with the lightweight micro-framework for python, Flask. To quickly handle the large amount of molecular data, currently contains over 100,000 molecules,the data is managed by MongoDB with highly tuned indexing to speed up search results. Auto-complete searching is developed with the Bloodhound engine which combines off-line quick access and throttling when accessing the remote database. Molecule visualizations are powered with WebGL and another Pitt project 3DMol.js

Features in development include a significantly advanced search engine allowing the user to find molecules with fine tuned queries.

EFN Back

EFN Back is an application developed for UPMC to test reaction time compared to viewing emotional stimuli on screen. There are several different types of tests. The simplest is having to click or touch the screen as soon as the target letter appears. As the test progresses they become more difficult adding stimuli (emotional faces) and looking for patterns in letters.

EFN Back was developed mostly with native JavaScript and powered by a simple PHP framework I developed for mostly static websites. This application was developed in a mobile-first philosophy which required detailed attention to timing of touch events on many different devices. Detailed analytics were recorded to provide insight to the researchers. This data was stored and manipulated via mySQL and could be interfaced in an admin section for the researchers. Their goal was to see if the user's time would increase after given certain tips.

Theoretical & Computational Chemistry

The Theoretical & Computational Chemistry at the University of Pittsburgh needed a blog and CMS solution to organize their groups, news and events. The primary goal was to promote the department and have one place to share upcoming events and news along with engaging more students on campus.

The blog was created with the Ruby static site generator Jekyll. It is a very simple static site but I was able to utilize some new tools such as Travis CI for testing and a develop a custom bash deploy process to an Enterprise Web Infrastructure (EWI).

B.A.C. Calculator

A very simple Blood Alcohol Content calculator. This was developed to have a simply designed BAC calculator that didn't have a annoying ads and was very easy to use.

This is a very simple one page application built with simple JavaScript events. The formula used to determine the peak BAC was found on Wikipedia.

East Coast Sandhogs

The East Coast Sandhogs are a national travel baseball organization based in Northeastern Pennsylvania. The Sandhogs have teams for ages of 8 through 18. This website is a portal for all information about the team. It has detailed lists for events, schedules, media, and rosters.

This is a simple appearing site but with a powerful custom built Laravel back-end to manage 10+ teams each year saving all of the histories. The data is all appropriately tied to each team with powerful back-end dashboard to provide alerts, event updates, and updates.

More Projects...

JCC Pittsburgh

Build and maintain the JCC of Pittsburgh primary website with 1,000s of views per day. Voted one of the top 15 JCC websites of 2015.

Conte Design

Build and update a simple gallery website to increase online interaction of a unique boutique site.

AE7Dev

Build a media rich website for AE7, internationally renowned American design professionals with over 40 years of combined experience in the Middle East, Europe, Asia and USA.

Professional Skills

Developing

While developing new projects I often explore new development ideas. One principle that I believe is essential to all software design methods is the DRY principle. Committing to this idea will almost always result in more manageable code. I have explored Object-Oriented Programming heavily by being encouraged to extensively use it through my academic studies. But, recently I have considered some other paradigms such as Functional Programming and Prototypal inheritance after reading lots of articles stating that OOP is Inherently Harmful.

Language Affinity

I have been exposed to a significant number of programming languages through my time at academia and in my professional work. My favorite language would be JavaScript due to its wide-use on the front-end of applications and it's ability to be used on the server side with Node.js. I also find developing Python applications to be very straight forward and robust. Generally, every new project I will try to use a new language or framework within a language I am already familiar with.

I am also very familiar with many of the web languages such as CSS3 and exclusively use pre and post processors such as SASS, LESS, and PostCSS. Along with extensive usage of task managers Grunt and Gulp.

Frameworks & Platforms

Framework popularity changes almost daily. It is often difficult to decide what framework to use for a given project. The two key components for me are project stability and documentation. I love the PHP framework Laravel for it's great documentation and video series Laracasts.

I often try to use a framework I haven't explored when I am creating new project in the hopes to be open to more development philosophies to extend my developing abilities.

Development Tools

While developing cross-platform applications I have come across many tools that make developing significantly easier. Most importantly is some type of version control. Git has changed my life and I wouldn't start a project without using it. Along with using Git I came to love the command line. Tools such as Oh My Zsh and Bash-it can make using the command line much faster and significantly less error prone.

Task managers and package managers are essential tools in every developers belt. The task manager I originally used was Grunt but recently have come to like the better API of Gulp better. For web developing I stick with NPM and Bower for my front end packages.

I am familiar with many different communicating tools that dramatically aid in developing such as basecamp and slack. Issue tracking is essential in maintaining a project in a team and GitHub Issue Tracker and Atlassian Jira are essential tools to manage project issues easily.

  • Github Logo
  • Bash Logo
  • Oh my zsh Logo
  • Sublime Logo
  • Grunt Logo
  • Gulp Logo
  • Bower Logo
  • NPM Logo
  • Basecamp Logo
  • Slack Logo

System Administration

I have setup and maintained many different types of servers. I have used Nginx, Apache, and node.js as servers for different applications. I also have pushed applications to Google App Engine for quick server setups. I am familiar with maintaining these applications on many different Linux distributions including CentOS, RHEL, and Ubuntu.

I quickly realized there are much better ways to deploy projects than using just git or even manually uploading files. For this, I am using a Ruby tool called Capistrano. This protects my projects when I deploy and can easily rollback if there is an unforeseen production error.

  • Digital Ocean Logo
  • AWS Logo
  • Apache Logo
  • Nginx Logo
  • CentOS Logo
  • Ubuntu Logo
  • Capistrano Logo
  • Capistrano Logo

Word Bubble

DRY Premiere Pro Gulp Font Awesome Bower Responsive Lightroom Bash Unix Photoshop SASS Google App Engine LESS Wordpress PostCSS NPM Sublime Functional Modernizr Flask Bootstrap Basecamp Capistrano Laravel Jekyll Cake PHP Grunt Bedrock Git Atlassian Foundation