Interviews with Developers

Contact 1 — CTO, Co-Founder, and Head of Product at a start-up; experience in design and computer science (including programming of course), former freelancer. This is my best transcription of his direct words (my questions are in bold).
  • How did you learn to code?

“I started programming in the 5th grade. I bought and read huge, thick HTML books and created websites. I would steal the graphics from existing websites and then would create my own websites that were basically re-creations of other sites (I didn’t have design tools like PhotoShop or know about them at that point). I honestly don’t remember much about the early days or why I got into it but the primary languages were HTML and JavaScript. Some people were doing Pearl (I think that was the only dynamic language at the time).”

  • What’s something that you wish all your clients understood?

“The biggest thing is most people who aren’t technical look at a programmer and think a programmer is interchangeable with other programmers. I look at it as similar to medicine where you specialize in areas (it’s a broad field with certain skills). Just because you’re a doctor doesn’t mean you can do open heart surgery — maybe you specialize in feet. This is a very similar analogy to programming, especially in an entrepreneurial role. So much about programming is the context of what you’re working on — it’s not just can you actually code. It’s: how do you program/approach a project in the right way to break down a problem, what’s important, how do you solve it in the right way, etc. People don’t realize how broad of a category it [programming] is. Tying into that is a lot of people I work with/encountered at points in my career look at price. They find a programmer who costs 1/3 of what you do and ask “Why wouldn’t I hire them if they’re programming the same thing?”. [They should know that] Anyone who is hiring someone, the price comes with some sort of costs (the costs might be hidden —such as if they build something that doesn’t actually scale or ultimately costs you in some other way).

I wouldn’t likely learn a new language for a client (most people specialize in 1–2 back-end languages and then specialize in a front-end framework as well). A lot of continued education is in areas not already accomplished through your strengths. For example, PHP is really my specialty, so it’s unlikely I would switch to Ruby because I can already accomplish that through PHP.

But if you do know a bunch of languages, it’s infinitely easier to learn new ones. If you understand something about how languages are constructed, it’s easier to pick up new ones (similar roots, etc. — just like with learning foreign languages). Context and syntax vary by language but conceptually there are a lot of similarities.”

  • What is a problem that you find is tough to communicate to non-technical people?

“There’s a general sense of “Why is this broken?” “Why didn’t you catch this?”. The role of QA [Quality Assurance] and testing a million different use cases is very important. Mistakes can also be user error (something with that person’s browser setting, etc.) Regardless of whose fault it is, everything becomes the programmer’s fault for non-technical people. It’s hard to explain how complicated it is and how errors aren’t always straightforward to fix. I actually record users using our product (we [his company] have a software that records users actually using the website). I spent 1.5 hours today watching people use our new checkout page for buying a product. You could see the errors of their triggering and when you don’t have context for those errors, you assume it’s the users and some crazy niche thing. These videos help you actually identify places where you can improve the site. It was very humbling because 99% of stuff I saw was really our fault [not that of the users]. I still don’t why some of it was triggered but I can see what’s happening. There are so many levels and layers to programming that it can be difficult to isolate the issue.”

  • Would you work with me on a project? Can I hire you?

“I haven’t done freelance in several years [he’s been working on entrepreneurial projects — the latest is a new company he co-founded that sells a product that helps retail companies to improve their e-commerce sales]. But thinking back to when I did freelance… I would not work with you.

I don’t work with individuals anymore…I only did early in my career. What happens with individuals is, the project is their baby, so they’re usually too micromanaging and don’t understand the process.

The best people [not actually people, but companies] to work with are agencies…you’ll get paid more and they know what they’re doing. They typically have a day rate (so you’re trading time for money) but this tends to work out more vs. working on a specific budget…unless you are working with a large organization that has a big budget [laughter].”

  • Why/why not? What qualities are you looking for in the companies or people you work with?

“The key questions to ask potential clients are:

  • Have you hired a programmer before?
  • Do you have a budget?
  • Have you spoken to other people about the budget?

Then you have to think: are you going to spend a lot of time negotiating on the price, educating the client on the process, managing expectations, etc.

In my early days freelancing, I came from an advertising background and didn’t have experience with the problems to know how to manage clients and what qualities to look for. Now I know to work with agencies rather than individuals.”

— —

Contact 2 — Recent college grad with a minor in computer science. Digital marketer / programmer at retail company trying to grow its e-commerce business. Again, this is my best transcription of his direct words (my questions are in bold). Read on to see if I might be able to hire this one…
  • How did you learn to code?

“I started on a minor my sophomore year at UNC in Computer Science and that’s when I started to code. We worked in Java, which is an object-oriented language. It’s a little more powerful and complicated than HTML and C as those are more designed for the front-end. In a more abstract sense, coding principles help with understanding processes and what’s efficient/in-efficient in terms of designing a website. I then learned HTML and CSS just from doing some online classes to learn the syntax. What they teach you in school is the fundamentals and the principles of programming like encapsulation, separation of concerns, etc… you learn the best way to build applications/websites so every time you add something new you don’t have to go and fundamentally change the structure of the whole thing.”

  • What’s something that you wish all your clients understood? What is a problem that you find is tough to communicate to non-technical people?

“I don’t have clients and I haven’t worked with many companies. But for example, we recently hired a Marketing Coordinator who wanted to add a page to our website. She wanted to make some changes and without knowing it, she removed some things that are important to the structure of the page. So when you have one person who is more technical and builds it out in a certain way and is working with say a Content Manager who is working a on a blog post and needs to be able to format things and understand the tools that they can use within the structure of the site, it’s hard to communicate exactly what the purpose of every line of code is to someone who doesn’t fully understand it. Not all websites have user-friendly front-end interfaces like WordPress. It’s hard to build something and then hand over the reins to a non-technical client to manage the ongoing content.”

  • Would you work with me on a project? Can I hire you?

“Like you specifically? Sure, I would work with you! [Laughs] I think it’s important early on in a relationship to manage expectations. In building something out, you never know what kind of things you’re going to run into, so you almost have to sandbag on projects. Especially if you’re working on a platform like BigCommerce, you never know when a feature that you think will be straightforward is going to become really complicated or even impossible. It’s really important for me to communicate with that with the client up front about expectations and make sure the client accepts my view on expectations.”

  • Why/why not? What qualities are you looking for in the companies or people you work with?

“From a business standpoint, the client needs to be somewhat literate in technology so you [the developer] can explain what you’re doing at a high level [and for example, explain what’s taking longer than expected, etc.]. It helps to have at least someone in the organization who is decently technology literate that you can speak to in order to explain the process.

You want someone who has talked to/gotten quotes from multiple consultants. Pricing is the biggest challenge. The nature of programming projects makes setting timelines and rates very difficult. So you need someone who is going to be reasonable [not too demanding].

From a developer’s standpoint you want to sandbag but from a business perspective, you don’t want someone to take 100 hours for a project that should take 20 hours. That’s a challenge in that some clients are skeptical of the timeline you’re giving them and maybe you are exaggerating a little bit, but it’s not just to try to log more hours and make more money; it’s more that what the client’s asking might be more complicated to pull off on the back-end than it seems on the front-end.”