How It's Made
Solving Hard Problems with Soft Skills
I’ve been a software engineer since the early 1980s. We called it “computer programmer” then and laughed at people who called themselves “engineer-comma-software” because it sounded pretentious. Through college and all the years since then, the skills which have made me successful have been a combination of the “hard” skills
teachable abilities that can be defined and measured
and the “soft” skills
personal attributes that enable someone to interact effectively and harmoniously with other people
Myself, I find “hard” skills easy; I’ve always been a good student and love to read, ask questions, and learn. I find “soft” skills hard; people are scary and don’t always make sense.
My first week in college, I walked into the computer lab to do work-study and found my people. I spent the next six years hanging out in computer labs, writing games to play over the network, socializing online, and (eventually) getting a degree in computer science. I fell in love with computers because they allowed me to talk to people both locally and all over the world without being impeded by shyness and social anxiety.
My first week at a salaried job, they handed me a big pile of documentation and I came back to tell them it wasn’t very good. I spent the next seven years rewriting the docs, producing training materials, and doing on-site training and consulting, as well as writing a great deal of software. I acted as the interface between the scary-smart founder and the people selling and using the software. I’d walk in one morning and find myself on a plane to the other side of the country to save a deal, because our customers wanted technical people who they could also talk to.
When the web came along I started designing web pages. I had basically no design talent, but I loved feeling close to and being able to respond quickly to the needs of the people using my work. After a while, talented designers and UX people took over Web interfaces and I moved to the API layer, but I also became the person all the designers, PMs, and engineers came to to help facilitate communication in the days before TV ads talked about processors and gigabytes and high speed networks. I could talk tech to non-technical people with an understanding of their needs and without talking down to them.
I worked at small companies and had days where I couldn’t sit at my desk because everyone was calling me to help with something. I worked at large companies and made trouble 😁 by speaking out about things I saw that I believed were wrong. I did more training, more documentation, more listening to people, more talking. I enjoyed helping bridge the communication gap between tech people and others in my companies as much as I enjoyed developing software.
I worked at a company writing support tools for customer support agents who had been conditioned to fear the engineers. I baked cookies and cakes and pies weekly and invited both groups to socialize over food. How can a team of engineers do good work for a customer they can’t talk to and don’t understand? Eventually the two groups grew closer and the teams and tools were better for it.
Then I came to work at Instacart as a full-stack engineer. Over time my team and role evolved and I was doing mostly back end work. I also started an internal code school to teach non-engineers how to be full-stack engineers. I’d done a fair amount of teaching before, and I understood my subject, but spending six months creating engineers out of people with little or no previous experience was a major undertaking — and a huge win. Where before I was one engineer helping make other engineers a little better, now I had actually created new engineers with diverse backgrounds who could join our team and bring in new perspectives. It was (and is, we’re on year three now) the most rewarding and the most fun part of my career.
Meanwhile our database started growing like crazy and I joined the team working to scale it with no downtime. At the end of the database project, our Infrastructure team was looking for more people. I’d been working with some of them on the database project and infra is an area I hadn’t done a lot in, so I asked to join. I was immediately underwater! Doing a little build and deploy, a little database, a little this and that on AWS as needed for a small company is nothing like working on the infrastructure for a large one. My manager reassured me that he knew I had a lot to learn, but he valued my ability to talk to people, my understanding of the engineering team, and my customer-focused attitude.
I used to think that Infra was just about making machines talk to each other, and while that is interesting, it didn’t excite me. Now I find that it is about helping and supporting engineers so they can get their jobs done, which in turn helps all the people who use our site and our apps. It is about solving problems, communicating, and working with our internal customer, the engineers. This makes me so happy — they’re still my people.
After two years, I’ve just gotten started learning about Infra, but I have found once again that no matter what part of the system I’m working in, the most important skills to have when working on software are the soft skills. The ability to listen, to learn, to communicate, to care. The desire to solve problems for people. The experience to know that what is right is not always practical, and vice versa, and to make balanced decisions.
Sure, I want to sit in a corner and code uninterrupted for hours at a time, but I also want to sit and talk to people and find out how I can make their lives better with my work. I want to answer questions and help people get their work done. I want to keep speaking up and making sure we’re doing the right things for the right reasons. And I want to be on a team who feels the same way — and I am. Infra is one of the nicest, most supportive, and smartest teams I’ve ever been on, and I’ve been on a lot of great teams.
In my career I’ve moved all around the system, switching from front end to API to back end to database, and now to systems/Infra. This requires constantly learning new hard skills, which is fun and satisfying, but it’s the soft skills I was raised with and have continued to work on all my life that I use every day and it’s the soft skills that make people I have worked with before eager to work with me again.
Want to join me on our Infrastructure team or be one of our wonderful engineering customers? Check out our current openings.
Most Recent in How It's Made
How It's Made
One Model to Serve Them All: How Instacart deployed a single Deep Learning pCTR model for multiple surfaces with improved operations and performance along the way
Authors: Cheng Jia, Peng Qi, Joseph Haraldson, Adway Dhillon, Qiao Jiang, Sharath Rao Introduction Instacart Ads and Ranking Models At Instacart Ads, our focus lies in delivering the utmost relevance in advertisements to our customers, facilitating novel product discovery and enhancing…...
Dec 19, 2023How It's Made
Monte Carlo, Puppetry and Laughter: The Unexpected Joys of Prompt Engineering
Author: Ben Bader The universe of the current Large Language Models (LLMs) engineering is electrifying, to say the least. The industry has been on fire with change since the launch of ChatGPT in November of…...
Dec 19, 2023How It's Made
Unveiling the Core of Instacart’s Griffin 2.0: A Deep Dive into the Machine Learning Training Platform
Authors: Han Li, Sahil Khanna, Jocelyn De La Rosa, Moping Dou, Sharad Gupta, Chenyang Yu and Rajpal Paryani Background About a year ago, we introduced the first version of Griffin, Instacart’s first ML Platform, detailing its development and support for end-to-end ML in…...
Nov 22, 2023