How FULL is your Stack Developer?

How FULL is your Stack Developer?

Hello! I’m Joe Zimmer and I joined Dunelm a year ago as a Full Stack Developer. For a lot of my early career, I would adamantly call myself a Backend Developer and never wanted to attach myself to anything frontend related. I viewed writing HTML & CSS as the work of the devil and couldn’t do much beyond just getting a grey button to appear on the screen that did the right thing but looked terrible. Gradually, as frameworks like React started to become common place, I softened my stance and got more involved, and now I find myself regularly writing front end features while still being involved with the back end services as well.

The title of Full Stack Developer was thrown around loosely for quite a while, with no one quite knowing exactly what it meant, but recruiters loved to hear it. A quick google has the definition as follows -

"A Full-Stack developer is a professional responsible for working on both front-end and back-end development processes. They design, develop, and maintain fully-fledged and functioning platforms with databases or servers."

I view the role as something with multiple layers, the core will remain consistent, with extra focuses being added or removed depending on the company and your interests. To explain my thoughts on what I believe the role entails, I thought I’d compare it to one of my favourite things — putting together a good meal.

No alt text provided for this image

Setting the table

You can’t get started on your meal unless you‘ve set the table, and you will struggle to be a full stack dev without the fundamentals.

You need be comfortable with a programming language and running it, so having an understanding of JavaScript and Node.js is key to be able to get developing. Having a good understanding of Git so you can use version control on the code you are developing will allow you to avoid losing your code and collaborate effectively. Also, making use of package management tools like npm or Yarn gives you access to a wide variety of libraries that will save you lots of time.

No alt text provided for this image

Keys to the meal

Now you know you can eat your meal, you need to put it together. You want to try and get a good mix of things on the plate, in the same way you want to have a good understanding of the different technologies you can be working with.

To work on most modern frontends, you will end up learning a library like React, which will be the foundation for how you approach a lot of the code. These libraries are great for allowing rendering manipulation of page content, where it would take more time trying to write with pure HTML and JavaScript. You’ll also want to have an understanding of how to structure HTML and write CSS to accompany this, otherwise it can fall a bit flat.

The frontend code you are working with will often want to retrieve data from a backend service, and being able to write these yourself will be key to becoming full stack. You’ll want to know how to set up your code to respond to an API call or similar request, and return the expected data based on the input. If you are interacting with a database that stores data, understanding different databases structures and transactions is also important. Depending on how you deploy the backend service, this can involve varying additional libraries.

The consistent tool across both frontend and backend code will be testing. Knowing how to write unit tests to ensure your code is working as expected will let you avoid those annoying scenarios where everything works when you try it locally then someone finds a way to break it once deployed.

No alt text provided for this image

Adding the flavour

To make that meal you are putting together taste even better, you want to make sure its seasoned well. Being comfortable with good ways of working will make what you do stand out more.

Collaborating with other developers is a great way to build experience and learn different ways of approaching problems. Pairing sessions are a great tool for this, or even knowledge sharing between the whole team. Getting involved in these activities regularly can help not just improve your own ability, but that of the all the developers.

Having an understanding of the different methodologies teams use to deliver and the relevant sessions is also a big bonus. You’ll often find a lot of Agile or Scrum teams, and being able to hit the ground running with the workflow is a great thing when joining a new team/company.

No alt text provided for this image

Indulging in some sides

You’ve got a good meal now, but you want to make it even greater by adding some side dishes to it. Here are some other areas you can look to build on to reach that next level and expand your knowledge of the whole stack.

Whilst you’ve written all the code for your app, it still needs to be deployed somewhere. Thankfully, this process has become a lot easier for developers to get involved in with the increase in infrastructure as code tools and simple cloud services like AWS or Azure. You can get the resources you need deployed to these cloud services with either platform agnostic tools like Terraform, or more platform specific tools like AWS SAM or CDK.

Once you have your resources and deployments manageable locally, you can also look into automating the process so its not relying on a manual deployment every time you make a change. CI/CD processes are often available on your source control provider and can be configured within the repository to run the scripts you need once you merge your code.

Finally, you could also look to expand your testing knowledge beyond just unit testing and look into integration and end to end testing methods. These help you get a clearer picture of how your application is working as a whole, and can highlight some discrepancies that might not appear when mocking resources in unit tests.

So there you have my thoughts on the areas I think are involved in being a good Full Stack Developer, and areas you could possibly grow into but could already be part of your job. If theres anything you think should or shouldn’t be included, please let me know in the comments.

要查看或添加评论,请登录

社区洞察

其他会员也浏览了