Advancial Federal Credit UnionLocation
Dallas, TexasTime in role
What is a web developer?
The world of web development is complex, and there are seemingly endless job titles associated with it that all vary in level of responsibility. However, all share some common elements.
A web developer does a little bit of everything; the role is a cross between a systems programmer and a web designer. The Director of Programming at Advancial often introduces me with the description, “he makes our sites look pretty and easy to use.” Each organization defines the responsibilities of their web developers a little differently, and the programming languages they use vary. In general, web developers are responsible for building websites from start to finish, from the database to the user interface (UI).
At my organization, I am required to know how to create an SQL database, build tables, write stored procedures, and write C# to add-to, remove, and modify data in the database. If needed, I go to the system programmers for help, since their role is focused primarily on backend functionality. Because I am a web developer and not a systems programmer, the majority of my job falls in the realm of the user interface (UI).
CSS basics are easy to learn. However, it's a nuanced language, which makes it both very powerful and very easy to mess up. I often use the jQuery library, Grunt, and occasionally Angular JS in order to create an interactive and engaging UI.
My role is fairly typical, but one thing that may differ is that I rarely ever request graphics from our marketing department, since I can create them myself. I started off as a graphic designer and even acted as an Art Director for a number of years. It is much faster and has better results if I make the graphics myself, because I know the size the images need to be, what format to save them in for the given situation (e.g., PNG, SVG, JPG, GIF, etc.), and what colors and shapes will be around them. I don't have to try and explain what I want, I can just make it myself.
What do you love most about your job?
I love that this job is always a challenge. No two projects are ever the same. There is always something to learn, and even if a project is similar to one that you had a few years back, the web technologies change so quickly that it's unlikely that you'll build it the same way. I always hated jobs that got stale and forced you to do the same thing over and over.
In web development, my mind is always engaged, and I'm always trying to find a better way to accomplish my goals. There are so many different ways to get the same results, but some are more efficient and stable across multiple platforms. I can't be satisfied with the status quo; finding a better way is part of my job. If there isn't a better way to do it today, there probably will be in a few years when I fulfill a similar task.
Other things that I like about my career are being able to work remotely a couple times a week, shift my schedule as needed, and not be tied to any one industry. I have worked in real estate, security, healthcare, audio equipment, jewelry, banking, and many other industries. A web developer doesn't need to know much about the specific industry, the content writers and company owners are responsible for knowing what needs to be on the site.
How did you get into CS?
I took a multimedia class in high school, and one assignment was to create an animation in Flash.
My teacher liked mine so much that she entered it into a state competition and I earned second
place. I used to draw and do other forms of art all the time. That class was where I realized I
could do it on a computer, and I really liked it. This inspired me to choose graphic design as my
major in college.
Getting into web development wasn't planned. When I took a job as an art director for a marketing company in Salt Lake City, Utah (I have no idea how this happened, but it did), they never mentioned that building websites would be part of the job. Two days in, they handed me a list of updates for our website.
I got a few deer-in-the-headlights looks as it dawned on the company that they had neglected to bring up the need for web development skills. Fortunately, instead of letting me go, they got me some books and I spent the next few months fumbling any bit of knowledge that I could. During my time there, I enjoyed the web development work so much that I eventually left the job to pursue it full time.
What did you have to learn to qualify for the job you have now?
In the interview, I told them that I did not know C# or SQL, but that I had dabbled in PHP and MySQL. They told me that they would teach me C# and SQL, but that my first year would be focused on going through their existing systems and updating their look. So, I had time to ease myself into the parts of the job that I hadn't mastered yet. I've been here for three years now, and I've spent a lot of time online studying and bugging my colleagues for pointers, which has really helped me get better at the backend process.
Do you have a degree in CS? If not, how did you learn?
No, I do not have a degree in CS. My degree is in graphic design. I suppose it is slightly related, since it does require the use of a computer, but I learned web development on the job. When I received site requirements and got stuck, I went on forums and tutorial websites seeking answers. Over time, my visits to those sites became less frequent. In the beginning, tutorial sites were my primary source of learning. But as I got comfortable with the basics, forums became more common. My questions had become too complicated and surpassed what tutorials typically covered. Now, I read articles from Smashing Magazine, CSS-Tricks.com, and random Google results to keep myself up to date.
I took a good route to get where I am; a design degree has been extremely helpful in both finding web jobs and performing my duties. Would a CS degree be helpful for a web developer? Absolutely, but it really depends on what you want to specialize in. If making great user interfaces is what you are after, a design degree would be more helpful. If you are after a more data-driven position, a CS degree would be better.
If you're seeking a job in this field but hold an unrelated degree, get some certifications. Certifications take much less time to earn, and you can still get the jobs that require a degree. Ultimately, as long as you are good at what you do and have examples of your work, potential employers will consider you.
What is the most challenging part of your job?
Surprisingly, browsers are the biggest challenge. The Big Four (Chrome, Firefox, Internet Explorer [IE], and Safari) all have their own little quirks and failures. IE is the biggest culprit. Even the latest version, IE11, has far more limitations and issues than its competitors, but since I work at a credit union, we have to support older technology. We still support IE8, while many industries only support the latest two versions, so I had to create effective fallbacks for older versions of IE.
Modernizr has been very helpful. It detects which features a browser supports, and I can create fallbacks accordingly. This is better than browser detection, since there are so many different browsers with different feature limitations. I love using SVGs whenever it makes sense; they look so much better on mobile than a PNG or JPG. However, IE8 doesn't support this, so I make PNG fallbacks.
While dealing with browser inconsistencies can be difficult, I wouldn't say that I hate it. It can be fun coming up with a backup design or behavior for browsers that just don't get it.
Do you work on a team or independently? Do you work remotely or manage anyone?
The answers to these questions vary from project to project. My team consists of a web applications developer, several systems programmers from varying disciplines and skill levels, and myself. The reason for the heavy backend to frontend ratio is that banking systems require a lot behind-the-scenes maintenance.
We often work together on bigger projects, like online banking or the software that our member service representatives use. On smaller projects, one of us may be assigned to handle the whole thing from start to finish. Multitasking is an important skill to pick up. I may have an individual project that takes up most of my time, but since my specialty lies in the frontend, I'll often need to stop and either give pointers or write code for the other members of my team.
We have the luxury of being able to work remote twice a week, and email and web meetings help us to collaborate when a project requires multiple people.
I don't personally manage anyone, but our project managers come from programming backgrounds. This is helpful since they have an understanding of limitations and possibilities while discussing projects with stakeholders.
Could you explain a project that you are directly (or even indirectly) working on now (or recently or soon) that excites you?
At the moment I am on the tail-end of an individual project that the CEO and his team insisted get moved to the front of the line. While the project certainly had its headaches, due to many of the requirements being new to me, it is coming along very nicely.
The purpose of this project is to allow different departments to propose new projects to the Board of Directors (BOD). This process exists already in our intranet, but is not accessible from outside the organization. Workers wanted to be able to pull out a tablet, phone, or laptop while not in the office and create new project proposals, or edit existing proposals. The existing system is also limited to one attachment, and the executive assistant has to manually create a single PDF based on that attachment after it is submitted. You also cannot save work as you go, so if you accidentally hit the back button, or refresh, you'll have to start over. That is daunting when you have 60 fields to fill out. Oh yeah, and it only works in IE.
My new system allows employees to work on the proposal from anywhere, and every time they click out of a field it auto-saves. I've added a multiple-upload AJAX component, so they can upload as many PDFs as they need to. There is a preview button that generates a single PDF–formatted the way BOD likes it–complete with their attachments merged in. When users press submit, a final PDF is generated and an email with a link to the PDF is sent to the executive assistant. For this project I also wrote my own custom-designed dropdowns and multi-select dropdowns, which was pretty cool.
How do you stay up-to-date on innovations and development in your field?
I typically need to keep up on things through research, and there are a number of resources out there for that. When I started out, it was a lot harder. Newcomers today are very lucky to have these resources at their fingertips.
There are two sites that I go to very frequently: CSS-Tricks.com and StackOverflow.com. CSS-Tricks is loaded with tutorials and tips, covering everything from the basics to new gadgets. StackOverflow is most helpful when you know what you want to do, but don't know how to do it. You simply type your question in a search field and get a list of related questions/answers. The answers are usually very helpful, and if your question is a new one, you can wait for fresh answers to come in.
Aside from those two sites, there are several other sources for learning. My company subscribes to
PluralSight.com, which is a library of video tutorials on basically any programming language you can
think of. This includes Google's new GO and even some language libraries, like jQuery and
Codepen.io is the place to go to share samples of your own work. They separate the different components (CSS, JS, HTML) and show live renderings of the code that you put in each section.
In the rare case that I am not super busy, I will go through some tutorials, but typically I have to make time to read an article every couple of days. I enjoy the constant learning, which makes this field wonderful. If you want to remain relevant you have to do some sort of continuing education. The resources above will help.
What advice would you give students who want to follow in your footsteps?
Don't be that guy! Don't hold back and depend on other people's work. Try and fail. You will fail more than you will succeed, but if you push yourself on each project, you will find yourself doing things that you thought only other people were smart enough to do. You won't even realize how far you've come until you look back on an early project, or consciously reflect on what your limitations used to be. It comes gradually.
The bottom line here is fail, fail, fail until you succeed. Maybe you'll have to stay up late doing research or take Tylenol to ease the headaches, but put as many tools in your belt as you can. The web won't wait for you, and some eager developer out there would be happy to take your place.