About this Job
Type of job: Full-time
Experience level: Senior, Junior
Role: Software Engineer
Industry: Mobility, Automotive
Company Size: 11 - 20 people
Salary range: € 27.000 - € 55.000
Job location: Rome (chance to work remotely)
Language: italian or english (fluent)
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 software development, cybersecurity, blockchain and DLT.
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, we love working side by side but we are also open for remote collaborations. Our working activity is not properly time-based as we rather focus on achieving the goals we committed to.
The following is a description of an average member of our team:
- quite young (around 30 years old): this does not mean we are not open to older collaborators, it is just an indication that we like to invest on young talents regardless of the years of experience they have.
- driven by great passion for technology: the ones who love their job perform better with less effort
- open source and stackoverflow contributor: it's nice to take but it's also necessary to give something back to the community
- knowledge cruncher, the world runs fast and you have to stay up to date, read a lot and learn from those who have already faced a problem before you is definitely the right path to take
- passionate about the UNIX-like world, what's better than knowing what's happening in your pc?
- beer lover, it helps to think better :)
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. She/He will have to use her/his programming and engineering knowledge to analyze the current code and to improve it and to 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 think and model.
The person we are looking for will work on two possible aspects of our system. On one side, we expect you to develop a backend system made up of microservices, on the other side, 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. For both tasks, we 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.
We also 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 aimingto improve both yourself and your team.
- ask for a book, we'll get it
- foosball and playstation
- free beer on friday
- free coffee
- team building travels
Our working stack
- Issue tracking: Atlassian JIRA
- Team communication: Slack, not-so-often-emails
- Metodology: Agile-Scrum, Domain Driven Design (DDD), Interface Driven Development (IDD)
- Software: GIT
- Platforms: GitHub, Bitbucket
- framework: ReactJS with Redux
- language: TypeScript
- topology: multiple services
- framework: spring boot, django, fastify, laravel, NodeJS
- language: Java, Python3, TypeScript, PHP
- Cloud services: OpenStack
- Containerisation: Docker, Kubernetes
- Persistence: MongoDB, Redis, PostgreSQL
- Events and communication: Apache Kafka
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 ✔️
Up-to-date schedule ✔️
Code screening ✔️
Hallway usability testing ✔️
We don't have particular constraint about the mode of communication, we can meet in person or digitally.
Step1 - Let's get to know each other better
The first step is to have an informal interview, we want to know who you are, what passions you have, what you've been up to and what you'd like to do in the future. At the same time it is a good opportunity to make you understand who we are and what our vision is.
A more technical chat will follow: we will go into details about your working methods and the specific knowledge of the subject for which you are applying.
Don't worry, we will not ask trick questions and we will not ask you theorems or definitions by heart, we want to understand how you think and how you approach problems, if you have a goog basic knowledge, we can build together on that.
Step2 - Let's get our hands dirty
Finally the second meeting is to put your hands on your beloved keyboard, we will propose you a small test to understand your level of knowledge and your skills.
- experience with modeling using UML2
- knowledge of most common design patterns
- knowledge of "Our working stack" section
- advanced knowledge of the HTTP protocol
- basic knowledge of devops practices (unix scripting, docker)
Traits we value
- computer science or engineering degree
- open source contributor
- stack overflow contributor
- academic papers published