As a Principal Software Engineer, you will play a crucial role in delivering high quality releases to our customers by defining application architecture, designing, developing, troubleshooting, maintaining, optimizing, and scaling BlackLine’s cloud-based backend services and driving innovation into our product suite.
In this role, you will work with management to identify strategic directions for system architecture.
You will research, test, benchmark and evaluate new technologies, propose scaling solutions, collaborate with other teams to define, and build new features, optimize existing features while writing elegant code, coaching, and mentoring less experienced software engineers and communicating with people at all levels.
In this position, every bit of your software design skill be drawn upon in order to drive towards and implement best of breed features in a rapid iterative environment. Your attention to detail, tenacity, and creative problem-solving and thinking ahead will directly impact the company's success, as well as the success of your peers across the organization.
If you have a passion for delivering products that make a difference, are driven to make things better in all that you do and are eager to work in a collaborative agile environment where Developers are dedicated to solving customer problems and innovating, you will be a great fit for the team.
- Provide technical expertise and leadership in technology direction, road-mapping, architecture definition, design, development, and delivery of enterprise-class solutions while adhering to timelines, coding standards, requirements, and quality.
- Architect, design, develop, test, troubleshoot, debug, optimize, scale, perform the capacity planning, deploy, maintain, and improve software applications, driving the delivery of high-quality value and features to BlackLine’s customers. Develop functional and technical specifications, and test plans.
- Develop and document functional and technical requirements.
- Work collaboratively across the company to design, communicate and further assist with adoption of best practices in architecture and implementation.
- Deliver robust architectural solutions for complex design problems.
- Implement, refine, and enforce software development techniques to ensure that delivered features meet software integration, performance, security, and maintainability expectations.
- Research, test, benchmark, and evaluate new tools and technologies, and recommend ways to implement them in product development. Identify and create solutions that are likely to contribute to the development of new company concepts while keeping in mind the business strategy, short- and long-term roadmap, and architectural considerations to support them in a highly scalable and easy extensible manner.
- Identify and create solutions that are likely to contribute to the development of new company concepts while keeping in mind the business strategy, short- and long-term roadmap, and architectural considerations to support them in a highly scalable and easy extensible manner.
- Actively participate in research, development, support, management, and other company initiatives designing solutions to optimally address current and future business requirements and infrastructure plans.
- Inspire a forward-thinking team of developers, acting as an agent of change and evangelist for a quality-first culture within the organization. Mentor and coach key technical staff and guide them to solutions on complex design issues.
- Establish strong relationships with company's leadership to ensure the use of technologies are well.
- Act as a conduit for questions and information flow when those outside of Engineering have ideas for new technology applications.
- Speak in terms relevant to audience, translating technical concepts into non-technical language and vice versa. Facilitate consensus building while striving for win/win scenarios and elicit value-add contributions from all team members in group settings.
- Maintain a strong sense of business value and return on investment in planning, design, and communication.
- Proactively identify issues, bottlenecks, gaps, or other areas of concern or opportunity and work to either directly affect change, or advocate for that change by working with peers and leadership to build consensus and act.
- Perform critical maintenance, deployment, and release support activities, including occasional off-hours support.
- Other duties as assigned.
- Prior experience of building metadata driven application extensibility platforms to support custom fields, custom validations, rules, triggers and user exits.
- Strong expertise in using search engines like Elastic Search or similar.
- Prior experience using Rules Engine like Drools or similar.
- Experience in using SQL databases (Postgres, Sql Server or similar) and NoSQL databases (Redis, Mongodb, Cassandra or similar).
- Handson experience in building and managing User Exit Frameworks.
- Prior experience of delivering SaaS in a public cloud (GCP, AWS or Azure).
- BS degree in Computer Science, or equivalent experience.
- 10+ years of experience with software development in general purpose programming languages including but not limited to: C#, Java, C/C++.
- 8+ years of hands-on experience in building Web Applications, SaaS products, and RESTful APIs.
- 2+ years’ experience in the Application, System, Solution or Data Architecture including strategic IT planning and integration.
- Strong expertise in translating business strategies into technical, strategic and execution plans (road- maps).
- A solid computer science foundation including data structures, algorithms, and design patterns, with a proven track record of software design and architecture of complex systems.
- Experience in UI extensibility using configuration design and development.
- Experience in micro service architecture with exposure to Kubernetes.
- Experience as a technical influencer for highly scalable distributed system designs.
- Experience as a technical lead on significant development initiatives.
- Superior analytical and problem-solving abilities.
- Excellent written and verbal communication skills.
- Adaptable team player with strong collaboration skills and a focus on results and value delivery.
- Prior working experience in Scrum, or other Agile development methodologies, is preferred.
- Passion for engineering excellence through automation, unit testing, and process.
- Prior experience in building Business Application Extensibility Platform.
- Prior experience in API gateway implementation, preferably Apigee.
- Prior experience on Identity and Access Management protocols and technologies: OAuth, OpenID Connect, SAML, Federation, SSO (using Okta, Ping Federate or similar)