Rose is a Manhattan-based digital agency focused on helping market-leading brands build the future. Leading the way, we have used augmented reality to launch new product lines for Adidas, built a production machine learning pipeline and GraphQL APIs for one of the worlds largest banks, and assisted a nonprofit in saving the world’s wildlife with design and technology. Although our business focus is on mobile and augmented reality experiences, our real passion is building best in class digital products.
At Rose we have a focus on creating functional mobile and web applications that leverage emerging technology. We are looking for technologists who are excited about the ways design and technology can be used to improve lives, that are active learners and always looking to discover and master the newest technologies, who are excellent communicators to both technical and non-technical audiences, and are looking to work on a wide variety of projects. Engineers at Rose Digital are inherently cross-functional, having a depth of experience in one area but commonly work on teams with other engineers in areas outside of their core competency. We are looking for Technical Architects who can confidently lead a team made up of creative and broadly talented personnel and take ownership over crafting a technical design for a solution to client business and end-user needs. They will then orchestrate the implementation and delivery of those applications, utilizing an iterative development methodology that is founded on agile development principles, and that leverages the breadth of experience of the individual developers and QA engineers on their team.
In a Technical Architect, we are looking for someone who has the knowledge and experience to own the technical aspects of the web and mobile application projects we take on for our clients. You will be working with our engineering and QA teams looking to find the best coded solutions to features and functionality. You will be working with technical client stakeholders to understand their current systems, their existing data and infrastructure that we can leverage, and what their requirements are related to the application we are building. You will be working with client business stakeholders to first understand their business and end user goals and turn those into requirements, and then later to take them through the solution we have designed and implemented to explain our solution in terms they can understand, describe trade-offs, and resolve conflicting requirements or the implicit requirements underlying a user-facing feature. You will be working with our internal teams in other areas – User Experience, Visual Design, Strategy, Product, and Project Management – to make sure the solution we are developing is not just an engineering accomplishment but a useful product to our clients and their end users. Above all, you will be working to make sure that the project runs smoothly – that dependencies are accounted for, that integrations are made, issues and risks are solved for or avoided altogether, and that the team can operate efficiently on the proper set of tasks in the right order to take something from an idea to a production application.
- Primary responsibility is to lead a technical team of engineers and quality assurance staff on project engagements for our clients.
- Responsible for the development of the technical design and architecture, defining the implementation plan off of project requirements, with input from the broader technical and QA team.
- Expected to develop and enforce appropriate and scalable approaches to application infrastructure, hosting, code management, CI/CD build processes, and testing.
- Responsible for estimating work, both initially at project outset as well as during implementation as changes are requested, velocity is determined, and individual features are understood in more detail.
- Helps to inform project requirements for completeness, uncovering implicit requirements that have technical implications and adding detail / filling gaps where present.
- Manages the development team through an iterative development process, monitoring progress against the plan and assessing where changes need to be made to improve overall efficiency and productivity of the team.
- Responsible for project level staffing and task assignments – determines what skills and experience are needed on a project team, develops the implementation plan and technical architecture, and manages the distribution of tasks to the technical team for implementation.
- Must be able to work as a senior level individual contributor / subject matter expert on some projects, personally taking on development of key features and functional areas. In particular, at this level someone may create code for an aspect of the application that sets a reference and a standard for the broader team to refer to and adapt and extend more broadly across the application.
- Adapts role on project based on the needs of the product / application being built, the team, and the phase of a project – may work as an individual contributor as above when the need arises but primarily is looking to facilitate, clarify, and enable the broader team. First instinct should not be to “just code it myself”, instead looks to set up the engineers on the team for success.
- Works as part of a project leadership team along with representatives from other Rose Digital departments to plan and execute projects for our clients.
- Main client contact on technical matters, acts as the interface between Rose Digital and our technical and non-technical client stakeholders.
- Serves as a mentor and a manager to members of our technical team, responsible for developing skill growth and career development programs for direct reports and associated HR functions.
- Experience working in a fast-paced environment (at a prior digital agency, startup, or similar environments providing experience in rapid development for production) is required – our technical leaders need to be able to bring a project from the conceptual phase through an initial implementation quickly, and guide the broader team through that process.
- Extensive experience managing development teams, with at least 3 years working in an engineering leadership position on an agile development team – managing developers, distributing tasks, coordinating estimates, and ensuring that parallel development efforts are aligned.
- Experience working through all phases of the SDLC, from initial ask and requirements gathering through iterative sprint-based development / QA cycles, and production enterprise-quality launch.
- At least 7 years experience in designing, deploying, maintaining, and refining project architectural requirements.
- 5+ years of experience developing applications with React+Node.js
- 5+ years of experience designing solutions using cloud services is required, and specifically solid AWS experience with EC2, S3, Lambda, CloudFront, DynamoDB, RDS, Cognito, and Amplify greatly preferred.
- Experience developing Augmented Reality and Virtual Reality applications preferred… short of experience, having an active interest in working in those areas and developing those related skills is required.
- Experience developing solutions using headless content management systems (CMSs) in order to organize and deliver content and data via APIs to applications.
- Experience with CI/CD development processes including tools like CircleCI, Chef, Jenkins, Amplify, Docker, Kubernetes, etc is also preferred.
- Excellent communication skills are required – to be successful in the position a Technical Architect at Rose Digital needs to be able to be an active participant in defining and updating requirements, clarifying specifics, managing demos, and other activities that require an ability to communicate as well as code.
- Must be comfortable proactively reaching out independently and as needed to client stakeholders or internal team members with questions and clarifications in a timely manner, as well as offering up ideas or alternative solutions at any point in the project lifecycle.
- Ability to look at the bigger picture across the project and identify opportunities for efficiency – developing solutions with modularity, component reuse, data normalization, and scalability in mind.
- Must be able to break down the overall development required in coding the final application into parts, ensuring that the foundation we build in early sprints is solid and that the features individual developers are coding throughout development will come together seamlessly as we iterate towards a release / launch.
- Ability to define and enforce coding standards and development practices including defining branching models, pre-production environments, stylistic standards, and other lower-level coding practices so that the broader team is aligned and new developers can join the team and get up to speed quickly.
- Must have excellent time management skills, not only for themselves but looking across the entire team.
- Exceptional problem solving and troubleshooting skills – unexpected complications or unconsidered requirements will come up during development, and plans will need to adapt.