With plenty of tech companies hiring despite the economic uncertainty, technologists can increase their marketability by becoming a full-stack software engineer. These technologists work on the full software development process from the front end to the back end. The job also includes data structure completion, architecture design and code review.
Kendal Cockrel, software engineer at Grammarly, can break down the various parts of the stack. “The front end typically includes client-side user interfaces like web or mobile—think of it as things a user can see and interact with,” Cockrel said. “The back end consists of the parts of the system that a user cannot see—the server, application and database.”
Reed Laverack, an engineering manager at Codecademy, said full-stack engineering also includes “setting up database storage, developing the logic to interact with that data, building API layers and ultimately presenting that data in a useful way to the end user.”
Starting Small in Software Development
When training to become a full-stack engineer, start by learning how to develop a simple application and then build from there, Laverack advised. The next steps can include certificate programs, sample projects or a full portfolio website. Laverack also suggested attending local meetups and discussing goals in full-stack engineering within an online software engineering community.
If you’re at a startup, you’ll have additional opportunities to work on multiple aspects of software. Larger companies like Google and Facebook have more separation in software engineer roles, according to Laverack.
Cockrel got her start in full-stack development after she worked in Scala for two years as a back-end engineer. She learned React from her web developer colleague and then was able to work on the website more extensively as well as front-end services.
“Eventually I split my time evenly between the two and worked on both parts of the stack regularly,” Cockrel said.
What to Learn in a Software Stack
For full-stack engineers who will be developing mobile front ends, they should learn Objective C and Swift for iOS and Java and Kotlin for Android, Cockrel advised. Kotlin is a cross-platform language that serves as an alternative to Java.
Cockrel also suggested that full-stack developers ramp up their learning in server-side languages like Java, Python or Ruby and database technologies like SQL (MySQL) and NoSQL (DynamoDB, Mongo).
Building Adaptability as a Full-Stack Engineer
Full-stack engineers are known for their versatility, Cockrel said: “Unlike developers who focus on one specialty, full-stack engineers are generalists and typically have a wide breadth of knowledge across back-end and front-end technologies.”
Cockrel described the diverse set of projects she works on as a full-stack engineer at Grammarly: “There may be some sprints where I spend most of my time working with designers to build front-end interfaces with React and TypeScript. There may be other sprints where I redesign and refactor an API in Java or write a Spark Job in Scala to output data into a database.”
In addition, Cockrel has owned some other projects from end to end: “As a full-stack developer, I have been responsible for creating a database schema, designing the CRUD API, and then building the webpage that consumes this API and allows users to interact with this data.”
While many college courses and boot camps teach software development, including the front end and back end, if you select a program focused on the full stack, you should be on your way to designing something big (and earning a sizable salary).
“Full-stack development is becoming more and more popular,” Cockrel said. “As the job market for engineers grows, so does the need for versatile developers.”