Software Architect is responsible for the structural design and development of new software systems or extensive software revisions for external customers. Analyzes software requirements and defines system components to ensure efficient and scalable software architecture. Being a Software Architect designs and implements software solutions to consider business and technical needs and ensures compatibility with existing systems. Creates and maintains architecture documentation such as design specifications and diagrams to guide future maintenance and development. Additionally, Software Architect works with non-technical stakeholders to analyze requirements and understand constraints, dependencies, and business needs. Has in-depth knowledge of software development processes and methodologies. Requires a bachelor's degree. Typically reports to a manager. The Software Architect work is highly independent. May assume a team lead role for the work group. A specialist on complex technical and business matters. To be a Software Architect typically requires 7+ years of related experience. (Copyright 2024 Salary.com)
Position Overview
We are seeking a highly experienced Software Architect to lead our software development efforts, bridging the gap between our innovative mobile application and the sophisticated hardware product we manufacture. This role demands a strategic thinker with over 10 years of experience in software engineering, capable of steering our technology vision and execution. As a senior in-house technical expert, reporting directly to the Chief Product Officer, you will be pivotal in shaping our software architecture, ensuring seamless integration between our mobile applications, cloud infrastructure, and IoT devices.
Responsibilities
Serve as the primary architect and developer of scalable, secure, and maintainable software that meets the evolving needs of our users and aligns with our business goals.
Work with the Chief Product Officer and other stakeholders to define product requirements, set development timelines, and prioritize projects.
Drive the software development lifecycle in conjunction with the product team, from concept and design to deployment and maintenance, ensuring high performance, quality, and responsiveness of applications.
Design and implement backend services and integrations that are scalable, secure, and effectively integrated with our hardware devices and cloud infrastructure.
Collaborate closely with the firmware engineer to ensure seamless integration and functionality between the mobile app and the hardware device.
Oversee and contribute to frontend development efforts, creating compelling user experiences that enhance customer engagement.
Serve as a technical mentor, guiding team members in best practices, code reviews, system design, and problem-solving strategies.
Lead the technical planning and documentation processes, including the creation of system design and architecture documents.
Manage relationships with external development vendors, ensuring deliverables meet our high standards and integrate smoothly with our internal efforts.
Stay abreast of the latest industry trends, technologies, and best practices, incorporating them into our strategy and workflows to maintain competitive advantage.
Role Composition
25% Frontend Development: Spearheading the development of intuitive, high-performance user interfaces using React.js, ensuring a seamless and responsive user experience across our mobile and web platforms.
75% Backend Development: Leading the design and implementation of robust backend services built on Google Cloud Platform using Node.js and PostgreSQL, focusing on scalability, security, and integration with our IoT hardware.
Qualifications
Required Experience: At least 10 years of experience in software engineering, with a proven track record of leading full-stack development projects to successful completion. 2 years of team leadership/management experience in a hands-on capacity.
Deep knowledge of back-end technologies (Node.js, PostgreSQL), cloud services (preferably Google Cloud Platform), and IoT device integration is essential.
Knowledge of front-end technologies (HTML, CSS, JavaScript, React.js, and React Native) and the patterns and practices required to build an efficient and scalable platform.
Comprehensive knowledge of cloud-based infrastructure suitable for a smaller-scale application with daily user volumes in the hundreds to low thousands, such as:
Proficiency in configuring and monitoring essential cloud-based components, specifically within GCP, to ensure optimal performance and reliability.
Experience with Cloudflare and Google Cloud networking, focusing on configurations that support current and future user volumes.
Skills in managing backup systems and implementing data redundancy strategies that are efficient and cost-effective for smaller applications.
An understanding that, while the scale of operations may not require the extensive infrastructure management seen in larger organizations, a strategic and thorough approach to infrastructure setup, monitoring, and maintenance is essential for maintaining high availability and performance of our application.
Platform Fundamentals: Candidates must possess a holistic understanding of robust system design, particularly key attributes like actionable logging mechanisms, error handling strategies, data privacy and data management considerations, and recovery mechanisms.
Strategic Thinking: Strong ability to translate business objectives into scalable technical solutions, with experience in product lifecycle management and Agile methodologies.
Leadership Skills: Demonstrated success in leading other developers, with a focus on mentoring, motivating, and driving high-performance cultures.
Communication Proficiency: Excellent verbal and written communication skills, with the ability to effectively communicate technical concepts to non-technical stakeholders.
Problem-Solving: Exceptional analytical and problem-solving abilities, capable of addressing complex challenges and delivering innovative solutions.
Adaptability: Flexibility to adapt to changing priorities and technologies in a fast-paced environment.
Bonus Points
Experience in leading cross-functional projects that involve hardware/software integration.
Advanced degree in Computer Science, Engineering, or a related field.
Contributions to open-source projects or a strong portfolio of innovative projects.
This role is designed for a seasoned professional who is ready to take on the challenge of driving technological innovation in a small but dynamic, product-focused company. If you are passionate about building state-of-the-art software solutions and leading teams to achieve excellence, we would love to hear from you.