Backend Software Engineer
Transportation drives humanity forward. At Stratio we have a purpose: to change the transportation industry. We believe in a future with no disruptions, where vehicles never break down, a zero downtime future. For that we rely on great individuals and great teams.
The Backend Software Engineer is responsible for curating the structure of server-side information. This means developing, maintaining, and scaling up our platform and our vehicle information database, ensuring its reliability, scalability, performance, and cost-effectiveness. Be ready to be part of a highly innovative team, always searching for new technologies and standards to keep improving our technological stack in an agile environment.
- Participate in the specification of new features and improvements, supporting our Product Owner;
- Implement and maintain core services with business logic, serving REST/JSON APIs implemented with .NET Core;
- Design and implement the software architecture to support high availability and horizontal scalability;
- Advocate for improvements to product quality, security, and performance;
- Craft code that meets our internal standards for style, maintainability, and best practices for a high-scale web environment. Maintain and advocate for these standards through code review.
- BS/MS degree in Computer Science, Engineering or a related subject;
- 2 or more years of professional software engineering experience;
- Strong knowledge of C#;
- Knowledge of software design and architecture;
- Understanding of various coding methods and computer languages;
- Knowledge of software development life-cycle processes;
- Reliability and great problem-solving skills, with great attention to detail;
- Ability to work under pressure;
- Good knowledge of English, both spoken and written;
- Good knowledge of English, both spoken and written.
- Experience working with Messaging Systems, particularly Kafka;
- Experience working with NoSQL databases, particularly Elasticsearch;
- Experience working with .NET Core;
- Experience working with testing frameworks, particularly NUnit and Mock;
- Knowledge of distributed systems.
We expect you to:
- Assist in analyzing requirements and designing software architecture;
- Participate in execution and documentation of tests;
- Have knowledge of Design Patterns;
- Have good programming skills, ability to produce quality code that is reliable, maintainable, and simple (focus on the human side of the code);
- Have experience with both relational databases and NoSQL databases;
- Have experience through the whole development cycle;
- Help the elements of the team with less experience;
- Be able to work autonomously;
- Be able to own your mistakes and take actions so that they don't happen again;
- Be eager to learn about Design Patterns, performance, and security;
- Keep an eye for possible improvements and identify disruptions in the processes;
- Work with autonomy to find solutions to complex problems and be flexible and responsive to changing requirements and priorities.
You can find our Culture Manifesto and more team information here.