Matthew Graziano is an experienced software developer and entrepreneur based in the Greater Boston Area. Founder of Ambrao Solutions, Matthew provides scalable mobile software development and consulting services to high growth technology firms like GrabCAD, Toast and Sonde Health.
How did you first learn about programming?
I first got into computers in my teenage years. It was the early 90’s so memory was still being measured in megabytes, floppy drives came standard, and clunky CRT monitors were the norm. It was an exciting time because changes in the industry were happening rapidly and very tangibly. Everything was getting faster, smaller, and more accessible very quickly, and we could physically see it happening. The Internet was just beginning to take hold and become more than slow dial-up and America Online.
My initial exposure to computers was games like Doom, Wolfenstein, Prince of Persia, and King’s Quest. All pretty immersive games for their day but primitive by today’s standards. At first I just played them — a lot — and then I started creating modifications for them. I distinctly remember building a level for Doom with my cousin where we turned all bad guys into various vegetables and the weapon into a pea shooter. We were way more excited than everyone else about it, but I was okay with that, just the fact that we had created something that could stand alone and be used and enjoyed by others was hugely satisfying. That was really a first for me.
Those early efforts led into explorations in the BASIC programming language, the most popular hobbyist programming language at the time. I used to write simple programs that could respond to user input and perform simple operations, and I loved bringing my family into the room to try them out. The main draw for me then was just a simple enjoyment of designing and then working through the logic to create an experience or tool that could operate independently. The creative freedom felt boundless and each new aspect of the language that I absorbed was like a new arrow in my quiver.
What made you ultimately decide to pursue it as a profession?
By the time I was ready to go to college, the first dot com bubble was well under way. There were plenty of insubstantial companies being given huge valuations at the time, but there were also many really creative companies doing exciting things. I could see that computers and programming were powerful drivers of innovation in so many different ways, and that over time that impact would only deepen and spread. I was also learning new languages — I’d started programming in C and C++, but to say that I had tunnel vision when it came to computers would be misleading. I was actually interested in pretty much everything and read voraciously. I landed on computer science as a major and software as a profession precisely because of its adaptability, wide applicability, and entrepreneurial undercurrents. I wanted to be able to explore and impact different industries and always be at the forefront, envisioning and building a better future. I still feel that way today.
What were some of the biggest hurdles you faced early on?
You have to be patient and methodical to be a programmer. When I was first getting started, I would get incredibly frustrated by my inability to diagnose bugs in my code. The tools were more primitive back then, making it even harder to identify problems, and on more than one occasion I was ready to give up on programming altogether. It’s great when you are first writing something and it’s all making perfect sense to you, but that doesn’t mean when you are done it will make perfect sense to the machine you are building on and the tools you are working with. Ironically, if you are succeeding and growing as a programmer, this part of the work never really changes, because you are constantly acquiring new skills and gaining an understanding of new tools and techniques. The process does get faster, but Stack Overflow and the like will remain your friends for life.
Who or what has had the biggest impact on how you program?
I don’t think I can single out a particular programming influence as the greatest. My programming has been and continues to be shaped by the books I read, the people I work with, websites I frequent, the evolution of the programming languages themselves, and so forth. From a business perspective the book “Rework” by the founders of 37Signals — now Basecamp — was really influential. It goes against the grain in saying that the entrepreneurial path isn’t necessarily living on ramen and trying to raise lots of money, instead advocating for slow, methodical growth around services and products that people will pay for. It helped me decide to launch Ambrao Solutions, a consulting company.
What are some important lessons you’ve learned through projects or products you’ve worked on?
I’m happy to say I have worked on many interesting and very different projects over the course of my career thus far, and I’m proud of most of them, even many that didn’t objectively succeed.
When I was still in college, I took a job with an organization called the Center for the Integration of Medicine and Innovative Technology (CIMIT). I was working with a team trying to improve surgical navigation during laparoscopic surgery by creating a 3-D rendering of a patient’s anatomy and the relative location of the surgical instruments. Laparoscopic surgery involves making a small incision to minimize trauma, but it also makes it harder for the surgeon to see what she is doing. I was surrounded by people who were way more experienced and way better at what they did than I was, and it forced me to push myself to levels I didn’t know I could reach.
We didn’t succeed in testing the system on humans during my time there, but we did make huge progress in that direction, and I learned a ton about myself and about how to work effectively with a team of people. You should always look to surround yourself with people who know more than you do, because they will make you better if you let them. Arrogance is not a virtue. Pretending you have all the answers and not asking for help only further assures that you never will. There were times when I spent hours poring over doctoral theses trying to figure out what the hell was going on, afraid to ask for clarification, when I could have gotten much farther much faster by talking to the right people.
How has you focus or outlook evolved over time?
I think it’s not uncommon for engineers to want to remain individual contributors for most if not all of their careers, because they enjoy being in the weeds of the problems they are working on. Management and people problems sound less than inviting, and most importantly, a lot less interesting. I’ve worked with many who fit in this category, and I stayed on this path for many years early in my career, over time progressing from junior to senior level, with the exact title changing from role to role. I have always been as interested in business as I have in engineering though, so eventually I sought broader responsibility. First this came in the form of a CTO role with an early stage startup, but I soon realized that wasn’t the right fit and left to start my own consulting firm. That happened back in 2013, and I’m still running that company — Ambrao Solutions — today. Running your own company requires that you use the whole playbook of skills, and it’s proven a much better fit for me.
What are you most excited about learning next?
In terms of programming, I have wanted to get into Python for some time now and would love to start a side project with a Python backend. Not sure yet what that project will be, but I can say that actively using a language is the only way to learn it. When I was younger I used to try reading full books on programming languages before I ever lifted a finger to write something, and it was both boring and ineffective. The excitement of creation is the best fuel, and the act of resolving the problem at hand the best way to solidify the knowledge.
What kind of changes do you see coming to the discipline or industry in the next 5 years?
Historically software engineering has been a male-dominated profession. When I was in college over a decade ago, I can remember only one or two women in all of my computer science classes, and none of them were American. I’ve seen this start to change in the workplace, and I think it will continue to change over the next five years as more efforts are made to attract women, which is a great thing. We are always better off when there is balance.
Mobile applications as a means of providing services have been front and center since the beginning of the decade, but most people’s phones are now saturated with apps that they barely ever use. This doesn’t mean these applications are going to go away, but they are going to get more intelligent and easier to reach. This will come in the form of: continued improvements to voice processing technology, the increased prevalence of bots so that niche apps can be more discoverable, and the continued growth of Internet of Things applications so that services are even more personalized and ubiquitous.
If you could go back and give yourself some advice when you first began programming what would that be?
Done is better than perfect. When I was younger I was a perfectionist. It made me a great student because the assignments — what I needed to do — were always pre-defined. If I did what was asked and gave the right answers, I would get the grade. Life doesn’t work like that, and software in the real world doesn’t work like that, because you don’t build software for yourself. Until someone uses your product, you don’t know exactly how it is going to be received. Obviously you don’t want it to be really buggy, but you don’t want to spend inordinate amounts of time on, for example, one feature simply because you think it’s really special or needs all the bells and whistles. That feature could be holding up the release of the rest of your product or may prove to be of zero interest to your customers. The most assured path to zero feedback and a completely dissatisfied customer is not releasing anything at all, and that is what happens when perfect is the goal. We live in an age where software iteration is easy. You can get a new version in the hands of your users with the click of a button. Embrace it.
Coding Blog is brought to you by Hacksaw Academy a fully interactive platform divided into bite size programming tutorials.