José Cabeda

@cabeda

Full Stackers, Suit UP!

A full stack developer must know a bit of everything. From the enlightening world of UI and frontend to the abyss of the backend infrastructure, he must be able to build a working product. And although he lacks a specialty, (required in some cases), he is the one with the biggest and most polyvalent set of skills. He’s the reliable one, the one we look at. 
But to join this group, a developer must surround himself with tools, skills, and knowledge. As an aspiring Stacker, I’m going to share with you what I’m currently doing to climb the steps to the dreamed state of Full Stack Developer.

Learn… Must learn…

Any developer worth its salt has to stay on the edge, always learning and improving. The world of web development is in constant motion and it is important to find motivation in this never ending state of learning. We may love to stay on the front line of the development world, or to optimize our work, or even to impress our friends. But if you can’t find motivation, it’s going to grow into a problem because sooner or later you won’t be able to understand the code in front of you and there’s always someone to replace you with the “latest fashion of the dev’s World”.

To keep myself updated I read/listen from:

Task Management

Throughout the day we have many tasks to complete and usually, in my case, unless it’s a routine type, I know I’ll forget it. So I decided to use Google Keep to hold all the ideas I have. It’s simple, fast and is synced to all my devices. Oh, and it’s 100% free. For time-wise projects, I’m experimenting with Trello but I’m not liking the idea of dividing my attention between two applications.

So I suggest using one of the following:

Password Manager

Another thing that I’ve found pretty neat is a password Manager. I was rotating between some passwords but after the lastpass sync started being in the free tier I’ve given it a shot and I like to have all my passwords secured in one place. I know there’s all kinds of risks and I decided to keep two crucial accounts out as a safety measure. At the end of the day, I think it’s easier to keep tabs of my security when it’s all centralized.

Some password managers are:

Productivity

As a developer and student, I found myself locked into 4 devices. My home PC, my laptop, my workstation at work and my smartphone. After some time I found the need to keep all information in sync. To that end I use a variety of applications with sync features (like google keep and google photos) and for SMS, Notifications and clipboard I found Join to suit me perfectly.

  • Join (is the most simple option)
  • Airdroid (it had some security problems but its a very complete application and I’ve liked the experience)

Focus

There are so many distractions everyday that it keeps getting harder to maximize my time and more importantly, to get in the “zone”. The perfect combination of music and code at night is one of the things I love to do the most since I’ve learned to do my first “Hello World” in Java.

Nowadays I try to:

  • Play playslists with no voice (epic or relaxing)
  • Code when everyone is sleeping (not so often now as it used to be…)

Design

I have to admit this isn’t one of my strong skills but I recognize a good interface can make wonders. It’s a key point between a good and bad application and can define if you’ll have anyone using it.

Do yourself a favor and focus some time on it.

For prototyping, I’ve found Figma as a very interesting alternative to Sketch as its free for students and is available for windows users.

One rule I like to follow is to keep tabs of my work no matter the tools. With this, I’m able to quickly understand my train of thought at the time I made the decision and better comprehend what I have done.

I’ve learned to create diagrams when I was at college (and I hated it) but now I find them as the best way to describe my ideas and architecture.

Design tools:

In the end, as somenone who’s not proficient in design, the good’ n old paper and pen does wonders and is the quickest solution.

Developing

The cream of the pie! The thing we all like the most (at least I hope so)! 
As a full stacker, we need to dirty our hands and take responsibility for everything from the start to the end. As such we could separate this in:

Code Editor

I found Visual Studio Code as the perfect tool to program. It’s wonderful if you program in typescript but suit you as well if you are developing for .NET Core.(both work done by the Santadella’s Microsoft). I’ve found that with plugins made in house or by the open community that I can do almost everything but, if you still need more, there’s always the Visual Studio 2017 Community.

If you are building small demos or are experimenting and want to share your code, you may want to consider online editors.

Some tools I’ve found myself using:

API

I have to admit one thing. When I made my first API, I tested it by opening a new tab in the browser and checking if it presented the correct information.

When I started piling on multiple requests, authentication, etc, I realized I needed a better tool. This introduced me to Unit Testing (but I’ll leave this to a possible future article) .

The key Point is If you need an API you need to test it and if you don’t want to spend countless hours repeatedly testing the same requests, you need to upgrade.

Tools to Test API:

Continuous Integration

I’ve been introduced to this only in 2016 but this does wonders for a developer. You can automate the deployment and testing of your code, saving you from many headaches and sleepless nights.

List of CI Tools:

  • Jenkins (can be hosted on private servers but may have a steep learning curve for beginners)
  • Travis CI (Very simple and is directly linked to github)

Repository

It’s almost obligatory to have our code saved in a repository. There are two option, SVN and Git but Git is the king here. This helps to keep an hold on our changes and to manage contributions from other developers. We have other features like wiki and issues but the truth is Git makes our lives way easier.

The main options to use Git are:

  • GitHub (most used of all options)
  • Bitbucket (bought by Atlassian, let’s you create private repositories)
  • Gitlab (new kid on the block but has CI out of the box)

Bonus:

Screenshots: Lightshot

Spell checking: Grammarly

Conclusion

If you are reading this I’m hoping you have patiently read the whole article. If not, you can quickly check all the tools I’m using by going through the list on each section (I don’t blame you ;-) ).

I’m only starting to learn and to optimize the way I program. I still lack the discipline to code uninterruptedly for long periods of time and I’m only now starting to write side projects.

But I’m hoping to improve and learn.

In a year from now, I may have switched half of the programs from this article and may have added some more (containers, cloud and unit testing are in my sight).

But if I do it, it’s because I’m one step closer to Full Stack Enlightenment :-).

Disclaimer: I’m not receiving a penny for the multiple tools I’ve listed. I’m truly looking to share my work tools and getting some feedback in the comments.

More by José Cabeda

Topics of interest

More Related Stories