The Software Architects is an architect with a developer background who designs software solutions from the ground up, planning the different features of a program and integrating them into a functioning system, making high-level decisions about each stage of the process, and leading a team of engineers to create the final product. The Software Architect is responsible for communicating with clients to determine their requirements, creating comprehensive solution plans, and leading the development process of such comprehensive applications. The duties include determining the technical specifications of a project, creating technical blueprints, and editing code.
Responsibilities and tasks
The focus is on being responsible for the strategy level of development, and end-to-end product architecture i.e. how to use the respective technology in the most efficient way across several teams.
Collaborate with various stakeholders to determine software requirements.
Create high-level product specifications and design documents.
Provide the development team with architectural blueprints to follow.
Collaborate with team members to determine best practices and requirements for software.
Guide and assist the development team throughout the process.
Oversee and approve all final programs and products before the formal launch.
Oversee and support the coaching and training of team members to ensure all are confident in the use of software applications.
Actively seek ways to improve business software processes and interactions.
Use a proactive approach to common challenges by continually researching best practices in coding.
Ensure software security.
Troubleshoot and resolve issues quickly with coding or design to ensure a productive workplace.
Present regular progress reports detailing achieved milestones and short-term project goals, and set goals.
Test the final product to ensure it is completely functional and meets requirements.
Evaluate, identify, and develop software solutions.
Document and record every aspect of an application or software.
Plan, track, and schedule software deliverables.
Locate and direct solutions for critical challenges involving software and hardware interfaces.
Develop good working relationships with other departments, such as Product Management, Marketing, Sales, and CSM.
Extensive experience in software development.
Solid understanding of a variety of programming tools and development platforms.
Broad understanding of coding and programming languages, ability to understand the code.
Experience with database design and data modeling.
Extensive knowledge of the software development process and corresponding technologies.
Excellent understanding of design patterns and architectural styles.
Proficient knowledge of the operation and development designs of agile software.
Can build cloud-based applications, and have the relevant knowledge and experience.
Expertise with content management systems.
Excellent organizational abilities.
Highly analytical mindset, with an ability to see both the big picture and the details.
Attention to detail, great communication and presentation skills.
Excellent technical and logistical thinking skills.
Demonstrates strong analytical and problem-solving skills.
At least 7-10 years of experience as a Software Engineer working in development teams.
Experience with configuration management and IAAC tools (Ansible, Terraform).
Proven capability with Cloud providers (AWS, Azure, GCP); ideally Azure.
Experience with virtualization, containers, and service orchestration (Docker, Nomad, Kubernetes).
Knowledge about network protocols, experience administering networking infrastructure, and network security.
Experience with large-scale distributed production environments.
Nice to have:
Master's degree in computer science.
Experience with programming languages such as Rust, Golang, and C++.