DevStory: Full Stack Developer, Zuhair Rayyes von der IKARUS Software Gmbh
How did you get into programming?
I’ve always enjoyed creating things, so when I first discovered that I could create my own computer programs, my mind was blown and I was immediately hooked. I started with Java because a highschool friend had told me about it, and I would write small programs like a script to reverse a text input, which at the time I thought was very impressive.
At what age did you start?
Which programming language did you first get excited about?
Python. The simple syntax made it much more of a pleasure to use, and I could accomplish tasks much faster in comparison to the only other language I knew at the time (Java).
What exactly is your DevJob about?
As a Full-Stack developer, my job usually revolves around building and maintaining our cloud.security interface and its accompanying backend services. We use React for our frontend and Node.js/Python for our backend services. I have also worked on several tools to help out our staff.
What do you particularly like about your DevJob?
The ability to work on both the frontend and backend, dealing with the various tasks and challenges that come with each always keeps my job interesting. I also enjoy bug tracking. No, seriously.
What kind of challenges do you face specifically in your DevJob?
Having to transition from one active project to another; There's always some time being wasted on having to relearn the other project. One way I try to minimise this time loss is by keeping a log of any changes I make, that way when I do have to move back to a project, I have some idea of what I worked on the last time I was there.
What are your preferred technologies?
React as a frontend framework, for its ease of use and widespread adoption.
Node.JS as a backend framework, for its speed, 3rd party support, and the fact that you would only need one language for both frontend and backend.
Windows or Mac?
Work: (Debian-based) Linux.
Personal and Professional Growth
Which Dev Projects do you have outside of your work?
I try to work on projects that have nothing to do with what I do at my job, that way I can maintain a diverse set of skills at all times. Most of my hobby time is spent writing Arduino code to control the Nintendo Switch, usually to accomplish a difficult task in a game (i.e. cheating). Occasionally, I also like learning a new programming language, purely to learn how well it solves common problems, and what design decisions were made while creating the language.
How do you keep yourself up to date for your job?
I have an active subscription to the O’Reilly learning service (an e-book service). Every month or so, I make a list of all the books that interest me, and I try to go through them before the month is over. I also regularly visit the official website/blog of languages and frameworks I work with to see what the authors have added, and what they’re planning for the future.
Where do you see yourself in the future?
I’m still working on that.
Tips for beginners
How do you start programming and what should you start with?
Start with a (computer-related) problem that interests you and try to solve it; I found this to be my most effective way of learning any new tool. With that being said, I also think beginners need to understand when to use the right data structures (& algorithms), and the importance of code testing.
Which skills are required for your work?
Continuous Learning: I’m not sure if this counts as a skill or not, nonetheless, I think it’s absolutely essential for one to regularly find ways to update their existing knowledge.
In your opinion, what kind of education helps to be good at your DevJob?
I think it’s impossible to find a general answer to this question. Some people need the commitment that comes with a University program, while others might prefer the flexibility of a self-taught program. For anyone who is self-driven and short on time, I recommend following the developer roadmap.