Exclusive Interview with Ricardo Neves, A Backend Developer
Date : June 25, 2015 By
1. Mr Ricardo, please introduce yourself and tell us what you do
My name is Ricardo Neves. I am 26 years old, I was born in the North of Portugal in the beautiful city of Porto.
In 2016 I finished my master degree in Informatics and Computing Engineering at the University of Porto.
Currently I am a backend developer at Mindera, it is a software house that builds its own products, and works for several clients in a wide range of markets.
Since I started working at Mindera, almost three and a half years ago, I have always worked in the betting area, more precisely for a horse betting platform and TV station company. I am part of a team of about fifty people including developers, project owners, designers and quality assurance engineers. Our entire platform is based on micro services architecture and we currently work with Google Cloud Platform as cloud provider, we use kubernetes to orchestrate all the micro services that are written using Spring boot. I work with an awesome team and we get challenged everyday.
When not working for Mindera, I like to work on some of my personal projects.
I’ve made a mail push notification service where a Raspberry Pi Zero connects to the internet and is placed inside a mailbox connected to a solar panel and when something interrupts the infrared beam, it sends a notification to an android application that was also developed by myself. This was a fun project to do because I learned a bit about electronics, and in the end I had something physical, which does not happen when you only develop software.
I have also started learning Flutter and released an application to Google Play Store some weeks ago.
I have some hobbies as well that do not involve programming. About 2 years ago I bought a 3D printer, it is fascinating the idea of being able to create or download a 3D model and after some hours we get the exact same physical object.
Finally I could not live without coffee, I like every types of it, although I tend to be purist about it. For me it is mandatory to have at least coffee beans and a grinder. The smell and the flavor is much better when compared with capsules or already pre grinder coffee. I mainly drink espresso shots, but also like to use french press and Hario V60 filtered coffee.
I am also into motorcycles, I love the feeling of acceleration and freedom, riding is a great way to relax, have some fun and know different places.
2. Why have you decided to create educational projects on Education Ecosystem?
This is actually a fun story, it all started when I was writing my master thesis. Basically I was developing a genetic algorithm that generates faculty’s timetables for students, teachers and rooms using the power of the GPU.
The majority of the time I was home writing code, and I felt like I could start live-streaming it. After some search on the internet if there was any dedicated platform, I’ve found Education Ecosystem or LiveEdu that is how it was called at the time.
So as I was live-streaming, I started to get people watching it, and making questions, and sometimes some tips and suggestions about what I was developing at the moment.
After I finished my master thesis, I started learning Unity, and I just live-streamed it, because I enjoy talking to people that share this taste for programming.
Education Ecosystem team contacted me proposing if I wanted to start making some tutorials for the platform. It seemed a good opportunity to me, and since that time, I’ve published 5 tutorials.
Creating complete projects, from start to finish seems to be a great way of encouraging people to watch these videos, because they know that what they are learning was made to build a real product. At the end viewers may not be fluent with used technologies but they know their capabilities, and can start from there to learn them more in depth and bring their own products to life.
3. How has your experience at Education Ecosystem been this far?
Almost 4 years have passed since I first started producing content to Education Ecosystem, until now everything is very good, people are always very flexible and comprehensive.
I would like to thank Education’s Ecosystem content creation manager – Dušan Kolić.
He was the guy behind my career here on Education Ecosystem, he was the one that asked me if I wanted to start making some content for the platform. I feel that I am making progress here, first I started just randomly live streaming just for fun without any preparation. Then Dušan reached out and I started preparing tutorials with more careful and delivering content. Recently I completed a project that was not just videos and tutorials, but a real product. You can check the Covid-19 Cases Tracking by Zip Code that was recently developed and is available here: http://case-tracking.education-ecosystem.com.
If you never produced content, I dare you to try. It is a great way for yourself to learn and gain experience, it will also help other people to learn and discover new technologies, in the end you will also receive some money for it. So if you would like to start, join Education Ecosystem slack, and speak with Dušan, maybe you can teach something that you are really good at and bring some value to the platform.
4. What are some of your accomplishments? Tell us about your significant projects. Which project makes you feel the proudest?
My first accomplishment was finishing my master degree, it teached me how to be a good engineer and it gave me the bases to be a great software developer.
My first big accomplishment after starting working was on Mindera. It happened 2 years ago, and the credentials recovery system needed to be rebuilt, I cannot say that I rebuilt it on my own, but I know that I played a significant role in that project. I took about 2 months, but in the end, seeing that this big change reached real users gave me a fantastic feeling of accomplishment.
There are always small accomplishments that we reach everyday, it can be a solution for a bug that was hiding for quite some time, a decision or even that ugly piece of code that we just refactored.
I think that if we try our best everyday, and try to make small iterative accomplishments, the big accomplishments will start appearing more naturally.
My advice is, keep working while doing what you love and always question what you see.
5. As a Programming expert, what are your greatest strengths and achievements?
I do not consider myself a programming expert. Computer engineering is such a broad subject, that it is hard to be an expert on every of its subdomains.
In my opinion there are 2 different programmers profiles. The first is the one that knows a bit of everything, that may or may not have some more deep knowledge in specific domains. The other type is more focused on a specific programming topic, like native mobile application developer or SQLServer DB development.
I fit in the first category, because there are several areas that catch my interest and It is difficult to avoid giving some attention to them. What I am focused on right now is what I do professionally. I work as a Java backend developer using Spring boot, of course I have some other experience on frameworks and tools that orbit around microservices architecture.
I would say that one of my greatest strengths is trying to keep evolving and avoid becoming too comfortable with some technology, language or framework that I am using. When this happens I try to learn something different that helps me keep learning.
6. What are some of your biggest weaknesses?
There is a main problem that I have had for quite a while, impatience.
I want to see progress and results as fast as possible. In some way this is good, it means that I am excited, but from another point of view, this sometimes makes me write bad code and just spend more time developing, because I need to refactor all the code in the end.
When I am learning some new technology to apply in some project I tend to start rushing my learning so I can start developing. When I start developing I try to keep clean and structured code, but after a few problems here and there, and spending some time that was not planned, an impatience feeling starts to appear and I try to rush myself again. In result of this impatience I create code that I am not proud of and the project starts to be difficult to maintain. When the project is finally working as intended, my impatience goes away, and now it is time to start cleaning up and refactoring the code.
Even when there is not a deadline, I try to impose one in my head. I always push myself to finish until that deadline, and sometimes I don’t enjoy the journey as I wished because I get too stressed to meet my mental deadline.
I am always trying to avoid this behavior, let’s see if I can start mitigating in the future.
7. Where do you see the Programming category in 5 years?
In the past, programming was more low level. As time has passed and technology started to evolve, more languages with a higher level of abstraction started to show up.
There was a time where C and Fortran dominated the programming world, now they are far from being the most used ones. Those low level languages played a major role in the past and they contributed and still do for the creation and evolution of more high level languages like Java or Python.
In my opinion the trend for the future is that those lower level languages will become a niche to develop specific software like embedded systems (C) or maintaining current banks software stack (Fortran).
Programming in general will be more abstract in the future, trends like serverless technologies will keep increasing popularity. For now they are used in some specific cases, but I believe that they will be the rule of thumb like higher level programming languages are now.
AI we have to mention Artificial Intelligence, it is already being explored and contributing to build software like it was never seen before. If we think, AI just started being popular a few years ago, It will reach a level in the future where it will become part of the basic knowledge of almost every developer.
I have a strong opinion that everyone should learn how to do basic coding because it teaches you how to think. Actually, we are using tech everyday, and a big percentage of the world population doesn’t know how it works behind the curtain. I believe that more countries will start to add programming to their school courses.
8. What project are you currently working on?
I normally work on several projects at the same time, because I work on one project professionally and some other ones personally.
But let’s focus here on my professional work. As I mentioned in previous questions, I work at a software house that has its own products and makes consultancy for its clients. In my case I work for a Horse Betting platform, that has its own website and TV station to broadcast the horse races live.
We are a big team of 50 people only in Portugal, and the client also has its own engineers.
One year ago we finished the migration of the entire platform from a big monolith that was build from the 90’s until 2010’s. It had several layers, but it was mainly built in ancient C# and C++ technologies.
As the internet started to become reachable by everyone, the amount of users started to increase, which led to a web traffic to increase as well. This old monolith was doomed to fail with the levels of traffic that we have today, also it was not scalable and very hard to maintain.
So the team started migrating everything to microservices architecture hosted on Google Cloud Platform with kubernetes to orchestrate all microservices. I joined the team when this migration was like 20% or 30% done.
I was pretty inexperienced back then, and at the end of the working day, I remember thinking how much I have learnt, the amount of new terms and new problems that I never thought they existed.
Everything is running smoothly now, without any major problems. Right now, that we have modernized our platform, we are focused on maintaining it and developing new features that bring value to business and users.
9. Would you recommend the Education Ecosystem to others? Why?
When I have this kind of question I always say that it depends. It depends on what best suits you, what keeps you motivated to keep learning.
If you are the kind of person that likes to jump right to the action, and start learning directly on how real products are born, then, Education Ecosystem is the right platform for you.
Education Ecosystem has several domains inside the programming world, like game development, cryptocurrency, artificial intelligence and others, but there are also people working on other domains like design for example, this is not a platform for only software developers.
The best thing about this Education Ecosystem is that you are learning with real professionals, people that work everyday on the field. These experts can lead you to the right path, telling you what you won’t learn in any other course, because theory and applying it to build real products represents different challenges.
I would say that the perfect learning methodology is combining theory and practice, when you merge theory and a practical use case, it will leverage the will of building something by yourself.
Before starting an Education Ecosystem tutorial, you should have at least some basic knowledge because we don’t want you to feel lost, but we also don’t want more experienced people to be bored.
Building some product that was done by you, will make you feel accomplished knowing that you overcame the challenge and learned a lot along the way.