The Technical and Soft Skills All Full-Stack Devs Should Have

The following Seattle developers know a lot about a lot.

Written by Michael Hines
Published on Sep. 08, 2021
The Technical and Soft Skills All Full-Stack Devs Should Have
Brand Studio Logo

Successful full-stack developers need a wide breadth of technical skills and the ability to effectively communicate across teams. But what are the specific skills needed to launch a career as a full-stack dev and advance in the field? What languages are in high demand and what communication skills stand out in an interview?

It’s hard to say specifically, and that’s because no two companies, teams or tech stacks are exactly the same. There are some general best practices worth following, though. For example, Christy Smith, a software engineer at Foursquare, told Built In that it’s important for full-stack devs to have configuration and version management down. Chris Kettenbach, lead developer at Logic 20/20, said that when it comes to communication, listening is an underrated skill devs should seek to master. 

In addition to Smith and Kettenbach, we also spoke with Micaela Connors, a software development engineer at Remitly, about the technical and soft skills needed to be a successful full-stack developer in 2021. Here’s what they recommended focusing on.

 

Full-Stack Dev Technical Best Practices

  • Get comfortable with reading new languages and tracing code.
  • Stay up-to-date on the latest versions of the code you work with.
  • Do not overlook JavaScript.

 

Micaela Connors
Software Development Engineer • Remitly

Full-stack developers are expected to be jacks of all trades and masters of more than a few, which can be quite intimidating, even to seasoned devs looking to make the jump into a new field. While full-stack devs do need to know a lot about a lot, Micaela Connors, a software engineer at Remitly, notes that this makes the fundamentals of development even more important to master. Here’s why.

 

What technical skills do you consider to be the most essential for your success as a full-stack developer, and why?

The skills I consider most essential are the fundamentals that transcend across the tech stack and programming languages. To me, these are systems design and coding best practices, in addition to simply being comfortable reading and tracing through new languages. As a full-stack engineer, you might be working on native app development one week and back-end business logic the next. Because of the broad nature of full-stack development, the fundamentals matter the most. They will serve you day in and day out, whether you’re working in Go, Java, TypeScript or any language in between.

I consider systems design to be fundamental because a deep base here will help you understand the domain boundaries and responsibilities of every aspect of your tech stack. Similarly, having a good grasp of best practices like writing readable code and thorough unit tests, handling errors, following the language style and avoiding repetition applies no matter where in the code base you’re working. Together, solid systems design and coding best practices fundamentals will give you a firm base, which will enable you to contribute effectively and efficiently across the stack.

A deep base here will help you understand the domain boundaries and responsibilities of every aspect of your tech stack.


What’s a soft skill that you also consider critical for your success? Why is this skill so important?

To me, becoming an effective full-stack developer goes hand in hand with operating in new areas of the tech stack. As a full-stack developer at Remitly, I’ve consistently had the opportunity to work in new domains and encourage others to jump at these chances: Your depth is the breadth of your understanding across the tech stack and this is what makes full-stack developers valuable. To be effective, get comfortable operating in the unknown, discovering what you don’t know and asking for help. It should go without saying that good communication skills are essential.

As you dive into each new aspect of your tech stack, you’ll be working with product managers, business analysts and UX designers, in addition to engineers with deep frontend and backend experience, all in a week’s work! It’s critical for full-stack developers to be effective communicators with all of these different stakeholders in order to contribute efficiently and learn quickly.

 

Throughout your career, what steps have you taken to strengthen these skills? And what advice do you have for developers looking to build up their full-stack repertoire?

Taking on designing and leading truly full-stack projects. That might mean you start out with 10 times as many questions as you have answers, but learn how to be comfortable in the unknown. The right team is also essential here. They can give you the base and support from which you can learn to be confident operating outside your technical comfort zone. Additionally, there are little things that you can easily fit into your day-to-day work that will help you learn and expand your technical skills.

For me, these have been exercises like reading through pull requests to ask questions in code bases or domains you’d like to learn more about. If you listen to podcasts, start tuning into engineering podcasts so you can learn from others in the industry about their full-stack practices. And finally, just start tracing code. Do you want to learn about how your customers navigate authentication in your iOS application? Find the button they’ll tap to log in, trace through the submit and start hopping through your services to understand the end-to-end sequence.

 

Christy Smith
Software Engineer • Foursquare

It may seem like full-stack devs need to be fluent in a wide variety of programming languages, but in Christy Smith’s experience, being able to read code in other languages is actually the more useful skill. Smith, a software engineer at Foursquare, transitioned to a full-stack role herself and has more practical advice for devs looking to make a similar move.

 

What technical skills do you consider to be the most essential for your success as a full-stack developer, and why?

The technical skills I utilize most are programming, database management and configuration and version management. The languages that I use most are Scala, React, JavaScript and Python. Being able to read different programming languages is even more important than being able to use them for your own changes since I spend far more hours reading code than writing it.

Configuration and version management is an important skill in understanding the development cycle of how code changes make it into production. This includes contributing to repos in GitHub and understanding the deployment process for repo updates. Understanding the version of your code that users are interacting with and how new versions become available is crucial to planning the execution of projects and in debugging or handling production errors. Data is essential to any running product, which is why knowing how to model and implement new data structures along with understanding table schema is important.

I spend far more hours reading code than writing it.


What’s a soft skill that you also consider critical for your success? Why is this skill so important?

Being a proactive learner has helped me to become a better developer and is an important mindset for me now in my full-stack role. When I started in software engineering, my strategy was to try and push out of my comfort zone by volunteering to take on tasks I was unfamiliar with because I wanted to learn as much as I could. I wanted to touch as much of our tech stack to understand what my teammates were working on.

Full-stack development involves a cross-set of programming languages. The “required skills” of software engineers are always in flux due to technological advancements and trends. This makes a willingness to learn a skill all developers need to have. Being proactive about reaching out for help and trying new things has made me a faster learner and a better developer. Plus, focusing on understanding the “why” of the tasks I take on and not implementing solutions I don’t understand has helped me better at debugging and reading code, two essential parts of my day-to-day.

 

Throughout your career, what steps have you taken to strengthen these skills? And what advice do you have for developers looking to build up their full-stack repertoire?

I rely on a mix of online tutorials and the experience of other developers at my company to improve my technical skills. Any time I’m learning a new language or platform, I start by going through a mix of “getting started with” videos and guides before coding. Once I’ve started and have a basic grasp of the new concepts, I reach out to teammates with questions and optimization suggestions.

Side projects are a great way to gain experience for developers looking to transition or even just explore full-stack, especially if you can be intentional in the project you undertake. I would isolate the technical skills or frameworks you want to strengthen and challenge yourself to create an application in which they’re implemented. It’s a great way to learn and it allows you to be creative and experiment with new technologies without the fear of making mistakes or missing deadlines. Plus, you’ll get hands-on experience and add to your portfolio.

 

Chris Kettenbach
Lead Developer • Logic20/20

Working across the stack means having a working knowledge of many languages. But which ones are the most important and why? According to Chris Kettenbach, lead developer at Logic 20/20, the importance of JavaScript cannot be overlooked. In addition to making a case for JavaScript, Kettenbach also offered many more insights into the skills needed to kick off, and build, a career as a full-stack dev.

 

What technical skills do you consider to be the most essential for your success as a full-stack developer, and why?

As full-stack developers, we usually build web applications. Often you do other things, but most applications are interfaced with the web, so you should be able to write the front-end interface. One of the most important skills for full-stack developers is JavaScript. Full-stack developers should have general knowledge of HTML and CSS, which are the building blocks of the frontend, but the interaction aspects — JavaScript — are key. Usually, a full-stack developer might not be an expert in HTML and CSS. Some are, but often they have more expertise in JavaScript as well as what we would consider the backend.

The backend would be writing web services and talking to the database. The application needs to use secure credentials to sign into the database, run queries and retrieve data, and then perhaps filter that data with some business logic. Then it has to return data to the frontend, where JavaScript would interact with it.

Ask questions, especially from people who know what you want to know.


What’s a soft skill that you also consider critical for your success? Why is this skill so important?

Communication. You should be able to communicate effectively with your team and with your clients or customers. Whether it’s personal or professional, you need to be able to let people know what’s going on, especially if it will impact their work. The things you do affect other people. Communicating effectively, clearly and in a friendly way is good for everybody. 

Being able to listen is also key. You have to let other people talk. When you do jump in, be helpful instead of critical. You don’t want to put people down but rather have empathy and consider their approach and reasoning. It’s important to be approachable, friendly and always willing to help. Another soft skill is time management. Personally, I know I want to make things perfect and polished, but you don’t always need to do that. You may be putting your own wants above the needs of the client when they just need something simple. Manage your time and complete what you need to get done.

 

Throughout your career, what steps have you taken to strengthen these skills? And what advice do you have for developers looking to build up their full-stack repertoire?

My advice would be to build up your full-stack repertoire and constantly re-educate yourself on the latest technology. The big front-end framework right now is React, but that’s not always going to be the case. To have longevity in this field, you need to stay current. For the backend right now, Spring Boot is big. If you have Java skills, they’re often going to ask you to do Spring Boot, so you will want to know that, but also be prepared for the future. You have to constantly re-educate yourself. 

Even now with these crypto and DeFi networks, there are all these new buzzwords you have to learn. For example, what are smart contracts? How are people transferring digital payments? This is forward thinking that developers should absolutely be doing. Obviously your work is first, but you also have to put in the work to stay educated. Also, ask questions, especially from people who know what you want to know. If somebody is really good at Kubernetes and Docker, I’m sure they would be excited to teach you. 

All responses have been edited for length and clarity.

Hiring Now
System1
AdTech • Big Data • Digital Media • Marketing Tech