Overview
Senior Software Engineer.
Key Responsibilities
- Write high-quality, efficient, and maintainable code following best practices.
- Champion test-driven development to ensure robust and reliable software delivery.
- Analyze, monitor, and optimize system performance to meet complex scaling and business requirements.
- Implement comprehensive monitoring and alerting solutions to proactively identify and resolve issues.
- Investigate and analyze existing legacy systems, proposing and implementing improvements for maintainability and performance.
- Design, deploy, and manage scalable solutions using AWS Cloud services, such as Lambda, RDS, Kinesis Data Streams (KDS), SQS, SNS, and CodeBuild.
- Leverage Infrastructure as Code (IaC) tools like Terraform or CloudFormation to automate and streamline deployments.
- Optimize relational databases through advanced query analysis, partitioning, indexing, and performance tuning.
- Diagnose and resolve complex scalability and performance issues in both production and pre-production environments.
- Provide on-call support as needed based on team scheduling.
- Oversee the integration of CI / CD pipelines and DevOps practices to streamline deployments and improve operational efficiency.
Qualifications
- Software development experience focused on building scalable distributed systems and microservices architectures.
- Proven track record in leading technical teams and setting technical direction.
- Proficiency in one or more of the following languages and frameworks: Java, Typescript / Node.js, Spring.
- Extensive experience with AWS services, including Lambda, RDS, Kinesis Data Streams, SQS, SNS, and CodeBuild.
- Expertise in implementing Infrastructure as Code (IaC) with tools such as Terraform or CloudFormation.
- In-depth knowledge of Domain Driven Design (DDD) and microservices architecture.
- Strong background in relational database management, including query analysis, partitioning, indexing, and performance tuning.
- Demonstrated experience with performance optimization and troubleshooting complex systems.
- Experience with development practices: test-driven development and designing for testability.
- Hands-on experience with refactoring and modernizing legacy systems.
- Leadership & Communication: Excellent problem-solving skills with the ability to tackle challenging technical issues.
- Strong written and verbal communication skills in English.
- Desired Qualifications:
- Experience with large-volume transactional data services and handling large data sets.
- Familiarity with event-driven or queue-driven architectures.
- Exposure to containerization and orchestration technologies (e.g., Docker, Kubernetes) is a plus.
- Experience leading Agile or Scrum teams.
Competenze richieste : Se disponibili, vi chiedo di inviarmi alla mail : CV Disponibilità Aspettativa economica in termini di netto (nice to have)