Web Development
Successful web development projects all have a few things in common: effective communication for the project duration, the skill to meet the demands of the project, and a solid technical management process that includes meticulous quality control. Each project I undertake is supported by these three qualities.
I am available to work independently or as part of a team, on a project from start to finish or on a particular component of a project, and on short-term projects or on long-term projects.
I specialize in PHP/MySQL back-end and HTML/CSS/JavaScript/jQuery front-end development, which includes but is not limited to CMS solutions like WordPress, Magento, or Drupal and frameworks like Zend or Laravel. However, I have completed projects in a variety of other technologies and platforms. For a detailed list of my skills, please see the About page.
When working independently on a new project, I follow a development cycle that includes:
-
Gathering business requirements.
This discovery phase includes understanding the purpose of the projects, specific goals and specifications, and sharing project assets, like content, image files, graphic design mock-ups, etc. This is a critical step that is often skipped or minimized on projects with poor or delayed outcomes. A project can proceed linearly or iteratively. In a linear project, the majority of the requirements and detailed specifications are defined prior to the start of development. In an iterative development cycle, basic requirements are defined to inform a general architecture. Development then begins and is frequently evaluated with an eye towards honing the business requirements, providing additional project assets as they become available, and refining the corresponding technical requirements and implementation. There are arguments to be made for either approach; the appropriate approach largely depends on the client’s goals.
-
Defining technical requirements and architecture.
Once business requirements are understood, they can be translated into an implementation plan. An implementation plan may include one or more proposed solutions and estimates for each component of a solution. In the case of a linear development strategy, the implementation plan should be detailed enough that any significant gaps between the project requirements and the implementation plan can be identified.
-
Development.
Depending on the client’s preferences and existing infrastructure, development may begin by setting up a development environment with a web hosting provider. In other cases, development may proceed entirely within a local environment. The selected development approach will also have an impact on project setup. After project setup, the implementation plan guides development efforts. In an iterative cycle, the development phase is repeated as the requirements are refined and the implementation plan is updated.
-
Testing and debugging.
Testing and debugging occur throughout development. In an iterative development cycle, the client as well as the developer is involved in the testing that occurs during the development phase. This phase follows the completion of the development phase and is a period of testing with an understanding that deployment is the next step. This phase includes site-wide testing by both the developer and the client. If development was done locally to this point, there may be a need to set up a testing environment with a web hosting provider. It is recommended that two sites are set up on the server to be used for the live site, one with the production URL, like http://mysite.com, and one with a development URL, like http://dev.mysite.com. This ensures that there are no environment-specific surprises during the deployment phase. During the testing and debugging phase, thorough cross-browser and device testing is performed in addition to functionality and requirements testing. Clients have the opportunity to make sure that all business requirements are being met and that the site is user friendly from both an end-user’s perspective and an administrator’s perspective. At the end of this phase, the goal is to have a client-approved website or component that is ready to launch.
-
Deployment.
Once the site has been thoroughly tested and approved, preferably at the development URL on the production server or a server that is identical to the production server, it is ready for deployment. Often, deployment is fairly simple. It can consist of updating the IP address to which the live URL points and then, once the URL has propagated, doing one final round of testing to ensure that everything is working as expected. In the case of a project component being deployed, the component is added to the live site via a revision control system like Git (recommended) or via a file syncing utility. A final round of testing ensures that the component updates are successful.
If you’d like to learn more about my web development services, please contact me.
Support and Maintenance
I provide support and maintenance services that include training, general technical support and guidance, website content administration, SEO and marketing related activities, and software and server updates and maintenance.
I build solutions that are user friendly and empower my clients to grow and edit their website without the intervention of a developer. To help facilitate this, I offer training and technical support services that include detailed, easy-to-understand written tutorials, live video training sessions, recorded video tutorials, and technical support and guidance as requested.
While an application or website may have user friendly administration, it doesn’t often come with a dedicated content editor or SEO optimizer. I can help fill any gaps on either a temporary or long-term basis.
The other facets of website maintenance are under the hood.
No matter how reliable or modern a car is, it periodically requires new tires, car washes, and maintenance checks. A website is often seen as “complete” upon deployment, but it is actually more like a car leaving the sales lot. No matter how brilliantly built a website is, it will require updates and some level of monitoring.
From simple to complex, I offer website and server maintenance services that include monitoring for and installing updates as needed, keeping abreast of the latest security news, managing website traffic to block suspected bots, monitoring for viruses, and removing them and blocking holes as needed.
If you’d like to know more about the support and maintenance services I offer, please contact me with any questions you may have.
Management
Sometimes a technical project is large enough or has a tight enough deadline that it requires a team of developers to successfully complete. Development teams often come with a project team manager, but it is often the case that an experienced technical manager is needed to manage the project from the client’s side. Many companies may not regularly engage in large technical projects and do not have a need for an in-house technical expert to lead such efforts.
I provide technical project management, which typically includes elements of the development cycle discussed in detail under the Web Development section. Specifically, as a technical manager or lead, I can be an advocate for my client by overseeing or conducting the discovery, technical requirement, and testing phases. I can also conduct architecture and code reviews during the development phase to ensure that the invisible pieces of the project are clean, well-documented for the next developers, and extensible.
I have managed both projects that are just getting started and don’t yet have a development team and others that are well underway. Typically, if the project is well underway, I am being brought in to correct a sinking ship. This is commonplace for companies without in-house technical expertise that need to hire an external development team. There is, rightfully, every expectation that the development team will provide the product that the company needs. But this often doesn’t happen when effective communication, adequate skill to complete the project, or project oversight and quality control are absent or insufficient.
As a technical project lead, I can help to guide the project in the right direction by ensuring continuous and responsive communication, identifying any gaps in development skills or expertise, and providing oversight and quality control.
If you’d like to learn more about how I may be able to help, please contact me.
GIS
I have more than a decade of GIS analysis and development experience and was previously certified as a certified Geographic Information Systems Professional (GISP). I have a Masters Degree in Environmental Monitoring, which is an intersection of GIS, remote sensing (primarily satellite and aerial imagery), and image analysis. Nearly every field has a geographic component that can be explored and used to enhance existing workflows and business analyses.
Additionally, every website has a built-in geographic component in its audience. This can be utilized to learn more about an audience, create more targeted marketing campaigns, and serve more relevant content.
If you’d like to learn more about how GIS might benefit your business, contact me to discuss the possibilities.