Principal Engineer (Java & REST API)
About iManage
iManage transforms how professionals in legal, accounting and financial services get work done by combining the power of artificial intelligence with market leading document and email management. iManage automates routine cognitive tasks, provides powerful insights and streamlines how professionals work while maintaining the highest level of security and governance over critical client and corporate data. Over one million professionals at over 3,000 organizations in over 65 countries – including more than 2,000 law firms and 500 corporate legal departments – rely on iManage to deliver great client work.
Learn more at: www.imanage.com
What will you be working on?
We are looking for a passionate Principal Engineer with extensive hands-on experience in building a highly scalable cloud backend for iManage’s modern document management product. This person will be a team leader, mentor, and will drive small teams using agile process in our cloud server team.
You will play a leading role in the architecture, development, and deployment of critical, large scale products. We are committed to CI/CD and we are using modern technologies like RxJava, Docker, Storm, Elasticsearch, MariaDB and more. We encourage our employees to collaborate and build great relationships globally. Our leadership team cares about every individual holistically, on a personal and professional level.
Responsibilities
- Design and develop modules and features for iManage Work’s REST API backend.
- Benchmark and performance tune of API backend systems deployed in cloud scale.
- Work within cross-functional engineering teams as well as peer teams to build an integrated solution
- Lead and mentor small teams using agile scrum model.
- Encourage software engineering best practices (e.g. unit testing, code reviews, design documentation) and related tools like GitHub, Jira, Jenkins etc.
- Communicate, document and present in front of technical and business audiences
- Strive to consistently learn and improve within the company as well as share knowledge with colleagues globally
Requirements
- Bachelor's or Master’s degree in Computer Science or related field
- 10+ years of experience building scalable distributed systems
- Team leadership and mentoring skills; recent work in driving small teams using Agile Scrum development process; past demonstrable experience in owning products or components.
- Expert proficiency in Java and solid experience in developing REST API for complex systems. Exposure to full-stack development is a plus.
- Proficiency with relational database system. Exposure to NoSQL systems is desirable.
- Thought leadership and design skills in one or more key technology areas: high-transaction systems, micro services based distributed architectures, fault tolerant designs, data and system security.
- Secure coding and design practices (including threat modelling) is a plus
- Working exposure to CI/CD pipelines and build management within a Cloud/SaaS environment; use of Docker as a delivery package is preferred