NinjaOne is a company focused on automating IT operations to enhance visibility, security, and control over endpoints for its customers. They are seeking a Staff Software Engineer to lead the development of scalable software applications, influence architectural decisions, and mentor junior engineers while ensuring high-quality standards are met.
Responsibilities:
- Software Development: Lead the development of large-scale software applications, ensuring high quality and adherence to our quality-first standards
- Software Architecture & Leadership: Influence critical architectural decisions, ensuring that systems are scalable, maintainable, and aligned with business objectives. Balance technical debt, performance concerns, and scalability with business needs
- Collaboration & Mentorship: Collaborate with cross-functional teams to align on technical decisions and drive improvements. Mentor junior engineers, providing guidance on best practices and setting technical standards across projects
- Ownership of Initiatives: Take ownership of technical initiatives, proactively address challenges, and drive improvements based on data reported by support teams
- Focus on Quality: Advocate for and implement quality assurance practices, ensuring the delivery of robust, high-performance software
- Other Duties: Contribute to additional responsibilities as needed to support the team’s success
Requirements:
- 12+ years of experience in Java software development, particularly for product applications
- 5+ years of experience with highly scalable systems
- 2+ years experience with Kotlin is a plus
- Expertise in API design and RESTful services, with experience using frameworks like Spring (Spring Boot) or Jersey
- Proven experience in scaling systems and solving complex system design challenges
- Strong knowledge of object-oriented programming (OOP) design principles and practices
- Proficient in relational database design and development
- Experience with caching systems, particularly Redis, is a plus
- In-depth knowledge of quality testing practices and ensuring the delivery of high-quality software
- Bachelor's degree in Computer Science, Computer Engineering, Information Technology, or equivalent work experience