Code

My main discipline focus has been front-end web development. I’ve been professionally developing primarily on the front end side since 2007. It didn’t take long to get into PHP templating especially with the average CMS. I’ve been procedurally efficient in PHP since about 2008 and have in the last two years worked to develop my abilities with MVC style server side development. Working with a CodeIgniter variation and now Laravel at my current position I’ve gotten a lot better at data handling and separating logic from views.

All of my development is user driven; is it relevant, is it intuitive and could your regular business person be able to manage the system? I’ve dabbled in UI design in regard of development flow, from client, to designer, to front-end developer, to back-end developer, to Quality Assurance and finally back to client. I believe a product should be easy to hand off and use.

Front-End

Front-End Development is taking what the client needs to express to their users and displaying it in a branded and useful maner. With the way users move around the Internet and consume information, it’s imperative to make a statement quickly and in an interesting enough way to get them to interact. It’s often the job of the sales person or account manager to narrow down the goal of the website, but all the way from design through to quality assurance, it’s imperative the client goal is the driving force.

As a front-end developer, it’s my job to actualize what the client and design has created and package it programmatically for back-end development to be able to easily plugin data. I often feel like a bridge between the two processes and love working within the process.

HTML5/CSS3

html5-css3

HTML5 is an evolution of HTML. I never feel like hiring managers really know what they’re asking when they come up with the question, “Do you know HTML5?” In an effort to create a more semantic web, HTML now has several elements that describe their function better.

Example:

<header> <footer> <nav> <section>

 

There are also graphic and media elements that are a bit more cross browser compatible than they used to be.

Example:

<svg> <canvas> / <audio> <video>

 

So in short, yes, I know HTML5, but DOM markup and the self describing elements are the least complex of the front-end technologies needed to be proficient in development.

CSS3 is quite a bit different from the days of basic styling. Webkit introduction saw days of a lot of neat new features and animations but for a long while had no cross browser standardization. Kids these days will never know the painful days of margin positioning or table layouts. The thing that trips up most developers is inheritance and how it effects layers. CSS3 has allowed us to move away from images allowing for faster load times which for mobile is especially important. CSS3 is a vast improvement but suffers somewhat from a technology that’s been around a long time and needs to be backwards compatible. (Why is there no shorthand for absolute positioning already?)

FLEXBOX

A quick note on Flexbox - it's the new future. No more bloated responsive frameworks. Not to say those frameworks haven't been amazing, but it's something that should definitely be native to these technologies. I know the major concepts but haven't utilized it in most sites at this point as some older browsers need to deprecate. I'm looking forward to adopting it as soon as possible!

SASS/LESS

sass-less

Preprocessor languages are a major step forward in traditional site styling. The ability to treat cascading styles in a programmatic way has pushed front-end development into a new era really. It also allows for better flow in terms of following views and modularizing code pieces (BEM anyone?). Implementation of variables makes it easier to pick up code and utilize it for other projects. Along with tools such as Gulp and Bower, it's almost silly to not use one of these great languages.

I've had experience with Neat (Sass responsive framework) and Bourbon (Sass mixin library) and tend to code in Sass more often. I started in Less though and the similarities are more bountiful than differences.

JAVASCRIPT/JQUERY

js-jquery

It's important to know JavaScript. I utilize namespace patterns and often work with JSON files for APIs. Scope can be a confusing monster otherwise. As WordPress moves toward the API crowd, I look forward to having more front-end freedom, perhaps utilizing Angular and it's neat routing capabilities. As it stands, jQuery is still a great out of the box library and I often use the UI for smaller projects or prototyping. The WordPress crowd is a big fan of jQuery, most themes or plugins will use it and so it's just a good skill set to have under the belt.

I tend to use a mixture of jQuery and Javascript for most projects.

jQuery(document).ready(function($){
 //Plugin Namespace
 var GOtheme = {
  functionName1: function(){
   //jQuery code goes here
  },
  functionName2: function(passingData){
   //jQuery code goes here
  }
 };

 //Call functions here under namespace to avoid naming conflicts.
 GOtheme.functionName1();
 GOtheme.functionName2('#element-to-pass');
});

+

Back-End

Back-End Development is full of unsung heroes. While design gets to show off a great looking site and front-end gets to showcase and actualize it, most clients are happy with the back-end as long as it "just" works. You've made the query more efficient and less taxing on the database increasing the speed of the return on results by five seconds. Great, can you still send to a specific email address?

Ultimately it's okay, that's why clients come to you, for your expertise and experience. You've been in the trenches, tested out what works and what doesn't and are an avid researcher - there's always so much to learn. Sometimes your coworkers don't even get it and are often consumed by deadlines and client pressure. One could slap paint on a junkyard car all day, but without an engine, it's just a pretty heap. In this car analogy it's often much more important the car can drive. Back-End is the backbone of the industry.

Moving along the car analogy, every piece has its place. People like the current Maserati model over the 78' Ford Fiesta, but people will take the Fiesta over the Maserati if the Maserati doesn't drive most every day.

Even though my focus has been front-end for the last half decade, I find eventually you're going to have to pick up pieces from other disciplines in order to work as a team and do what's best for the client.

PHP/MYSQL

mysql-php-logos

My first real experience with PHP is when a company I was working for in 2007 decided to move from static HTML pages to PHP templating. (Imagine the irony of the industry working its way back to static.) We weren't using a CMS at the time, just includes files for header, footer and navigation. We'd occasionally have a client who wanted an ecommerce solution and we offered ZenCart at the time. I moved my way into more procedural PHP as I had the occasional opportunity to work on the ecommerce sites. I then moved from that company to one called Verango Media that offered Veracart - a custom PHP ecommerce solution. It was more user friendly than ZenCart and we'd integrate it generally into existing sites.

Over the years I got stronger with procedural PHP, especially as many agency houses picked up WordPress which seems to have successfully transitioned from a blogging platform into a fully customizable CMS. As I got better at hooking into WordPress' core functionality I got better at chasing code.

I really picked up OOP capabilities at my time with GCommerce, an online marketing company that specializes in hotels. They used a custom theme with an MVC layer evolved from the CodeIgniter framework. I got much better with classes and building objects to pass to the front end for display. If nothing else, this made me better at preparing the front end to be fused with the back end. My time there also helped me understand how data can be grabbed from database tables, filtered and passed elegantly to the view. GCommerce was a great and challenging company to work for as a developer.

I've started to study data architecture and how databases can be constructed. I do a fair amount of planning in custom addons or plugins with EDRPlus to not only strategize data schema but relationships as well. I look forward to being able to continue to develop these skills and work on bigger and more complex projects.

As far as MySQL specifically goes, I've used PHPMyAdmin, often use Sequel Pro, have used MySQL Workbench, but have graduated to command line. I'm working towards getting better with being comfortable writing queries before I move on to Laravel's Eloquent ORM. I've had a lot of recent experience with scheduling and inventory tools.

More coming...