···
Log in / Register
Software architect - remote (3)
Negotiable Salary
Indeed
Full-time
Onsite
No experience limit
No degree limit
79Q22222+22
Favourites
Share
Some content was automatically translatedView Original
Description

Description: Experience: * Proven experience in designing and implementing scalable, resilient, and secure software architectures. * Practical experience in software development using the C# language. * Experience applying software design principles (SOLID, Clean Code, etc.). * Experience implementing automated tests (unit, integration, etc.). * Experience with architectural patterns (microservices, message queues, etc.). Technical Knowledge: * In-depth knowledge of the C# language and the .NET ecosystem. * Solid understanding of software design patterns (Design Patterns). * Knowledge of software architecture principles (microservices, message queues, etc.). * Knowledge of agile development practices (Scrum, Kanban). * Knowledge of information security (authentication, authorization, encryption). * Knowledge of code versioning tools (Git). * Familiarity with testing methodologies (TDD, BDD). * Familiarity with Docker and Docker Compose. * Knowledge of CI/CD (Continuous Integration / Continuous Delivery). * Knowledge of IaC (Infrastructure as Code). Skills: * Excellent communication and collaboration skills to work effectively in teams. * Critical analysis and complex problem-solving abilities. * Ability to translate business requirements into clear and concise technical specifications. * Ability to make data-driven technical decisions based on a deep understanding of involved trade-offs. * Ability to document solutions clearly and systematically. * Capacity to learn and adapt to new technologies and tools. Solution Architecture and Design: * Select appropriate architectural patterns (microservices, message queues, etc.). * Justify pattern selection relative to requirements. * Consider trade-offs between simplicity and flexibility. * Define clear strategies for handling increased load (scalability). * Implement fault recovery mechanisms (resilience). * Ensure continuous availability of the release control service even in case of daily consolidation failure. Define how components communicate (protocols, message formats, etc.). * Select appropriate integration tools and define their responsibilities. * Implement authentication, authorization, and encryption (security). * Implement protection mechanisms against attacks (WAF, etc.). * Analyze the quality of system decomposition into smaller, manageable parts. Abstract and segregate responsibilities across layers. * Implementation: * Ensure adherence to software development best practices (SOLID, Clean Code, etc.). * Write readable, well-organized, and easily maintainable code. * Use the C# language efficiently. * Implement tests with good coverage, quality, and relevance. * Meet mandatory technical requirements. Meet business requirements. * Documentation and Presentation: * Document the architecture clearly and concisely. * Create diagrams representing the architecture. * Justify architectural decisions. * Define data flows. * Write clear, detailed instructions on how the application works and how to run it locally (Readme). * Centralize documentation. * Describe possible system improvements or expansions. * Demonstrate long-term vision and planning capability. Discuss trade-offs and challenges encountered during development. * Differentiators and Best Practices: * Ensure code runs error-free locally. * Apply Docker and Docker Compose strategies. * Implement automated pipelines (CI/CD). * Apply IaC (Infrastructure as Code) strategies. * Perform cost estimations. 2512280202491713515

Source:  indeed View original post
João Silva
Indeed · HR

Company

Indeed
Cookie
Cookie Settings
Our Apps
Download
Download on the
APP Store
Download
Get it on
Google Play
© 2025 Servanan International Pte. Ltd.