Type of job: Full-time
Role: Software Engineer
Experience level: Senior
Industry: Mobility, Automotive, Banking, Utilities
Company Size: 40 - 60 people
Salary range: € 35.000 - € 50.000
Job location: Rome (chances to work remotely)
Language: Italian or English (fluent)
This job position is aimed at Senior Software Engineers. At our company, a Software Engineer is expected to have cross-functional skills between backend and frontend. However, we are glad to hire IT professionals that are more focused on one of these two sides and have only a basic knowledge of the other side. If you will join our team, we will expect you to develop new skills also on the topics you are less familiar with. This will be achieved through both training on the job and personal training courses tailored at improving your missing skills.
We are looking for a smart person who is strongly goal-oriented and able to reason analytically. This profile should be able to collaborate with the other team members to solve all the daily challenges that will arise. They will have to use their programming and engineering skills to analyze the current code and improve it. They will also constantly collaborate to the improvement of our company processes. We expect to find a person who, before writing tons of code, dedicates the right amount of time to planning and modeling.
We also expect you to keep a high code quality with a "living documentation" approach and high level code comments, in order to make collaboration with other team members as easy as possible. A very important skill for us is the ability to autonomously evaluate your own work and schedule code refactors when necessary.
Finally, we expect you to autonomously evaluate and criticize the design choices you will work with day by day, actively contributing in evolving our projects and constantly aiming to improve both yourself and your team.
On the backend side, you will work on two possible aspects of our system. On one hand, we expect you to develop a backend system made up of microservices. On the other hand, you might be working on what we define as "the backend part of our frontend", hence developing client-side code which does not include any graphical and user-facing part.
Frontend software engineers will work on client-side code. On one hand, we will expect you to develop the UI part of our clients (basically UI components using HTML and CSS), both Web, using mostly React, and mobile, using ReactNative. On the other hand, you will work on developing frontend logics, including complex flows for the end users of our applications. We often use state machines to model frontend logics; if you are curious of how we do this, we can discuss this in detail during our interview process.
You will be sent an assignment with some coding problems. You can choose which problems to solve in one hour and submit your solutions. The solutions you submit will be evaluated by our recruiters and, in case they are satisfactory, you will be moved to the next recruitment step.
In this second step, you will have a call with one of our recruiters and they will present you our company and the job position you applied for. They will also ask you to briefly discuss your background and your previous experience. At this stage, feel free to ask any question about our company and the job position!
In this step, you will be requested to solve some algorithmic problem in a live coding session with one or more of our recruiters. You can use any programming language you like. We never ask trick questions and we will not ask you theorems or definitions by heart; we just want to understand how you think and how you approach problems: if you have a good basic knowledge, we can build together on that.
A further technical interview might follow in case our recruiters believe it necessary to better assess your skills!
Here you will get to talk with our head recruiter and our Engineering Director. We will get to know each other better and go through an assessment of your technical interviews and maybe follow up with some further discussion about the problems you faced.
In case you successfully completed all the above steps, one of our people managers will get in touch with you to discuss the logistics, economics and benefits and follow up with a job offer.
Here at moveax, we have the ambition to be regarded as the best possible partner for any business that seeks help in facing the daily challenges of the tech world. We are proud to be the right people to interact with in the field of digital and cybersecurity. Over the years we have also gained great experience in the world of blockchain (digital assets, DLT) and artificial intelligence. We believe our main competitive advantage is having a team made of young talents who have a strong passion for technology. We treat every project for our customers with the same care we have for our own projects and we constantly try to improve our processes to achieve the best possible results. We are based in Rome, between Trastevere and San Pietro neighbourhoods. The main market segments we work in are: mobility and transportation, banking and finance, public administration.
The person we are looking for will be part of our Digital business unit. This business unit is made up of 4 departments that work together to deliver the best possible products:
As stated, you will work at our Engineering department and will be expected to cooperate with the other departments listed above to deliver the best project possible. Our Digital business unit as a whole basically works in two directions:
The following is a description of an average member of our team:
The following list includes most technologies that we have been using on our projects. This is not meant to be an exhaustive list, as we plan to investigate new technologies and are open to different technologies based on project requirements.
Source control ️One-step build ️Daily builds ️Quiet working conditions ️Bug-tracking database ️Best tools that money can buy ️Bugs fixed before writing new code ️Testers ️Up-to-date schedule ️Code screening ️Specs ️Hallway usability testing