Do you know programming languages better than Italian? Find out what you can do in Subito’s IT team!
We are seeking a Software Engineer with a strong generalist software engineering background. You should be able to work with different programming languages, design solutions, develop our application architecture and implement new features. Versatility is key to us!
As an Engineer, you will be a technical reference and act as a guide for your teammates to help them do their best work. You will set the standards for your team to follow and propose improvements to processes, practices, and tools to make the developer experience at Subito better for everyone.
At Subito, you will collaborate with Product Owners, UX designers and Software Engineers to deliver compelling user-facing products. We take a DevOps approach, so you will automatically deploy and monitor your services to identify issues before our customers do. We move fast with a no-blame approach. Deploy with courage, and if you break it, then fix it!
Typical Day In Subito
Catch up with your team in a stand-up meeting
Share updates with other engineers from across the company
Work on the stories in your sprint
Check the health of your applications. Do they have problems? Don’t panic!
Swarm with other engineers to find a solution
Test and deploy
Monitor your changes as they go live
Review the code of your teammates
Key Responsibilities
Own the entire development cycle together with the cross-functional team, from requirements specification over implementation, test automation, and quality assurance to deployment and monitoring
Contribute to the team's work with clean, maintainable and testable code and participate as well as lead design and code reviews
Actively contribute to and shape business, culture and ways of working
Participation in on-call rotation
Our tech stack
Identikit
Minimum of 3 years of experience implementing backend services and APIs
Confident in writing code that follows clean code principles and applying common design patterns and best practices
Confident in writing automated tests
Confident with RDBMS and NoSQL DBs
Knowledge of common microservice architecture patterns like dynamic service discovery, circuit breaking, and bulkhead
Knowledge of event sourcing patterns and technologies
Confident in designing the architecture of new services following best practices and clean architecture principles
Familiarity with containerisation
Familiarity with CI/CD practices and IAC
Fluent in English
Pluses
Deep knowledge in at least two programming or scripting languages: Go, Python and Java
Experience with PostgreSQL and Redis
Experience with Apache Kafka or RabbitMQ
Confident with Docker and Kubernetes
Experience with CI/CD strategies and tools like Jenkins, GithubActions, Terraform
Experience in profiling and debugging performance issues
Knowledge of DDD methodologies