NinjaOne is a company that simplifies IT work for over 40,000 customers worldwide. They are seeking a Senior Software Engineer to design and implement scalable solutions for their IT Operations product suite, focusing on high-quality software applications and mentoring other engineers.
Responsibilities:
- Java and Kotlin Software Development: Use your expertise to contribute to the development of large-scale software applications. Make quality an invariant part of your work and help your fellow engineers continue to meet our quality-first standards
- Committing Code and Shipping Products: You will be one of our most trusted engineers committing code. Responsible for implementing design patterns and working on enterprise level software challenges in a startup environment. Impact product more hands-on than at other companies, building software of scale that runs on millions of endpoints
- Debugging and Profiling: Debug and profile production Java services using tools like New Relic and structured log analysis; identify and resolve performance bottlenecks before they reach customers
- Database Optimization: Design and optimize relational database schemas and queries for performance at scale, including index tuning, query planning, and storage efficiency improvements
- Mentoring: Support the growth of engineers across the team through knowledge sharing, targeted feedback, and coaching to help build a stronger, more aligned engineering culture
- Code Reviews: Conduct thorough peer code reviews, providing constructive, specific feedback and contributing to architecture discussions and key technical decisions
- Documentation: Document system architecture, design tradeoffs, and operational procedures so that knowledge is shared and decisions are traceable across the team
- Cross-team Collaboration: Collaborate with engineers across backend, infrastructure, and product teams to drive system reliability, integration, and long-term platform improvements
- Other duties as needed
Requirements:
- Bachelor's degree in Computer Science, Computer Engineering, Information Technology, or equivalent work experience
- 10+ years of experience in Java software development for product applications or equivalent
- 6+ years of experience designing and operating highly scalable software systems, with a proven ability to identify and solve scale challenges
- Deep understanding of OOP design principles, with expertise in scaling data structures and object-oriented design for high-performance systems
- Knowledge of API best practices and REST service development using frameworks like Jersey or Spring
- Relational Database design, development, and performance optimization experience, including query tuning, index design, and schema optimization at scale
- Experience with client-server development, event-driven architectures, and message brokers such as RabbitMQ, Amazon SQS, or SNS
- Excellent debugging and problem-solving skills, with the ability to diagnose complex issues across distributed systems and communicate findings clearly to engineering, product, and support stakeholders
- Familiarity with containerization and orchestration tools such as Docker and Kubernetes for deploying and managing scalable, isolated workloads
- Solid expertise in Kotlin will make you a standout candidate
- Experience with caching systems (Redis a strong plus) and expert knowledge of quality testing practices