|
|
|
|
Freelance Web Development
I'm a developer with many years’ experience writing dynamic web applications in PHP and MySQL and even a few stand-alone applications in Java and C. Using languages such as HTML/CSS, JavaScript, PHP, and MySQL, I can slice and dice a database to create a useful web application for clients to maintain and customers to enjoy. Below are in-depth descriptions of my professional programming experience. Here is my resume.
Since 2003, I've built and maintained Energylinx, a residential energy-comparison site for the U.K.-based company of the same name. I built the back-end from the ground up and took the site through several software lifecycles and one redesign. Energylinx has now become one of the most popular sites of its kind in the U.K., routinely rebranded for several power companies themselves.
I contract much of my work for Digispire, a Pittsburgh-based web development and business marketing company, and Lemon Digital, a standards-based information technology company based in Seville, Spain, as well as other occasional side projects.
Project Portfolio
Last updated: August 2005
Energylinx |
- A residential energy-comparison site. Built from the ground up starting in 2003. I continue to add features and work through redesigns. Energylinx has now become one of the most popular sites of its kind in the U.K., routinely rebranded for several power companies.
|
Greybeard Advisors |
- Content Management System: site-wide WYSIWYG editor, press release management
|
Finca La Luz |
- Online hotel reservation system for a Spanish country house
|
Museo del Baile Flamenco |
- E-Newsletter and mailing list manager for museum
|
Identity Theft Kit |
- Online store for identity theft legal advice
|
IRETA SBIRT |
- Content Management System: administer news items, links, and training events for health care providers in substance abuse and mental health
|
Babyland Online Store |
- Online store selling baby products
|
LaPomponnee Spa and
Salon |
- Online gift certificate signup with realtime payment processing
- E-Newsletter and mailing list manager
|
IRETA: Institute for
Research, Education, and
Training in Addictions |
- Content Management System: administer news items, links, and training events
- Administer customers who sign up for training events
- Online store
- Online course application
- Trouble ticket tracking form (requests for info)
- Database of meeting minutes, action items, news items, and contacts
|
PA-Co-Occurring |
- Content Management System: administer news items, links, and training events
- Full-fledged content management system (based on Postnuke)
- User-customizable display of training events and tracking of certification credits
- Online discussion forum
|
Digispire |
- Dynamic list of clients in portfolio
|
|
- E-Newsletter and mailing list manager
|
|
|
Gullifty's Restaurant |
- E-Newsletter and mailing list manager
|
Steckman's Memorials |
- Online store for gravestones
|
Cavanaugh's BrideShow |
- Highly customized bride and vendor database
|
Lorenzi Lumber |
- Content Management System: administer current ads, portfolio items, and promotions
- E-Newsletter and mailing list manager
|
Northeast ATTC |
- Content Management System: administer news items, links, and training events
- Online store
|
Pennsylvania PIC |
- Content Management System: administer news items, links, and training events
|
Welker McKee |
- Searchable database of professional installers in plumbing and heating
|
Summers and White |
|
Corporate Air |
- Content Management System: administer specifications of a fleet of aircraft
|
KitchenPerfect |
- Online store for kitchen products
|
Advanced Identification |
- Web-based file transfer application
|
Rolliers Hardware |
- Content Management System: administer news items
|
Max and Annie |
- Small online store for children's books
|
Beginning With Books |
- Online store for donating books to children
|
Detatils of Selected Projects
Below are some in-depth descriptions of a few of my simpler projects.
I haven't updated these since 2003!
Energylinx
Residential energy rates comparison calculator for the U.K.
• Customer authentication and data collection
• Automated batch processes handle most signups nightly
Administration area to update energy supplier records
Energylinx is an independent company which allows residential electricity and gas customers to compare prices between all available suppliers in Great Britain. After a customer enters details of their energy usage, the tiered rates of all energy suppliers are run through formulas to find which suppliers will offer this customer the lowest rates. All energy suppliers' rates are stored in a MySQL database and administered through a password-protected control panel. I developed all the back-end logic and data storage, and Lemon Digital Design of Seville, Spain, designed the site front-end.
Following are screenshots of the site's functionality (the site has been redesigned since these screenshots were taken):
- Energylinx home page, where users can compare prices for electricity, gas, or dual-fuel providers or access lots of information about the energy industry.
- Starting with the Fuel Calculator, the customer enters details about their current energy usage and energy supplier.
- The Calculator Results Table shows the providers which offer the customer the most savings. The customer then can choose to apply for new service from a provider listed.
- A Rate Detail pop-up window displays details of each provider's energy rates.
- Customers log in to switch to a new energy provider.
- Customers sign up with their address, banking, and energy meter information. A confirmation e-mail is automatically sent upon completion.
Babyland
Developed an online product catalog in PHP, MySQL
Site development in HTML, CSS
Babyland requested a full-fledged product catalog application for their baby products site. I designed a CMS (database and administrative menu) which allows the client to easily store and access the product information present on their web site. Here are two screenshots of the administrative area: add a new product, and list all products.
This content management system allows the client to add/modify/delete product information stored in a MySQL database. Product data includes: name, category, images (thumbnail and full-size images can be uploaded), and a description field (which can contain a style of simplified markup or full-blown HTML tags). With a few "include" statements, my code was seemlessly coupled with the an eye-catching web interface designed by Digispire.
My responsibilities also included coding the HTML for the entire site, given the prototype Photoshop image. Discrepencies between Mozilla's and Internet Explorer's box model and handling of margins provided a challenge as I implemented the product menus text-based navigation rollovers entirely in cascading stylesheets.
Rolliers.com
Customized PHP/MySQL content management system
This Pittsburgh hardware store wanted to provide electronic access to its monthly newsletters and also display recent news updates on its home page. I implemented this with a customized PHP content management system.
In a password-protected administration area, the client can pull up a form to fill out information on each press release and newsletter. Fields included: title, date, short description, full text, and a flag indicating whether or not to display the article on the home page. Text fields can contain straight HTML or more simplified markup commands. A MySQL database stores the newsletters and press releases. See Rolliers' monthly newsletter page online.
Corporate Air
Developed a product catalog interface in PHP, MySQL
Coded the HTML for the entire site
Corporate Air sells and charters jet planes. From scratch, I designed and implemented a content management system for their fleet, allowing them to add, modify, rearrange, and delete various data and photos of their planes, as well as manage a site newsletter. Data and images of new aircraft are input a site administrator, and the changes are reflected immediately in the site's fleet listing pages.
Advanced Identification Management
Developed an FTP web application in PHP
Implemented a web-based file transfer application in PHP to greatly simplify uploading and downloading files for AIM's clients. Because browsers sporadically time out while uploading large files, a Java applet solution was added to the application. While the browser will gracefully fall back to the HTML upload method if Java is disabled, this solution proved surprisingly robust.
Max and Annie
Installed and customized a CGI shopping cart
Installed and configured a very simple CGI shopping cart for this great children's book site. Its functionality included a product list, a shopping basket, and a secure, web-enabled back end for administering pending orders.
Kichen Perfect
Customized the Miva Merchant storefront manager
I configured Miva Merchant to take care of the e-commerce back-end functions of this high-quality kitchen supply store. Miva Merchant provides a control panel to enter categories, product descriptions, and product images, and it implements a shopping cart, several payment modules, tax and shipping calculations, and reporting and inventory features.
Miva does not make it simple to implement your own custom graphical interface design. As just one glaring omission, Merchant provided no way to modify HTML <HEAD> and <BODY> tags. I tracked down and installed OUI modules which allowed our JavaScript image rollovers to function as originally designed. The DisplayWizard and Body Tag Insert modules proved invaluable for resolving my issues.
Teresi.us
Full lifecycle site creation
I designed and developed the very site in front of you. All of the content, coding, design, and most of the photographs are my own work. Some of the steps involved were:
- Secure the domain name
- Arrange reliable hosting (Apache, PHP, MySQL, unix shell access...)
- Architect the site navigation
- Design the interface my own photographs are used throughout the site
- Color-correct, sharpen, crop, and optimize dozens of photographs
- Write all the content
- Code the HTML and stylesheets
- Optimize links and content for search engines and intended audience
- Test across browsers and platforms
- Analyze traffic in web logs
The site-wide navigation bar, banner, and footer are implemented as PHP include files to allow for easy maintenance and the possibility of future dynamic content. After testing the site on PC's, I had to scrap a semi-transparent PNG image originally used in the banner navigation because of blatant lack of support for PNG alpha channels in Windows Internet Explorer 5-6.
|
|
|
LearnFromMyMistakes.com
|
LearnFromMyMistakes.com
Site development in HTML
Partnering with a graphic designer, I developed the HTML in LearnFromMyMistakes.com for Lear Communications. Lear Communications interviewed successful people and asked them about the mistakes they've made throughout their careers and how they dealt with their toughest challenges. Their advice is now available on the web for others to learn from.
Blackburns Pharmacy,
Don's Appliances,
IRETA,
Welker McKee
Coded these sites in HTML
With interfaces provided by professional graphic designers, I turned design concepts into HTML-coded web sites using Adobe Photoshop/ImageReady and Adobe GoLive, and BBEdit for hand coding.
Previous Work Experience
IBM
Oct. 2000 - Aug. 2001
While employed as an IBM I/T Specialist I worked with an engagement manager in organizing teams of consultants on several IBM and Goodyear projects at Goodyear headquarters in Akron, Ohio. Using Microsoft Project and a Lotus Notes repository, I assisted in tracking project milestones, pinpointing issues/risks, and organizing status meetings and reports.
Additionally, throughout a fast-paced two week class for Java developers, I programmed my own simple online banking web application using IBM VisualAge for Java and IBM WebSphere Application Server. The application contained a half dozen pages of JSP as the user interface, including pages for logging in (and performing user/password validation), viewing account balances, transferring funds between accounts, and viewing the transaction history. JavaBeans and the HTTP request and response objects served to deliver data between the half dozen pages of JSP and as many Java servlets, and user tracking was accomplished through the HttpSession object. The business logic layer was connected to a DB2 database (containing customer and account information, attached via JDBC) and communicated its results to the servlets via another set of JavaBeans. After successfully designing, coding, testing, and debugging this project from the ground up, I finally became comfortable writing a full scale dynamic web applicationsimple Java servlets fronted by HTML, JSP, and JavaScript.
Color Bar Media Group
March - Sept. 2000
As a web developer/designer at the Color Bar Media Group, my responsibilities grew to encompass much of the companys web site production tasks. In addition to normal site maintenance, I met with clients, helped develop their web strategies, created prototype sites, and designed and developed the actual site using HTML, Adobe Photoshop, ImageReady, and GoLive. My responsibilities have spanned all aspects of graphic design and coding involved in the production of a web site. Our largest project pushed the bounds of HTML and included extensive use of layers, JavaScript, DHTML, and even my own custom-developed Java applet.
NCSA Java 3D Position
Part time: Sept. - Dec. '98
Full time: Jan. - May '99
As an employee of the Java 3D Group at the National Center for Supercomputing Applications (NCSA) at the University of Illinois, I wrote applications in both Java and Java 3D, an API which provides high-level 3-D graphics extensions to the Java standard. Part of my job was to expand the functionality of NCSA Portfolio [no longer online], a library of tools designed to help developers create cross-platform 3-D visualization applications. One of my typical assignments was a full life-cycle development of a graphics model loader. I located the specifications for a 3-D graphics file format (for instance, the VTK format), I designed an extensible, object-oriented algorithm which could parse and read the file, and I wrote the Java code and of course tested and debugged it. This enabled users of NCSA Portfolio to acquire and manipulate 3D models which had previously been designed and stored by others.
As part of a separate self-initiated project, I wrote two separate Java applications which would simulate the growth of a tree, displaying it on screen and rotating it in three dimensions. Screenshots are available. The first program did this using a hard-coded branching algorithm based on randomized bifurcation angles. The second program was more sophisticated and modular and was designed to interpret L-systemsrecursive lists of rules which can be used to graphically describe plants as they occur in nature. Supplied with the proper L-system, this program was able to produce a more pleasing and accurate representation of a plant.
Video Phone Project in Java and C
Grad School, UIUC, Feb. - May '98
As part of a four-person project to design and implement a "video phone/video recorder" application for a grad school multimedia class, I helped to design a unique, customizable quality-of-service protocol for transporting full duplex video and audio data across a high-speed ATM network between two HP unix workstations. The networking and audio/video I/O were handled in C, and that code was tied to a Java QoS negotiation protocol and user interface through the use of JNI. I helped design the protocol and structure of the entire program, and I directly coded the multi-threaded Java interface using the Abstract Windowing Toolkit API.
According to our quality-of-service protocol which negotiated at connection initiation, the final program was actually able to read, transmit, and receive audio data without drop-outs over UDP (chosen over TCP for its speed) while at the same time reading, transmitting, and displaying (or writing to a file on disk, in video recording mode) as much full-duplex full-motion video as the bandwidth on our lab ATM network could sustain (a lot).
Artificial Neural Network in Java
Undergrad project, Univ. of Toledo, Jan. - Dec. '97
As part of my self-initiated undergrad honors project and continuing into grad school, I studied algorithms for different multi-layer backpropagating neural networks and implemented one as a fully object-oriented application in Java. I included a graphical interface to allow customization and to depict the processes which take place inside a neural network (screenshot available here).
During the network's learning mode, a set of input signals were applied to the first layer of neurons, and the signal was propagated through weighted synapses to subsequent layers until reaching the output layer. Finally, a difficult backpropagating algorithm would then adjust the synapses according to their mathematical distance from an ideal "learned" state, and the process would be repeated.
Unix E-Mail Client in C
Undergrad project, Univ. of Toledo, Feb. - Mar. '96
I designed and implemented an e-mail client functionally similar to Pine or Elm, for a final class project. In order to send and receive e-mail, the program talked SMTP to a mail server over port 25 using sockets. A dual-paned text interface displayed both the user's inbox, and the contents of the currently-selected messageretrieved from a linked list of messages. This fully functional program was able to compose, send, and receive e-mail.
Other Projects
'96 - '99
Many other projects have contributed to my knowledge and experience in C, Java, and other languages. Screenshots are available on my recreational programming portfolio.
I have implemented a ray tracing algorithm in C using OpenGL, as well as several smaller applications in OpenGL such as a Sierpinski fractal and algorithms for polygon clipping and spline drawing. I've designed a networked checkers applet in Java with an accompanying server application. I've implemented a fully-adjustable JPEG image compression algorithm, using Matlab. I've written several C programs which simulate parts of an operating system, such as a continuous file system, a memory manager, and a threaded image filter. I've written dozens of scripts in unix and even on a VAX VMS mainframe. I also frequently use AppleScript to automate tasks on my Macintosh.
Web Resources
Employers:
Digispire: www.digispire.com
Energyglinx: www.energylinx.co.uk
Lemon Digital: www.lemon-digital.com
IBM: www.ibm.com
Color Bar: www.colorbar.net
NCSA Java 3D Group: www.ncsa.uiuc.edu/~srp/Java3D/
Realty One: www.realtyone.com
Personal:
My web site: www.teresi.us
My resume: www.teresi.us/resume
Technical experience (this page): www.teresi.us/experience
Recreational programming portfolio, with screen shots and source code: www.teresi.us/programming
My resume is also available (and in Word format).
|
|