Principal Software Engineer plays a pivotal role in our technology organization, collaborating closely with individual contributors and senior leadership. Our Principal engineers are heavily involved in the hiring and mentoring process and the go-to experts who design and implement new systems and components. We are seeking individuals who are passionate about taking on greater responsibilities and driving significant architectural changes at the company. It's expected that our Principal Software Engineers will lead the company forward technically by adopting new technologies and setting higher standards.
Responsibilities:
- Maintain ownership and responsibility of mission critical systems
- Be hands on - build high volume platforms using cutting-edge technologies like React and GraphQL
- Mentor and coach other software engineers
- Be a major contributor to our agile and scrum practices
- Design and lead crucial technical projects and initiatives cross teams and departments
- Stay on the leading edge of technical know-how, industry trends and drive technical innovations
Requirements:
- 15+ years of experience building large-scale web applications
- Expertise in client-side technologies & frameworks (JavaScript/TypeScript, React) and modern server-side technologies (C#, .NET, Kotline, Java)
- Bachelor's degree with a preference for Computer Science degree; a master's degree is good to have. Alternatively, a minimum of 10 years of experience in the relevant field is acceptable
- Working experience with agile, analytics, A/B testing and/or feature flags, Continuous Delivery, Trunk-based Development
- You love new technologies and approaches and want to use the best tools available. We want people who can help us continually evolve our stack.
- Great communication and coordination skills
- Excellent analytical thinking and problem-solving skills
Good to have:
- Knowledge in physical architecture at scale, building resilient, no point of failures, highly available solutions
- Knowledge in one or more of the following: NoSQL technologies (Cassandra, ScyllaDB, ElasticSearch, Redis, DynamoDB, etc), Queueing system experience (Kafka, RabbitMQ, SQS, Azure Service Bus, etc.)
- Working Experience with Containers and Dockerization, also K8S is a plus
- Knowledge and hands on experience in CI/CD solutions would be a plus
- Good experience in all aspects of client-side performance optimization
- Extremely proficient in modern coding and design practices. For example, Clean Code, SOLID principals, and TDD
- Experience in multiple front-end platforms including iOS, Android, Web, and API services
- Have worked on an app or internet company that is at scale with large numbers of users and transactions per second
- Have experience in a data driven company with experience analyzing and working with Big Data
- Lead teams and greenfield projects solving large system problems
- Worked on global projects serving world markets with distributed data centers and localization of the front end and data