My Favorite Projects
I lectured in the Computer Science Department for three years at my Alma Mater, Hartwick College. While there I taught Introduction to Web Development three times, and both Advanced Programming Techniques and Game Programming once.
I feel that teaching was one of the best experiences for me because it really taught me how to convey information and concepts that the other person may not understand.
This has been a real benefit to me especially when working with international team members and managing projects.
I have the full course descriptions for my courses on my LinkedIn Profile.
Single Page Web Apps With Angular.js
Node.js Work Queue and Data Storage System
This is a big performance improvement and is great for dealing with big data (hundreds of thousands of rows in the database).
Queue provided an API that allowed other “web tools” to start jobs. These jobs were basically requests for data but the data took a long time to get ready, and their was a LOT of it.
When the API received a request it would place the job in the queue where many worker servers were doing these jobs at the same time (distributed processing).
After the worker has finished getting the data ready it would save it in MongoDB. We chose NOSQL because it allowed us to save the data in the same format that it will be returned in, thus removing a processing step and speeding up the queue. It also allowed us to more easily cache the data which reduced if not eliminated repeat processing of the same job.
Finally the API would notify the original web tool to come get its finished data.
The idea was to have many computers (worker servers) complete these jobs simultaneously to increase the speed of data intensive applications.
Generally when developing web-based applications I create a REST API interface for the front end to deal with the back-end.
I find that APIs are a great way to expose data to other developers because APIs can be secured, they’re easy to document (I like APIDoc.js), and a number of great tools deal with APIs (JQuery Ajax for instance) so the learning curve for developers is very low.
Why I Started Developing
I have developed websites since the era of GeoCities way back 1998.
It was a simpler time when HTML was not followed by a number, and CSS never even thought of being compiled.
This was an era of free websites where, for the first time ever, anyone with an internet connection could communicate and share information with the world. I of course wanted to get in on the action so I built several sites “from scratch” as it were.
Because GeoCities only allowed .html files to be uploaded and because the WYSIWYG editor was…. umm.. lacking, I began working directly with HTML and CSS markup.
Kids today will never understand the pain of programming a drop down menu from scratch…
But I digress, if you find this sort of thing interesting I suggest you check out OOCities. They have recreated part of the, now taken offline, GeoCities servers that using a partial copy was scraped and saved by a “deep crawler” project created by the Archive Team.