Job Description
Overview
As a Staff Software Engineer, you will play a crucial role in building the next generation of BlackLine application. You will be driving innovation into our product suite by designing, developing, troubleshooting, maintaining, optimizing and scaling cloud-based applications and services. In addition to being a hands-on engineer, you will make important decisions regarding the design and architecture of the software and lead and mentor other engineers. 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, we would love to talk to you.
Responsibilities
- Provide technical expertise in requirements analysis, design, effort estimation, development, testing and delivery of highly scalable and secure distributed backend services.
- Work with product management, architects and other engineering teams to understand stated and unstated needs and turn them into functional and technical requirements.
- Maintain a strong sense of business value and return on investment in planning, design, and communication.
- Lead technical design and architecture discussions and drive technical decisions while making appropriate trade-offs on technology, functionality, robustness, performance and extensibility.
- Estimate the work scope and timelines and consistently deliver on those commitments.
- Implement, refine, and enforce software development techniques to ensure that the 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.
- Maintain high standards of software quality and technical excellence within the team by establishing good practices and writing clean, testable, maintainable, and secure code.
- Contribute to 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 team members to guide them to solutions on complex design issues and do peer code reviews.
- Proactively identify issues, bottlenecks, gaps, or other areas of concerns or opportunities and work to either directly affect change, or advocate for that change.
- Perform critical maintenance, deployment, and release support activities, including occasional off-hours support
Qualifications
- Bachelor’s degree in Mathematics, Computer Science or related disciplines.
- 10+ years of professional experience in building Web scale highly available multi-tenant SaaS with focus on backend platform, frameworks, RESTful APIs and microservices.
- 2+ years of experience with a public cloud (AWS, Azure, or GCP) and solid understanding of cloud-native services.
- Extensive experience with SQL, relational database design, SQL query optimization
- Expert in C#
- Fluent in MSSQL, SQL, data modeling and transactional flows.
- Fluent in Javascript, ReactJS framework and/or Angular framework.
- Specific things they should be knowledge about:
- REST APIs
- ASP.NET Core
- Asynchronous programming
- Multithreading / concurrency
- Distributed systems
- A solid computer science foundation including data structures, algorithms, and design patterns, with a proven track record of writing high concurrency, multi-threaded, secure, scalable code.
- Proven experience in working with API gateway services such As Apigee, identity management, authentication and authorization.
- Working knowledge of event driven architecture and experience with a messaging service such as Kafka.
- Superior analytical, problem-solving and system level performance analysis abilities.
- Excellent written and verbal communication skills.
- Adaptable team player with strong collaboration skills and a focus on results and value delivery.
- Experience with ORM frameworks such as Entity Framework or Hibernate.
- Experience working in an Agile development environment.
- Passion for engineering excellence through automation, unit testing, and process improvements.
