Steve Zeidner
Software Developer

Front-End Web Development

January 16, 2013 · 4 min read

The state of front-end web development has changed significantly over the last couple of years. Perhaps it was the introduction of responsive design in early 2010, the release of a retina iPad and, shortly thereafter, the retina Macbook pro in mid-2012, or Adobe "killing" mobile flash in late 2011 that prompted the change. A few years ago, a front-end developer title often defined the term "developer" rather loosely. HTML and CSS were often the only required languages for this role and are really considered to be content markup languages rather than true development languages (however you might choose to define that). A few years before that, we were building websites purely with HTML and images, using tables to implement our layouts. A lot has changed. If you are interested in learning more web history, check out Eric Meyer's excellent podcast, The Web Behind. Regardless of what actually prompted this recent shift, I believe there are (at least) two major reasons that the front-end developer role will continue to be significant for quite some time:

  1. CSS and image support has gotten much more powerful and complex.
  2. HTML/CSS/JavaScript can be used to build native cross-platform mobile apps (Phonegap, Appcelerator Titanium).

CSS3, Retina Images, and Bandwidth, Oh My!

The CSS3 spec added lots of very powerful new features. Things like rounded corners, shadows and gradients can be achieved easily in browsers that support CSS3. There are also more advanced features like CSS transforms and animations which require a bit more knowledge about things like keyframes and perspective. Specific browser prefixes must be applied for many of these new features in order to ensure backwards compatibility as the spec continues to evolve. Of course, the downside to all of this is that CSS code has become hard to maintain. Fortunately, CSS pre-processors have been created to help make CSS code more maintainable and object-oriented (ish). Sass and LESS add features like functions, variables and mixins as well as code libraries (Sass has Compass). Sass does seem to be gaining in popularity for a number of reasons, but the point is that this is one more tool for a front-end developer to learn. A hot topic in the front-end developer community at the moment is debating how to support images across different devices, resolutions, pixel densities and varying connection speeds. The increasing consumer use of retina-density displays and better internet access from smartphones requires developers to think about how to potentially support multiple sizes of higher quality images at lower file sizes. There are many solutions for supporting higher resolution images on retina displays. You could detect a retina display and serve up double resolution (@2x) images for those displays. This requires two versions of every image to be created which isn't so bad. The problem is that a device like an iPhone has a retina display as does something like a Macbook Pro. The Macbook Pro could be connected via Ethernet to a fast connection and the iPhone may be on 4G now, but in seconds, it could be down to an edge connection as the user moves away from the nearest cell tower. This article does a good job of explaining the pitfalls of trying to measure or predict bandwidth at the CSS level to serve up different image sizes. So, there is some added complexity that comes with more mobile devices and retina displays. In addition, any image, whether it's targeted at a retina screen or a smartphone, should have as small a file size as possible. Tools like:

can do an amazing job of reducing file size while maintaining quality. Even with these tools, a great deal of manual effort is still required to make sure that the images maintain quality once compressed.

Mobile Apps

Because the three main "languages" in use on the presentation layer of the web (CSS, HTML, JavaScript) are so widely known, developers have come up with solutions for building mobile apps on all major platforms using these languages of the web.  A mobile app can be built completely in JavaScript (and HTML and CSS) and compiled with either the open source PhoneGap framework or Appcelerator Titanium for iOS, Android and a number of other mobile OS's. This gives any front-end web developer the tools to build mobile apps without learning a new language. It sounds like a dream come true, but in reality, most apps that are conceived are complex in nature and require a framework (like Backbone.js) to organize the JavaScript code. With the maturity of these mobile app frameworks that use commonly-known web languages, the front-end developer role has expanded to be much larger than it once was.

Conclusion

These are very exciting times indeed for front-end devs. So much new technology is being released that the door is wide open for innovation. I'm just excited that we are no longer using table layouts.

Job Interview Story

January 1, 2013 · 4 min read

I started working in IT at the age of 14. Since then, I have had six additional office jobs and many interviews in-between. Most of my interviews have been pretty standard, but a few have stuck in my mind as unusual, bizarre, or interesting in some way. After reading the Facebook Recruiting Feedback article, I was inspired to share a few of my interview experiences here. I'll begin with one of the bizarre interviews.

I had first heard about the job opening from a friend. He had been doing some contract work for them and mentioned to me that they were looking for someone to help redesign and manage their website as they had a new product to promote. He set up the interview and told me that they had a great product and business and also wanted me to know that Brian, the owner, is a little eccentric. He is an inventor after all.

The Interview

I was greeted at the door by a friendly dog, followed by Brian who exclaimed, "Look at those sideburns - you look like Wolverine!" (at the time, they were very wolverine-esque). I followed Brian into the workshop at the back of the office. This workshop was really a warehouse-sized room filled with old cars, motorcycles and dozens of drum kits. We sat down around a table strewn with electronic parts, soldering irons and detailed drawings of the next product he was designing. The interview began with Brian expounding on the history of the business, the vision behind the new product and comparisons of himself to Walt Disney. Then he gave me a piece of paper and asked me to show him how I would redesign the site. A bit thrown off, I fumbled for a little while and just said the first things that popped into my head. After about 30 seconds of this, he got up and started pacing back and forth and began telling more stories about his visits with Apple executives and how some designers from Apple were coming in the next day (Saturday) and asked if I wanted to come in to be there while they went over some of the interface design for the new product. At this point, another employee came in to see if Brian wanted to step into another interview to meet a potential new receptionist. "Is she hot?" was his (inappropriate) response. He got up to go to that interview, leaving me to chit-chat with another employee for the next 20 minutes or so. When Brian came back, he decided that he was interested in talking about drumming as he had heard that I played as well. While he went on about the many bands that he had played with and rock-stars he had met in the past, he walked over to a weight bench, strapped on his lifting gloves and did some bench presses. Once he had completed a few sets, it was lunch time. Brian mentioned that he had some lunch plans, but was hoping I could come back after lunch and maybe he could hear me play a bit on the drums. I decided I had seen enough for one day and politely declined the offer to come back. He said that he would be in touch about the job.

The Follow-Up

As it turned out, the company must have not really had the budget to hire because they wanted me to contract for several months until the new product was launched and then they promised to hire me full-time. Between the strange interview and no guarantee of a full-time position, I was not exactly convinced to quit the job I had at the time. I told Brian this and his response was to get together for lunch and talk about doing some freelance work. We had lunch at P.F. Chang's and talked about some possibilities for the site, but when we left, everything was very much up in the air. Brian called me several times, mostly to talk about another potential hire he was making. Every conversation we had seemed to go nowhere and I eventually just wanted to cut ties, so I sent this email: "Regarding the job...when you feel the time is right to create a position and you have an offer for that position, I will consider it at that point. Right now, I am not quite ready to quit my current job without something for sure to go to." He simply responded: "I gave you Changs call me." So, I called Brian. He proceeded to question my integrity (I still don't know how this came into play) and tear me down personally, so I said right there that I was not interested in ever hearing from him again. That ended a very strange interview saga, and to this day, every time I go by a P.F. Changs, I think to myself "I gave you Changs call me" and I laugh every time.

IPA Episode 1: Responsive Web Design

December 28, 2011 · 0 min read

IP Address is a little video blog that I'll be doing from time to time. It will consist of my ramblings about web design and development and hopefully have some interviews in the future as well. I will also be trying a different IPA in each episode. This one is all about responsive web design. A few related links that are worth checking out as well:

P.S. I'm working on a brand new responsive design for this website. Check back soon to see it.

Run with Scissors 2011

December 27, 2011 · 5 min read

This year, I signed up for Run with Scissors on a whim. My fall race schedule had been filling up, so I decided to just have a fun day and run whatever pace felt good. Leigh and I drove up from Columbus early Sunday morning. After Roy’s race instructions (enjoy yourself and DO NOT LITTER), we lined up in the brisk foggy weather for the start. I took the first section slow so as not to risk a fall in the dark and ended up running with David Peterman most of the way to Pine Hollow. There was only a bit of cold mud in the meadows and we joked that we might be found later in the race icing our sore ankles and feet in these spots. We both breezed through the aid station at Pine Hollow and made our way toward Quick Road. Mike Nicholson, who was out in front, had taken a wrong turn at Quick Road and we did the same. The three of us ran up and down the road for a bit until we all realized (seeing some headlamps through the woods) that we were just supposed to go straight across to pick up the trail. The trails were getting sloppy through this next section so I decided not to push it too hard at this point, knowing that we would hit this mud three more times and it would only get worse as more runners came through. I decided to get some solid food at Covered Bridge as my stomach had been queasy all morning and I thought that might help settle things. I looked forward to a good mix of walking and running through the next section and got some bonus stream crossings thrown in as well. The section back from Covered Bridge back to the Pine Hollow aid station was filled with mixed emotions. I enjoyed seeing more faces on the trail and eventually ran into the lead marathoners as I neared the aid station. I mumbled a quick hello to Vince Rucci who was leading the men and Beth Woodward who was out in front of the women. As I neared Pine Hollow, I had all but made up in my mind that I was going to call it a day after one loop. I was tired, my legs had not recovered well from a previous race and my stomach was just not settling. I asked my wife if she would meet me at the turnaround (not telling her that I was thinking of dropping). I grabbed some grilled cheese sandwiches hoping they would at least get me through the next couple of miles. I saw Roy coming up one of the sound of music hills and he mentioned to me that I only had about a mile and a half back to the turnaround. This was good news! As I got close to the shelter, I saw the first and second place runners heading out for their second loop. I still was not feeling very good at the turnaround, but I told myself that when things are bad, there is always the chance that they can get better. I was hurried out of the aid station and back onto the second loop (I guess I would not be stopping here after all). Eventually, I caught up with Scooby (in second at this point) who was suffering from some foot pain and trying to walk it off. I walked with him for a few minutes until we eventually parted ways. As I made my way back to Pine Hollow, the endorphins must have started firing as I miraculously began to enjoy running again. The weather was perfect, the fall colors were vibrant and it was a great day to spend some time in the woods.  I took another S!Cap thinking it was about time for some more electrolytes and picked up the pace. My feet were still numb, but the sun was warming everything else up. Reaching Pine Hollow, I heard that the leader (Mike Nicholson) was just a minute or two ahead, so I made it my goal to catch him on this next section. A couple of miles in, I suddenly felt queasy again and stopped for a quick upchuck – too much salt - yuck! I felt better immediately, though, and kept moving. Eventually, I caught up to Mike and asked how he was feeling. His response was, not great, but hey, we were 35 miles in, so that’s to be expected. From that point, I ran up the hills as hard as I could on the way to Covered Bridge, but eventually lost steam as I had burned through all the calories I put in earlier. I saw Mike again as I was heading out from Covered Bridge which was a good reminder to keep moving. Perkins Loop (the section after Covered Bridge) was a nice mix of running and walking the hills. Reaching Covered Bridge again, I stocked back up on calories as I was really dreading slogging through the mud this one final time. I knew it was going to be a long haul back to Pine Hollow, so I prepared mentally for what was to come. As I splashed through the mud and muck on the trail, a healthy fear of being passed at this point in race kept nagging in my head, driving me to keep running even though I felt like just walking it in. Nearing Pine Hollow, I decided not to stop for a refill of anything and just hammer out the last couple of miles to the finish. Well, two miles was a lot longer than I had pictured in my head, so I fought to keep moving as I knew each step brought me closer to the end. As the finish line came in to sight, I felt an overwhelming sense of joy knowing that I had run my best for the day and that there was a chair with my name on it to rest these tired mud-ladened legs.