What It Means to Be a Full Stack Developer
A full stack developer is often considered a jack of all trades who can build and manage all the components of a software project. Through a tremendous amount of experience, they are familiar with each layer of the stack, including the server, network and hosting environment, data modeling, user interface and user experience.
I’ve been working as a developer for over 10 years and during that time I’ve been able to expand my skills and experience across all these layers by managing many different projects. To help share that experience, here are some of the most frequently asked questions that I receive about what it means to be a full stack developer, the tools that I use on a daily basis and how I stay current with the latest technology.
Question: What does the term “full stack developer” mean to you and what are all the components of being a full stack developer?
Answer: A full stack developer is someone who can work with code on every part of the life cycle. Whether it’s the database architecture, the database itself, the backend and then middle and the frontend, whether that is HTML, CSS or another language.
Question: Are you involved on the frontend and backend in your role with Azavar or just specific parts of the development?
Answer: I’m involved in the entire process. I help with the architecture of the planning for the platform and then move to the backend and frontend. It’s essentially full stack engineering, so whether it’s back, middle or front, I can work on the complete process.
As a senior software developer I primarily work on our web applications. More recently, my focus has been on the Azavar Government Solutions suite of apps which are going to be software as a service.
Question: Is it safe to assume that it takes a great deal of time and experience to rise to the level of the full stack developer?
Answer: I started off as a .NET developer. So that would be purely backend, which includes the database. I came into my last job not knowing much about the frontend, but I was drawn into the deep end and was forced to study and learn as much as I could.
That experience forced me to learn, but then once I got the hang of it, it became one of my favorite things to do. The learning process took a little while, but I would say I’m now pretty well-versed with all phases of the development cycle.
Question: Do you think these various roles and experiences have been a benefit for you in your career?
Answer: I would say that it has been very beneficial. I am now a lot more well-rounded, so I feel comfortable in every part of development.
It’s important to stay current with new technologies or new advancements with .NET for example. I had some catching up to do when I got here, when it came to .NET, which is funny because beforehand I felt so comfortable and confident in .NET and then that kind of flipped. My strengths reversed because I was spending more of my time on frontend at that point.
Question: What kind of tools do you use daily?
Answer: We use Visual Studio to code with C# and .NET and we use Microsoft SQL Server for our database. With that, there are SQL queries and we also use quite a few open source technologies like jQuery and Bootstrap.
We also use GitHub a lot for progress management. The great thing about GitHub is you can adapt it to work in any way that best fits your needs.
We use a tool called “Pull Request” within GitHub that creates visibility for everyone, including current task status. It’s a great way to see what’s done, what’s not done, what still needs to be completed to be ready for code review.
Instead of everyone just committing code as they please, we go through a code review process, so you can’t oversee reviewing your own code. Once your code has been reviewed and approved, that’s when the merge happens.
Question: Has a tool like GitHub dramatically affected how you do your work?
Answer: Yes, absolutely. I would say GitHub has helped tremendously in terms of organization. Instead of sending an email or just using Slack, someone can easily go into GitHub and report a bug and label whatever issue there might be. You can also provide screenshots with comments for every single change to that issue. It’s helpful for the organization process and overall project management.
Question: How do you keep yourself up-to-date with the changes in tools and languages?
Answer: I would say it takes some proactiveness. It’s easy to just go with what you already know and stay in that stagnant place. But because technology is advancing so much, it’s always good to understand what’s currently possible.
For example, right now I’m working on the frontend of an application. Instead of using what I’ve used previously, I’m using a new technology called Flexbox to hopefully improve the process. I was just going through the tutorial to help learn the application.
It takes asking the question, “what if there’s a better way of doing this?”
That’s why Google is my best friend. I will just input my keywords into Google and if it looks like there is something I can use, I will spend some time researching it and then try it out.
Question: Is there a consistent framework to share knowledge within Azavar?
Answer: We use Slack quite a bit to not only communicate, but to share knowledge. We also integrate Slack with GitHub to help monitor when an app has been deployed successfully. There’s also a tool we use called Raygun, which provides error tracking and gives actionable insights into problems affecting our web and mobile apps in production.
We also have in-person meetings, where one of our team members will give a brief tutorial about a tool or technology that they’ve recently used.
I’m currently working on a new templating guide for our apps. When I’m done, I will present all the new templates, new styles, HTML and the different new technologies to our team.
Question: What would you say is the biggest challenge to stay sharp as a developer?
Answer: In addition to keeping up with improvements to technologies, I think it’s important to stay sharp with the fundamentals of coding. If there is a new challenge and you have a chance to do it a different way, it’s important to be aware that there’s always many ways to get it done, to get it coded.
That’s why I try to maintain an idea of overall best practices. We’re looking for the best way to implement a process, so we can do a better job with our code the next time. It’s fun to review our solutions in GitHub to see how others on our team might have created different solutions for a similar problem.
Question: As a developer, what are you most excited to learn about?
Answer: I would love to learn more on the frontend code, so like programming languages. You can get so much done with just frontend languages like Angular and React. I think that’s amazing.
I’m also interested in advancing my knowledge on .NET and applying best code practices, best arrangement, keeping things separate. There’s a lot to learn within .NET.
Huda Dabbouseh is a full stack developer with Azavar Technologies. She has over 10 years of experience as a developer, helping understand client needs while creating flexible software solutions.