VividCortex: Database Performance Monitoring
Near Arlington, VA
Created Aug 14, 2019
VividCortex is a groundbreaking database monitoring platform that gives developers and DBAs deep visibility into the database. Our solution is delivered as software-as-a-service and helps our customers see and analyze the work their databases are doing in detail. It addresses critical issues in measuring and managing today's large, distributed, diverse storage tiers composed of multiple different clustered products, all working together. We have a fast-growing customer base of well-known companies, and a tremendous reputation in our market for delivering a high-quality, innovative solution for database performance problems that are common in thousands of enterprises. VividCortex is based in the Washington DC area, with offices in Arlington and Charlottesville, VA and remote team members in the US and abroad. At VividCortex we believe diversity is strength. We encourage applicants from all walks of life and all backgrounds.
About the Role
VividCortex is looking for a Back-End Engineering Manager to help us build and improve the platform that ingests, secures, and analyzes the massive amounts of performance and other data we measure from our customers' database servers. Our platform is written in Go and hosted on the AWS cloud. It uses Kafka, Redis, and MySQL for data storage and analysis. We are a DevOps organization building a 12-factor microservices application; we practice small, fast cycles of rapid improvement and full exposure to the entire infrastructure, but we don't take anything to extremes. You will mentor and grow the Back-End Engineering team and drive the design and implementation of high-quality features. You will also ensure the quality and performance of VividCortex’s product. While this is a management role, it is also a hands-on role, and will consist of having direct coding assignments, conducting PR reviews and working directly with our architecture team.
- Use GitHub to track bugs and new features, as well as leverage all it’s features for an effective communication with the rest of the team.
- Work with the VP of Engineering and Security to help strategize on future development needs and directions, define projects, set priorities, and agree on specifics of how to implement projects.
- Ensure the best use of the working time by investing it in what matters the most at any moment, and respecting the priorities as previously agreed with the manager or the rest of the team.
- Make the best effort to meet any delivery dates.
- Ensure that new development is compatible with the current systems infrastructure.
- Use CircleCI, and testing frameworks to create automated systems for building and testing the projects.
- Supervise the writing of tests to ensure the correct operation of the implemented features and to avoid regressions.
- Use pull requests as a mean to coach others on how to improve code quality or detect possible problems in other’s implementation as well as to get feedback from the team prior to shipping.
- Understand the “full stack” to find areas to improve our technology.
- Notice and highlight changes that may improve speed to market, developer efficiency, cost, or quality of service.
- Ensure the coding standards are met, or help define, document or update these standards if they are not available or are outdated.
- Participate in customer service, support, and ops on-call duties as appropriate.
- Meet 1:1 with each of your direct reports at least weekly to maintain open communication, review their priorities and progress, and provide and receive timely feedback.
- Identify and provide opportunities for your reports to continue learning and work on things they find challenging and rewarding.
- Mentor and help engineers set goals for their professional development, skills, and capabilities in their field of expertise. Help engineers create individual plans towards their goals, and look for growth opportunities for engineers. Explain to them how their work contributes to their careers and goals.
- Ensure alignment within your team on strategy, goals, priorities, objectives and key deliverables. Identify and correct or prevent situations where efforts go where they don’t belong.
- Provide visibility to team and individual accomplishments both inside the team and across peer organizations.
- Help to establish and maintain a culture of (collaboration, transparent, high-communication, maker, respect )
- Hold team stand-up meetings and to help spread awareness of each other’s work and progress.
- Communicate with and report directly to executive team as needed, participate in weekly staff meetings.
- Assist your management in assessing hiring needs and help interview potential new team members.
- Constantly assess individual performance and provide timely feedback. Deal with performance issues before they become problems and deal with performance problems before they impact the team.
- Maintain high standards for software, process and product quality, with special value placed on security, collaboration, peer-review, documentation, testing, operability in production, and deployability.
- Ensure that the team is aware of relevant security best practices and applicable security requirements. Maintain the expectation that they be followed and address cases where they are not.
- Conduct or participate in Engineering team retrospectives
- Review, or supervise/check review of, GitHub pull requests for your team.
- Encourage a culture of automation and repeatability in the entire software and system development process, including practices and capabilities such as ChatOps, infrastructure-as-code, automated provisioning, high availability, and automated failover.
- Promote a highly resilient and fault-tolerant, low-maintenance architecture, which is as open as possible to inspection, contribution, understanding, and improvement by all.
- Promote a learning, blameless, resilient, anti-specialization culture, communications, and team structure.
- Help as needed to provide or coordinate customer service and support. Participate in ops on-call duty as appropriate.
- Manage Sprint planning and help product, support, and SRE to scope, and set requirements that can be completed by the team.
- Create GitHub issues and epics as needed.
- Help the team to provide reliable estimates of the relative effort for development tasks
- Help the team to decompose large projects into clearly defined deliverables that can be reliably delivered within a single sprint.
- Participate in discussing engineering projects with management and peers, including gathering and integrating customer feedback/requests; estimating benefit, effort, and schedule; selecting and suggesting features for monthly sprint planning; and tracking progress.
- An expert background in Golang or Java is essential.
- Experience with leading a DevOps CI/CD cycle - including tracking and reporting on the functions and work of direct reports using tools such as Git in a Unix/Linux environment.
- SaaS multitenant experience is a bonus.
- Experience with enterprise security is a plus.
- Experience Cloud centric databases/tools such as MySQL, MongoDB, Cassandra, AWS, PostgresSQL is very beneficial.
- Bash scripting experience is desirable.
- A 4-year degree from an accredited university is preferred
Note to Agencies and Recruiters: VividCortex has a strict company policy against engaging with unsolicited contact from agencies or recruiters. Unsolicited resumes and leads are property of VividCortex and VividCortex explicitly denies that any information sent to VividCortex can be construed as consideration.