What skills does it take to be a successful full-stack developer? What are the tools that every developer should use? How to troubleshoot problems which are an inseparable part of your daily work? Filip Ryba, Technical Team Leader at Grape Up gives answers to these questions and shares even more practical tips.

1. What are some of the most useful skills to know for you as a full-stack developer?

I would say that abstract thinking is one of the skills I value the most. Full-stack developers usually work on a large swaths of functionality, spanning across front-end, back-end and possibly business, and in their very hands is the responsibility to keep those very different worlds in sync with each other. Data structures and designs used by the client-side have to conform as much as possible to whatever API services offer and vice versa – thus, the ability to see the big picture and smooth out the rough details is crucial. Other than that, the knowledge of core programming paradigms, such as advanced orchestration of asynchronous requests and deeper knowledge of the stack we currently use in a specific project are very helpful in preventing bugs and code smells.

2. How do you solve problems you encounter on a daily basis?

I tend to start with a loose investigation of the problem – does it look like something my team had to do within the last couple of months? The answer, more often than not, turns out to be ‘yes’. Getting feedback from the team before tackling the problem by myself saves everyone’s time. Often, before I even get down to coding, I ask whether or not this issue could be solved by redesigning a part of application or business logic, instead of simply patching up the problem. I emphasize the fact that we, as developers, are responsible not only for the quality of the code, but also the quality of the design.

3. Which tools do you consider useful in your work as a Technical Team Leader?

I like to keep things simple. I tend to use IDEs, such as PyCharm and WebStorm for coding and Chrome DevTools for debugging the front-end. For back-end stuff: Postman and Unix tools for log reading. Other than that, it’s every little bit that helps: KeePass for safely storing all my accesses in one, convenient place; ConEmu for multi-tab and multi-console mode (something I sorely missed on Windows); JIRA for daily productivity and Slack for communication.