Architect, Software Engineer (Remote)
The Architect, Software Engineer creates and designs new software, applying theoretical principles of computing and mathematics in order to analyze, test and assess software systems. The Architect, Software Engineer evaluates user needs while designing and testing new software to meet those needs. This may involve analyzing and developing flow charts, models, diagrams and algorithms in addition to coding or modifying software. This position researches and develops new technologies and processes/algorithms, and introduces them to the enterprise as needed to improve revenue and customer satisfaction.
- Analyzes and identifies technical areas for improvement within existing applications
- Creates designs for feature areas that take into consideration the entire product life cycle, so that the feature areas are efficiently maintained
- Leads analysis, design and development of software in a cross-functional technical team
- Influences development and maturation of the product and technology vision and strategy
- Leads design reviews.
- Effectively articulates the key design principles for the feature areas to the immediate team and upper management
- Leads and mentors other developers in coding complex technical solutions
- Keeps abreast of new technology patterns and trends. Leads the evolution of standards and technology (tools, conventions and design patterns)
- Influences the discovery and decision-making process when changes to standards and technology are required (tools, conventions and design patterns).
- Independently develops and implements software for e-commerce applications and related technology, with minimal oversight
- Leads code reviews to ensure functional performance specifications are met and engineering standards are followed.
- Creates self-documenting designs and/or clearly communicates intent via comments in code, on specifications, in as-built documentation and during code reviews.
- Writes unit and integration tests for each deliverable, effectively and comprehensively exercising the code; prevents the introduction of subsequent bugs, and corrects existing bugs or design issues when discovered.
- Bachelors Degree
- 5-10 years of related experience
- Bachelors Degree in Computer Science, a related technical or scientific field, or equivalent experience
- Strong knowledge of OO design including extensive utilization of design patterns. Ability to mentor and recruit junior developers & enforce good development practices like encapsulation, composition, continuous integration & test driven development
- Familiarity with continuous integration and build tools
- Participation through completion of multiple releases of a complex software project
- Analysis, design, coding and implementation of large-scale applications.
- Solid knowledge of algorithms, data structures and complexity theory
- Ability to effectively write so requirements are clear and readily understood