Tag Archives: Stack Overflow

Developer Profile: Dave–Consultant and Freelance Web Developer

Dave is a consultant and freelance web developer who does both front-end design for applications that provide analytics and marketing landing page design. Due to the sensitive and confidential nature of his government contract work, he has asked that I refer to him by his first name only. Dave is currently employed at a small consultancy in Virginia, and in his spare time, he does freelance web design for several small companies based in the Baltimore and Washington, D.C., area.

Prior to earning a bachelor’s degree in computer science, Dave taught himself basic HTML when he was in middle school, and later took a few programming classes as a high school student. I connected with Dave through a colleague, and he was kind enough to answer a few questions about his experiences and career as a website and applications developer. 

How did you become interested in web development, and how did you get started in the field?

I was always interested in software development as a creative outlet. I originally got into engineering because I wanted to develop video games, but became discouraged from pursuing that as a career before completing my education. While in college, there was a lot of [negative] publicity about people in that industry being overworked and underpaid. My brother is also an engineer, and he recommended that I interview with the large government contractor where he was employed. They gave me a fine offer, and I accepted it and did many years of uninspired work.

When the iPhone was released, I again became interested in software as a creative outlet. The proliferation of the iPhone seemed to have led the government to take an interest in better designed, better looking software. This led to me joining a smaller government contracting company and working on projects that involved a lot of web design, which was the closest I could get to doing app development while retaining career stability and my standard of living.

What’s your favorite project you’ve worked on? What about your least favorite project? Can you explain what made these projects your favorite/least favorite?

My favorite project was a single-page web app for a government client. It was a very complicated application, but I worked on a small two-person team with someone for whom I have a lot of respect. We accomplished a lot in a short amount of time. I found a lot of joy in this project because of the sense of accomplishment that came from designing and implementing a full-fledged product with such a small group and over a short amount of time. It taught me a lot about how important good chemistry is when working on teams, and how truly beneficial it can be to have assistance from others when working. It also taught me that nothing is insurmountable when you are in the right situation.

My least favorite project was a large government project that involved maintaining a poorly designed contracting/procurement application. It was not enjoyable because there was no expectation or desire for quality and efficiency, but rather, we were expected to follow a flawed process full of red tape.

What is your preferred programming language, and why?

I have been enjoying working in JavaScript with the AngularJS framework, because of the speed in which you can create a well-functioning, highly-visual output. Familiarity with CSS has also led me to be able to develop something aesthetically pleasing with relatively little effort.

What are your favorite customizations or features to add to your sites or applications?

I like sweating the details. For example, making sure that a site functions under all resolutions, like the smaller iPhone SE, which web developers frequently omit and as a result cause undesired scrolling issues. I also like to make sure high-density screen resolutions are properly supported, so that images aren’t blurry and upscaled. These are the kinds of small details that exhibit that care went into development.

What are the best and worst things about web development?

The best thing is when you make a minor CSS tweak and it makes the entire design click into place. Something like a font weight, or border, which turns a decent design into an excellent design. The worst thing is the sheer volume of web frameworks and buzzwords in the industry. I have no interest in always using the newest, trendiest technology, and web development is fraught with that.

Can you share any helpful (free) resources or tools for debugging a piece of code?

I’m typically able to complete all work using Stack Overflow for consultation, and the Google Chrome Development Tools to debug code and layout issues.

What sites do you have bookmarked to refer to when coding a site or developing an application? You mentioned Stack Overflow–why is that a go-to site for you?

I always start with a Google search, and then favor any results from Stack Overflow. I find Stack Overflow to be the most useful because it is self-correcting. There are several different ways to solve any programming issue, and their ratings system is an easy way to evaluate the answers that present each method. It’s also helpful to have comments embedded from users right next to the answers, which will warn you about possible pitfalls in using that approach. The one exception to my “Stack Overflow first” rule is when I have a more generic question that has a lot of components to it–something like “how to get started doing [x]”–in which case posts from independent blogs tend to be more useful because they’ll provide detailed walk-throughs with plenty of lists and screenshots to assist.

In your opinion, what qualities make a successful web developer, and why?

It helps to be a perfectionist. There are a lot of different operating systems, browsers, and devices to support, and you need to always be diligent in making sure that code changes did not introduce regressions. Working with JavaScript is problematic because it is not as easy to detect code errors as it is in a compiled language like C++ or Java. JavaScript is easy to write but tends to be overly accommodating for code errors.

Do you have any advice you’d be willing to share with beginner developers?

Don’t fall for the startup/overwork culture. If a company offers you three free meals, it’s because they expect you to be available at work all day. All jobs have occasional crunch times, but you’ll never be truly rewarded for pushing yourself too hard and spending time away from your family unless you have ownership stake in the company.

What are your interests outside of web development, and do they overlap with your work?

I am interested in music, cars, creating cocktails, and architecture/home improvement. These are very different from my profession, but there is an overlap in terms of my overall drive to create the best possible product and find the best examples of a craft.

Is there anything else you’d like to share about yourself, your work, and the field?

Our field is in very high demand. Make sure you do something you like and surround yourself with colleagues you respect.

Midterm Reflection: Startup Culture, App Development, and AngularJS

I enjoyed working on the midterm assignment and learning from an experienced web developer. This assignment forced me to go outside of my comfort zone and interview someone I’d never before met or interacted with. As a relatively shy person, this was difficult for me, but the developer I interviewed, Dave, could not have been nicer and more approachable.

I connected with Dave through one of my colleagues in the Office of Advancement at Georgetown. My colleague’s boyfriend owns a software and app startup, and my colleague mentioned that her boyfriend would definitely know a web developer that I could interview for this assignment. Several days later, my colleague connected me with Dave via email, and he very quickly answered my lengthy list of questions. This past week, I spent some time following up on a few questions with him because I was interested in learning more about his perspective on those topics (particularly, why Stack Overflow is so great).

One of the most interesting things that I took away from my conversation with Dave was his warning about the culture of overwork that often exists in startups and tech companies. He made an important point that a company might offer you three free meals a day, a place to nap, and a gym, but that is likely because they expect you to spend most of your life there. Tech giants like Google and Apple boast about the amenities available to employees on their campuses, but does this come at the expense of having a life outside of work? Even if I don’t continue with web development any further after completing this class, Dave’s advice to be wary of this type of work culture and environment will remain in the back of my mind no matter what field I pursue a career in.

Dave’s mention of the AngularJS framework also piqued my interest. I had not heard of AngularJS prior to conducting this interview, and I spent some time afterwards researching the framework and what it does. From what I am able to comprehend, AngularJS can be used in app development to make an app more readable, interactive, and dynamic. The AngularJS site sums up the framework as “HTML enhanced for web apps,” but I know there is much more to it than that. Although we won’t really touch on app development in class this semester, I’m interested in digging more into this topic and seeing how app development overlaps with more “traditional” web development. As the usage of web and mobile apps only continues to increase, I’m sure frameworks like AngularJS will become even more important.

Overall, speaking with Dave was an enlightening experience. It was reassuring to learn that, even as a seasoned web and app developer, he relies on Stack Overflow when he has questions or is unable to figure something out. I’m glad that I created an account on the site when I was struggling with last week’s jQuery slideshow assignment—I’m sure I will be consulting it frequently throughout the rest of the summer. Speaking of the jQuery slideshow, I was finally able to get mine to work!