As a Senior Software Engineer, you will play a crucial role in delivering high quality releases to our customers by 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 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. 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, then we want to talk to you.
Roles and Responsibility
- Provide technical expertise and leadership in the design, development, and delivery of BlackLine's products, while adhering to timelines, coding standards, requirements, and quality.
- Architect, design, develop, test, troubleshoot, debug, optimize, scale, 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. Review others' code. Develop and document functional and technical requirements. Collaborate with other team members and other teams on all of the above.
- Design and communicate coding standards, architectural plans, solve complex design and architectural 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.
- Maintain high standards of software quality and technical excellence within the team by establishing good practices and habits and writing clean, testable, maintainable, and secure code.
- 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 team members and guide them to solutions on complex design issues.
- 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.
- Adaptable team player with strong collaboration skills and a focus on results and value delivery.
- Passion for engineering excellence, curiosity and demonstrated ability of continuous learning.
Years of Experience in Related Field: 5+
Education: BS Degree in Computer Science or equivalent experience.
Technical/Specialized Knowledge, Skills, and Abilities:
- BS degree in Computer Science, or equivalent experience.
- 5+ years of experience with software development in general purpose programming languages including but not limited to: C#, .NET, .NET Core.
- 5+ years of hands-on experience in building Web Applications, SaaS products, and RESTful APIs.
- 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 service-oriented architecture and aspect-oriented programming.
- Experience as a technical influencer for highly scalable distributed system designs.
- Advanced knowledge of SQL, including stored procedures, data models, and transactional flows.
- Fluent in SQL, No-SQL, data modeling and transactional flows
- Good knowledge of internet security issues in software design and code.
- Experience with NoSQL databases
- Experience with open source tools.
- Experience with public cloud architectures (Azure, ASW or GCP) and cloud native services.
- Experience designing and scaling high performance systems.
- Experience with container management solutions like Mesos, Kubernetes or Nomad.
- Experience with API gateway, identity management, authentication, messaging platforms (e.g: Kafka, SQS, RabbitMQ), workflow orchestration tools, job scheduling and search.
- FinTech or Financial services domain background.