System Architect Senior (Enterprise)

System Architect Senior (Enterprise)

14 sep
|
Sproutloud Latam
|
Medellín

14 sep

Sproutloud Latam

Medellín

Role: System Architect Senior (Enterprise) Summary: As a Senior Software Architect, you will take part in the full software development life cycle (SDLC) for SproutLoud's Through Channel Marketing Automation SaaS Platform. In this role, you will collaborate with cross functional teams designing, developing and running highly complex cloud-native applications and services, while meeting the business requirements and improving overall user experience. The Senior Software Architect is a self-starter with a strong desire to learn and work with cloud-native technologies & processes, improve efficiency along the way and make an impact while contributing to cross-functional teams. You ensure SproutLoud's SaaS platform aligns with business goals,





conforms to engineering standards and meets our clients requirements and SLAs. You define strategic directions of the business architecture, which then leads to an understanding of what technology facilities are needed to support that architecture. You collaborate with our development teams to provide engineering leadership and subject matter expertise in the evaluation of system requirements, architectures, models, designs, and release/deployment plans. You are expected to contribute more than just code. You'll be involved in defining how things work, what they do, and why we do that instead of something else. We also expect you to share your knowledge and expertise with everyone else. Your ability to creatively collaborate and execute team goals will affect scalability and directly contribute to the company's product and the features our team builds. You will collaborate with product, engineering and other development teams in SproutLoud to build cloud-native applications and services using modern web technologies in a dynamic and agile environment. You will be part of a fun, diverse team that seeks challenges, loves learning and values teamwork. You will have opportunities for learning, mentorship, career growth, and work on high-business impact areas. Qualifications and Skills: Master's or Bachelor's Degree in computer science, computer science engineering, related field, or equivalent experience 4+ years of experience performing systems design, implementation and administration. 4+ years of experience as an architect or in an equivalent role building Software as a Service (SaaS) products. 8+ years of active engineering experience designing, building and deploying scalable, highly available and secure web applications and/or comparable experience such as successful engineering and deployment of enterprise-grade technology assets in an agile product environment 8+ years of hands on experience with Object Oriented Programing and OO Design patterns Expertise in Data structures and Algorithms. Expertise in web principles, standards and fundamental technologies. Expertise in various layers, including application, presentation, network, and data layers. Expertise consuming web services (REST, SOAP) and integrating with third-party systems. Expertise in Continuous Integration, Continuous Delivery, DevSecOps and SRE best practices. Expertise in System Design and the Twelve-Factor methodology for building SaaS apps. Expertise in Domain Driven Design (DDD) as well as Microservices and Event-driven architectures and best practices. Expertise in application containerization (Kubernetes, Docker, etc.) Expertise in designing, modeling and running RDBMS and NoSQL databases as well as data replication and partition. Expertise in tuning applications and data models for performance. Expertise designing, developing, testing and publishing RESTful services using OpenAPI. Expertise in public cloud providers (AWS, Azure, GCP, etc). Emphasis on Google Cloud Platform. Expertise in Test Driven Development (TDD) or experience with automated testing including unit, functional, performance, load, regression and acceptance testing. Expertise on user authentication, authorization, including OAuth 2, OpenID Connect, SAML 2, Single Sign-On (SSO), and IAM. Expertise on OWASP security principles, understanding accessibility, and security compliance. Proficiency in using flow charts, ERD, UML or C4 models. Proficiency Unix and command line tools. Experience with the entire Software Development Life Cycle (SDLC), Agile Development, SCRUM, or Extreme Programming methodologies. Ability to clearly explain and justify ideas when faced with competing alternatives. Ability to communicate and apply common architectural design patterns across a wide range of technical problems. A passion for solving problems and providing workable solutions while demonstrating the ability to evaluate new technologies and stay ahead of industry trends. Strong communication skills (English) as well as experience in mentoring and educating your peers. Preferred Knowledge/Skills: Expertise in one or more Object Oriented Programming languages such as Java, PHP, C++, C#, Python, Ruby, Go, Rust, etc. Emphasis on Java, PHP and Python. Expertise in web fundamental technologies such as HTML5, CSS3, JavaScript, JSON, XML, AJAX, HTTP. Proficiency in one or more web development frameworks such as Zend, Laravel, Lumen, Symfony, Spring, Flask, etc. Emphasis on Zend, Laravel and Spring. Proficiency in one or more front-end frameworks such as AngularJS, React, Vue.js. Emphasis on Vue.js. Proficiency in one or more testing frameworks such as PHPUnit, JUnit, Codeception, Jest, Cypress, Mocha, Chai. Emphasis on PHPUnit, JUnit, Codeception or Jest. Proficiency in SQL/PLSQL, schema design, and one or more RDBMS such as PostgreSQL, MySQL, Oracle, SQL Server, etc. Emphasis on PostgreSQL. Proficiency in one or more Version Control Systems such as Git, SVN, CVS, Team Foundation. Emphasis on Git. Proficiency in full-stack observability principles (tracing, metrics, logging) and one or more observability tools such as Apache Skywalking, Prometheus, Grafana, Graylog, and StackDriver. Proficiency in one or more DWH platforms such as BigQuery, Snowflake, Redshift, Cloudera, Azure Data Lake Store, etc. Emphasis in BigQuery. Proficiency in one or more ETL/ELT tools such as Spring Cloud Data Flow, Google Dataflow, Apache Bean, Adobe Airflow, etc. Emphasis in Spring Cloud Data Flow. Proficiency in developing Event-Driven apps using message brokers such as Apache Kafka, Pulsar. Emphasis on Apache Kafka. Proficiency in distributed or NoSQL databases such as CockroachDB, MongoDB, Cassandra, Couchbase, DynamoDB, Redis, etc. Proficiency in using one or more Service Mesh such as Istio or LinkerD. Emphasis on Istio. Proficiency in using API management tools such as KrakenD, APIGee, Kong, etc. Emphasis on KrakenD. It's a plus if you have any of the following skills: Google Cloud Architect Certified. Challenges: Collaborate with the internal/external stakeholder and product team to gather functional, non-functional and business requirements. Work closely with product owners and a wide variety of stakeholders to analyze and break down large requirements into small, simple, workable deliverables. Designing innovative, cost-effective and secure architecture/software solutions based on the business requirements. Participate in the full software development life cycle of products and features in SproutLoud's SaaS Platform aiming to meet or exceed customer SLAs. Participate in the design, development and implementation of large-scale distributed systems using cloud-native principles and technologies in the public cloud. Define architectural principles, patterns, and best practices. Create data models and develop code to demonstrate solutions to complex problems and jump start development teams. Shepherd multiple development teams in building high available, scalable, secure stable and high performance software. Collaborate with product managers, UX designers, and engineers to design creative features that advance our platform. Identifying solutions for team impediments, and finding ways to make our development practice better. Constantly review the code to ensure the quality of the design by avoiding complexity, advocating clarity and to do this with the team. Develop test strategies, use automation frameworks, write unit/functional tests to drive up code coverage and automation metrics. Participate in code reviews and provide meaningful feedback that helps other developers and architects to build better solutions. Present your own designs to other development teams, engineering or stakeholders and review designs of others. Contribute relevant, clean, concise and quality documentation to SproutLoud's knowledge base to support/increase information sharing within the organization. Collaborate with DevOps and SRE to design, provision and monitor software solutions. Have a proactive attitude towards problem resolution rather than a reactive one and react quickly to problems to arrive at resolutions/suggestions so problems don't repeat. Learn about SproutLoud's business, master our development process, culture and code base, then improve it. Establish strong working relationships at all organizational levels and across functional teams. Ability to work in a fast paced environment and deliver incremental value iteratively and continuously. Take responsibility and ownership of product timelines and deliverables Strong communication skills (English) as well as experience in mentoring and educating your peers. This vacancy is disclosed through ticjob.co