Principal Database Engineer
As a Principal Database Engineer at BlackLine, you will play a vital role in the performance, delivery, stability, and security of the databases we use, while continually driving forward improvements and optimizations at the database layer. As a member of the database team, you will be involved in the planning, development, and maintenance of the database, including troubleshooting issues, collaborating with other teams to define and build new features, optimize existing features, and collaborate in order to drive growth, improve controls and processes, and reduce overhead and complexity. In this role, we are looking for people who are team players, passionate about their areas of expertise, and constantly striving to learn and improve, not just in the sense of their own skills, but also in growing with peers whom they work with day-to-day. If you are someone who strives for excellence in all that they do, including helping those in your team, and someone who wants to ultimately deliver the best value and success you can, then we want to talk to you.
Responsibilities:
- 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. Review functional and technical specifications, and test plans. Review others' code. Develop and document functional and technical requirements. Collaborate with other team members and other teams on all the above
- Work collaboratively across the company to design, communicate and further assist with adoption of architecture and coding standards and best practices and architectural plans.
- Solve complex architectural and design problems, create robust architectural solutions
- 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 understood. 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 take action
- Perform critical maintenance, deployment, and release support activities, including occasional off-hours support.
- Other duties as assigned
Qualifications:
- 10 + years' experience Relational Databases (SQL Server, MySQL, Oracle etc.) .
- 5 or more years working in high-transaction environments is required, preferably SaaS
- Expert knowledge in in-memory and on-disk data structures and algorithms, row and columnar stores, query optimization, and execution.
- Expert Execution Plan understanding
- SSIS/SSRS experience is a strong plus
- Experience with performance tuning and optimization, using native monitoring and troubleshooting tools and techniques, including complex queries as well as procedure and indexing strategies
- Able to organize and plan work independently
- Lead various technology POCs
- Advance understanding of OLTP vs OLAP environments
- Advanced knowledge of relational database internals (locking, consistency, serialization, recovery paths)
- NoSQL is a must
- Azure, GCP or AWS are a plus
- MCTS, MCITP, and/or MVP certifications are a plus
- 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 improvements