Mentors are at the heart of the Thinkful model, guiding our students down their individual paths and helping them get “unstuck” when they’re struggling with challenging concepts.
We’re highlighting our mentors to learn more about their background, what drove them into technology, and the tools and tips that they share most frequently with their students.
About Dan
Dan Matthews has been a professional technologist and entrepreneur for over 10 years. He’s founded two companies and held positions ranging from lead developer to VP of Software Development at startups around New York City. Dan is the founder of bluefocus, a consultancy that helps early-stage companies find web developers.
Hi Dan. Let’s start at the beginning–how did YOU learn to code?
Well, I was working at a company whose phpbb website got attacked with a SQL injection and our entire database was wiped out. I responded by learning how to build the next version from scratch, using PHP and JavaScript, so I could better understand how to avoid being impacted by open source package exploits.
Wow! Tell us a little more about this “attack.”
It was 2004. My friends JJ Mocko, Aaron Matthews (also both Thinkful mentors) and I built an online gaming community around the game Counter-Strike: Source. People were playing on servers and we wanted to see if they’d come play in person. Within two months, a person on our servers began causing problems and was banned. He retaliated by wiping out our entire database. We had all taken C++ in high school; we knew HTML and CSS. We decided it was time to buckle down and learn so this wouldn’t happen again.
What was your first big coding project?
A few years ago I joined a financial startup, an organization that lends private student loans on behalf of credit unions. I brought in JJ and Aaron, who became my partners on the team. We inherited a 4.5-million-line Ruby codebase which was, let’s call it, total spaghetti code. It was a complete mess. After convincing the executives to throw that out and start over, we built the entire platform from scratch.
You are currently Managing Partner of your own development consultancy, bluefocus. How did you end up launching that company?
I was the first technical hire at a company called Ticket Evolution, which provides a backbone for sites like StubHub and Orbitz by connecting ticket brokers with those larger networks. I was charged with hiring as many Ruby on Rails and backbone.js (a JavaScript framework) experts that I could on a short-term, contract basis. It became a real challenge to find people available on such short notice. In that process, I realized there was a hole I could help fill. I founded bluefocus to find a workable solution to a problem I encountered in the industry–helping early-stage startups connect with developers.
What’s your advice to someone just starting out in the development field?
Paired programming is the best way to learn. I would advise newcomers to take a few immersive programs and then find an internship or junior position at a company that does paired programming. There are a ton of full-time positions and not enough people to fill them. But as a beginner, you want to be in the environment where you will learn the most in the shortest amount of time. Get yourself next to people who know more than you so you can code with them.
Does the size of the company matter?
Smaller startups understand that to grow they need to bring people who are new to the industry and bring experts to cultivate the experience of those junior level hires. I think a few corporate environments sponsor that too, but in general are less inclined to spend the money for two people to work together at the same time.
It’s important to know your end goal as a developer and get yourself into that position quickly. UX/UI design is key if you plan on being a full-stack developer or designer. If you’re focused on back-end systems, UX design may not be as important, but understanding design patterns is invaluable.
Where do you see your coding students struggle most?
The concept of convention versus function can be a challenge. There’s often confusion about best practices, such as when you would use a series of divs instead of a table to create a grid pattern (hint: if you’re not displaying tabular data, don’t use tables). Or, for example, there’s confusion about why using a tag like <center> or <strong> in the HTML is bad form.
The nuance of being able to balance proper convention and proper form while completing a project is an interesting challenge for anyone learning to code. As a mentor at Thinkful, I always challenge my students to think about form and convention when learning to evaluate their own work, understanding that in the job market getting the functionality out the door quickly may be the most important thing.
What are some of your favorite development tools to recommend to students?
-
For Ruby, be sure to use the API Dock
-
For PHP, check out php.net
-
And honestly, Google is the biggest and best tool for a developer. Knowing how to ask the right questions and abstract answers makes all the difference
—-
Want to have the chance to work with Dan as you learn to code? Sign up for our next class here—starting June 10—to learn more about Thinkful and our mentorship model.