Becoming a full-stack developer can be a powerful route to a long-fulfilling career. It’s a relatively compact education, which teaches as much about the core elements of programming and systems administration as it does about any specific programming language or database system.
Still, though, hiring is never entirely an art; it’s often a science, and companies looking to hire developers are going to have tangible bullet points they’re looking for their candidates to meet. Knowing those bullet points allows you to tailor your education and interests towards meeting them, to better ensure that you’ll pick up a job you can turn into a career.
Understanding Full Stack Development
The first thing to recognize is that a good full stack developer is a jack of all trades. They are also known as a T-shaped developer, because of the way their knowledge spreads. By the time you’re looking for a job, you should have:
- A broad, general understanding of how programming works, how a few more popular languages and frameworks function, and how it ties different systems together.
- A broad, general understanding of various front- and back-end development platforms, frameworks, and systems.
- A basic understanding of user interface design and user experience.
- A basic understanding of back-end systems, databases, and their manipulation via SQL and the like.
- A specialty or two. Picking a specific aspect of development that interests you allows you to build deeper, expert-level knowledge of that subject, providing extra value to companies that look for that specialty in particular.
Thus, the T. A broad base of knowledge, and a deep well of knowledge in one or two specific areas. Those areas should be what interest you the most, whether it’s part of the front end or back end development, or somewhere in the middle. That’s going to be your primary selling point, and what you’re going to promote to companies. You’re not just a full stack developer; you’re a full stack developer with a specialty in X, Y, or Z.
Still, while this kind of focus can help you get jobs that are otherwise dedicated to standard developers, it doesn’t necessarily help you as a full stack developer. So what is it, specifically, that companies are going to be looking for?
Displays of Passion
No, we’re not talking about the romance novel sense of passion here. Passion for development is where you go above and beyond the basics of your education (and your peers) by following something that interests you. Companies are going to be looking for that passion, and they’ll want to ask you about it. In an interview, for example, a hiring manager might ask you about a passion project you’ve been working on, why you’re interested in it, and how you’ve been progressing on it.
Ideally, this will be a way of plumbing the depths of your specialization. You know you’re interested in a particular aspect of development over the others, so you focus your personal time on these passion projects exploring that aspect of development. You can then leverage that in an interview to talk about how development led you to it, how it has informed the rest of your tasks, and how it’s made you a better developer.
The company may also be looking for a more generalized passion for development as a whole. They’ll want to know that you’re curious and willing to learn, that you question assumptions and accept information to change your positions, and that you can adapt to new technologies as they appear.
Problem Solving
Perhaps the biggest skill a good full stack developer should have is the ability to solve a problem. Here’s the thing, though; as a novice developer, someone fresh out of their education, you won’t know the answers to everything.
The worst thing you can say in an interview is “I don’t know.”
Instead, you want to explain your thought process on how you might solve a problem to which you don’t know the answer. Rather than saying you don’t know, explained this. “I don’t know, so the first thing I would do is look up the error message and see what it relates to in the context of an Apache server. Then I would check for documentation into the issue and see if it’s local, if it’s a known issue, or if it’s something new.”
That’s just an example, of course. The point is, you don’t need to know the answers, you need to know how to find them. Properly using Google is an important skill for any developer to have. Having access to particular resources like coding forums, peers, and documentation helps as well.
Chances are good that a company holding a job interview for you is going to intentionally throw in a curveball you would have no way of knowing the answer to. The correct answer to a question like that is typically asking your superiors for context and assistance. Remember; as part of a company, you’re part of a team, and you need to draw upon the resources you have available to you.
A Roster of Technical Skills
Interviews are never entirely theoretical these days. Many companies use skills testing platforms, such as Codility, that offer proctored or monitored exams testing specific skills relevant to the job. A company might know they have a need for an employee with skills in MySQL, JavaScript, Ruby on Rails, and the usual front-end HTML/CSS combo. Thus, when you make it to the interview stage, that company will run you through a test asking you to complete simple exercises in each.
The exact selection of skills tested will depend on the company setting up the interview and what they need out of a developer. Most of the time, these tests will be around beginner to intermediate questions, so you won’t necessarily need deep, specific knowledge of edge cases and fringe problems with the frameworks. They may, however, be reflective of the kinds of problems you’ll encounter on the job.
Obviously, passing a test means displaying proficiency in the necessary skills. Make sure to understand the nature of the test, as well, and whether or not you’re allowed to use outside resources. If you are, but you don’t, it can be a large strike against you.
Knowledge of Surrounding Systems
Keep in mind that there’s more to development than just writing in a programming language. Many companies will want to know that you’re familiar with other aspects of working in a professional situation, such as:
- Understanding version control and using version control applications.
- Understanding working in a development environment, testing, and implementing to production.
- Knowing the core of how APIs work and being able to interface between third-party applications.
- Being able to look at the big picture and drill down to specific aspects of it; the ability to keep both a ground-level view and a bird’s-eye view.
A full-stack developer is a person who knows enough about a lot of different things to keep an overarching view of the goals, direction, and progress of a project, rather than just individual coding-level bullet points and tasks to complete. This contextual understanding is one of the most important reasons to hire a full stack developer over a specialist developer, so you need to display it.
Familiarity and Interest in The New
Most companies that are willing to hire a full stack developer are either small or cutting-edge. They want to be at the forefront of using new technologies to develop new applications, so they want to hire a developer who has a similar focus on the new. While you’ll never get away from the trappings of the past like JavaScript, HTML, and CSS, you should also be aware of new developments, new ideas, and new technologies.
You will likely find yourself faced with a question such as “what do you feel is the most compelling new development in cloud services?” or “how do you think blockchain technology could help our position?” These kinds of questions don’t have a specific right answer; rather, they’re testing your awareness of new developments in those sectors.
Certifications
Development is an interesting area of modern work that doesn’t necessarily benefit from an extended education. Many four-year degree programs don’t offer modern, up to date educations. Simply graduating doesn’t always mean much, especially from certain institutions.
The problem with traditional education is that it tends to focus either on an older curriculum, or it focuses more on frameworks and less on specialties. You might learn the basics of a dozen different languages and platforms, but you would have to pursue your specialties on your own. Three’s also the overarching framework of higher education, which allows a lot of people to graduate even though their skills might not be up to snuff.
There are three ways you can demonstrate more of your practical knowledge.
First, you can earn certifications. There’s nothing specifically called a “full-stack certification”, but you can earn certs for everything from basic A+, Cisco, Microsoft, or Oracle certs, to more novel and less tested certs like IBM’s Developer Cert.
The best certifications are well-known throughout the industry, regulated by a governing authority that keeps them up to date and provides proof of a tangible skill you’ll use in your job. Many of the modern cloud certifications are good options, as are industry-standard developer certs.
Second, you can complete boot camps. Boot camps alone aren’t always a good indication of skill or ability, and if they’re all you have to offer when a company interviews you, you’re not going to meet their needs. They are, however, an excellent kind of supplemental education, particularly if they help you showcase a passion or a specialty you like.
Third, there’s always the simple advice of “make something.” If you have a personal project and you’ve successfully made a cloud app, however small, it shows you have the full breadth of skills necessary to develop on the front end, the back end, and everything in between. The proof is in the pudding, as they say, and by actually making an app, you show ambition, skills, and the ability to follow through on a goal, on top of the technical skills necessary to make the app in the first place.
Familiarity with Terminology
While your overall education should give you a familiarity with most terminology, you may want to look into and research the specific frameworks a company might use to refer to aspects of development. For example, some companies might divide development into Front-End, Back-End, and Middle-Ware. Others might refer to the Presentation Layer, the Business Logic Layer, and the Database Layer.
Understanding what these terms and frameworks mean allows you to more appropriately fit in with a company and speak their language. Different sets of terminology might change how you phrase your own skills, and allow you to better sell yourself to a company.
Wrapping Up
Finally, keep in mind that every company is different. Hiring managers may or may not have a developer on hand to inform what they’re asking you. Sometimes, you may be asked questions that seem much too basic or much too advanced for the position or rely on outdated technologies. These things happen in the modern corporate world, and a lot comes down to how you feel when you interview for a company. If their hiring practices and interview procedure doesn’t fit what you want out of a company, remember, you don’t need to work for them. They’re interviewing you, but you’re interviewing them at the same time.
Luckily, anyone progressing through a modern full-stack developer course should be armed with the skills, knowledge, and ambition necessary to get a job doing what they love. Be confident in your skills and abilities, know how to work within a team and utilize company resources as necessary, and you should have no trouble getting what you need out of an interview. All that’s left is to embark on your dream career journey.
Are you a full-stack developer? What are your thoughts on the hiring process? Be sure to let us know!