There’s a lot of skills full-stack developers need to master if they want to be successful. Navigating the front end, the back end and a slew of internal and external requests is a lot to juggle, even for the most talented techie. Despite these challenges, the role is a rewarding one where devs can see their impact everywhere they look.
But for those looking to grow into a full-stack role, it can be difficult to know where to begin honing their skills. After all, while tech expertise is a must, developers shouldn’t neglect their soft skills — especially communication. If all of these requirements are starting to feel daunting, you’re not alone.
Luckily, Built In SF connected with two local tech leaders who are experienced full-stack developers. They walked us through with us the steps they took to hone their craft, and shared their best advice for up-and-coming developers who are looking to expand their skillset beyond solely working on the front or back end of products.
Assembled is building a workforce management platform for support teams that makes scheduling, forecasting and reporting a snap. Trusted by brands like Everlane and Stripe, Assembled aims to make the customer experience smoother and more empathetic.
What technical skills do you consider to be the most essential for your success as a full-stack developer?
I’d argue that the scientific method — or the ability to think scientifically — has been the most useful technical skill I’ve picked up. I joined my last company, Stripe, as a software engineer, even though I had no formal software experience. In other words, I did a lot of learning on the job.
In Stripe’s interview process, there was a challenge called “bug squash” where candidates were presented with a real open-source codebase and a real, solvable bug. I distinctly remember one of the grizzled veterans describing what to look for in this interview: The strongest candidates would navigate the problem by applying the scientific method. In short, they would form hypotheses about the issue, systematically make modifications to the code and draw conclusions based on their observations.
Just like in science, a lot can follow from exercising this primitive skill. Whether it’s needing to learn a new language, understand a new codebase or solve a tricky bug, I’ve been well-served by systematically stepping from hypothesis to observation and finally to result in a recursive loop.
I’d argue that the scientific method — or the ability to think scientifically — has been the most useful technical skill I’ve picked up.”
What’s a soft skill that you consider critical for your success?
Writing and maintaining software is hard. When I’m stuck trying to debug a tricky issue or express an ill-formed concept, I often feel like Johnny Depp’s character from the movie “Dark Shadows” — “What sorcery is this? Reveal yourself!”
An obvious insight that nonetheless changed my career is that software is written by humans. It follows that, for any given piece of code, there’s someone in the world that understands it. No matter how magical the behavior or mysterious the logic, there’s a frame of reference in which it made sense to someone else. All that’s needed is the patience to find it.
Throughout your career, what steps have you taken to strengthen your skills? What advice do you have for developers looking to build up their full-stack repertoire?
I’ve gotten a lot out of simply writing more code, both from scratch and in existing codebases. Writing code from scratch has forced me to solve real problems, think about organization and learn about third-party libraries. Often, the hardest part is just getting started. On the other hand, introspecting existing codebases — typically via open source — is a great exercise in building mental models.
There was a recent tweet I enjoyed from Ken Kocienda, an engineer and designer who worked on the first iPhone. He listed three steps to doing interesting technical work: think of new ideas, edit work that’s in progress and focus on finishing. Just do that, rinse and repeat!
Qualia is out to make homebuying faster, easier and more secure than ever through its digital closing platform. By uniting buyers, lenders and real estate companies on one central platform, Qualia strives to create a more seamless experience for everyone involved in buying, selling and lending.
What technical skills do you consider to be the most essential for your success as a full-stack developer?
The most important technical skill is an overall mastery of JavaScript. Being full-stack means you’re working on the server, the client and a database — and JavaScript is the most common language you’ll use. It has a lot of quirks, especially in the browser, so understanding deeply how the language works is the key to success. At Qualia, we write everything in JavaScript. After four years here, I’m able to debug issues really well, catch problems quickly in code review and advise others on best practices.
I also recommend gaining a solid understanding of how to use and navigate whichever version control system your team uses. At Qualia, we use Git and GitHub for all of our change management.
Git is notoriously hard to learn, but it makes your life a lot easier if you know how to use the tool correctly. We use it for pull requests to test proposed changes, as well as to see who wrote which code, figure out what they were trying to do at the time, isolate changes to find bugs and so much more. Having a strong command of version control has been especially helpful at Qualia as our engineering team has grown, and we can use Git to understand the history behind our code.
What’s a soft skill that you also consider critical for your success?
Being able to clearly articulate why you are building a product and how someone will use it is a really significant soft skill for any full-stack developer. It’s difficult to learn, but if you get the user story slightly wrong, the product will inevitably end up slightly wrong. The better you can get at describing your product’s purpose and empathizing with your user, the higher chance your product will actually be useful and do what it’s intended to do.
At Qualia, our engineering team is extremely product-oriented. We really encourage our developers to learn the business and meet our customers, as well as understand the history of our product and where it sits in the market. In my experience, the people who become leaders at Qualia are those who not only execute technically, but also have a clear understanding of the needs of our users. Our engineering team works very closely with our product team, and our engineers get a chance to be involved in every step of the product development process from start to finish.
Being able to clearly articulate why you are building a product and how someone will use it is a really significant soft skill for any full-stack developer.”
Throughout your career, what steps have you taken to strengthen your skills? What advice do you have for developers looking to build up their full-stack repertoire?
To keep my technical skills sharp, I read what’s new with JavaScript, research alternatives to what we’re using at Qualia and generally try to keep a pulse on the development community.
I also read the documentation for any tools we use and try to understand them inside and out. Rather than studying everything at once and then inevitably forgetting it, I recommend learning topics deeply as you need to know them. Debugging is a great time to do that because you’ll learn in order to solve a problem. We try to get to the true root cause of bugs we see in our products and almost always learn something new about our tools in the process.
To strengthen my soft skills, I spend a lot of time explaining my work to others. Whether it’s giving talks, code reviews or presenting to the rest of the team, talking through technical issues helps me see how well I can communicate that topic to someone else. In particular, I always encourage engineers at Qualia to talk directly to customers if the opportunity presents itself. Users describe things in a different language and have unique views on why a product is or isn’t working. It’s an amazing opportunity to learn their mental model of what you’ve built.