We are seeking a Senior Software Team lead to join our client's growing team, and be responsible for establishing mechanisms and best practices for this consumer durables company. He / She will have the opportunity to lead design reviews and architecture discussions and establish mechanisms across the team to ensure consistent and timely delivery and reporting. Also, will have the opportunity to mentor engineers in code structure and design, as well as broader system design principles. Will work with the product and engineering team to take features from concept to delivery while expanding the architecture goals for scale and performance. Speed, efficiency, and the ability to complete projects and deliver quality experiences in an organized, mission-driven fashion are paramount.
This role will be based out of the our client's Northern NJ office. Sallary is commensurate with candidate’s experience and successes.
Roles & Responsibilities:
- Lead and manage a team of software engineers with a diverse set of expertise
- Lead system design for the team based on product requirements
- Keep your hands dirty – Write code and fix bugs
- Contribute to architecture, instrumentation, & performance decisions
- Participate in code reviews and contribute to team and personal learning
- Coach software developers on software development best practices
- Gather technical requirements and propose solutions based on product needs
- Architect solution while developing technical plan and targets across API’s domains
- Design and expand on database schema. Needs to be comfortable with SQL and NoSQL
- Improve efficiency of deployment and testing via CI/CD processes
- Scale architecture with modern technologies leveraging the AWS platform
- Refactor code for readability and extensibility
Qualifications: Successful candidates will possess the following:
- Bachelor’s degree in Computer Science or equivalent experience
- 5+ years of experience with a least one static language (e.g. Java, C/C++) and at least one dynamic language (e.g. Ruby, Python)
- 5+ years designing and implementing RESTful APIs using microservice architecture
- 4+ years practical experience designing, building, and automating solutions utilizing AWS services such as EC2, S3, RDS, DynamoDB, SQS, Route 53, Lambda, IAM, ECS and API Gateway
- 3+ years of experience managing development teams in a Scrum or Kanban environment.
- Strong understanding of computer science fundamentals and data structures.
- Strong understanding of enterprise application development paradigms and practices
- Strong understanding of software engineering fundamentals
- Solid understanding of design patterns
- Knowledge of professional software engineering practices & best practices for the full software development lifecycle, including coding standards, code reviews, source control management, build processes, testing, and operations
- Proficient knowledge on SQL and NoSQL databases
- Ability to lead from the front – knowing how to be a role model for the team
- Ability to coach software developers on development best practices
- Excellent communication skills and desire to communicate effectively
- Excellent understanding of SDLC and ability to manage the team through all phases of the development
- Experience in standard IT security practices (e.g., encryption, certificates, key management)
- Experience with scalable networking technologies (e.g., Load Balancers, Firewalls, etc.) and web standards (e.g. REST APIs, web security mechanisms, etc.)
- Experience working with CLI
- Experience with Test Driven Development
- Proficiency in a Unix/Linux environment
- Interest in technology and eagerness to learn
- Understanding of the difference between ‘Doing Agile’ and ‘being agile’
- Ability to analyze and balance across various aspect of software development – timelines, quality, capacity, etc.
- Ability to work in a distributed / cloud environment
Desired Skills & Experience
- Master’s degree in Computer Science or another related field
- Experience building highly available and scalable complex software systems
- Ability to take a project from scoping requirements through actual launch of the project
- Experience in communicating with users, other technical teams, and management to collect requirements, describe software product features, and technical designs
- CI/CD experience
- Familiarity with React Native
- Experience handling large scale data processing using Hadoop, Spark, Cassandra, etc.
- Experience with containerization and orchestration technologies: Docker, Kubernetes, Terraform, etc.
- Experience architecting, developing, deploying and monitoring SaaS systems at a large scale