Our Customers Develop Software at the Speed of Ideas
Cloudbees is seeking a Java Engineer with experience in performance engineering, databases and distributed systems to join our industry leading Cloudbees Flow team in San Jose, CA.
CloudBees is the hub of enterprise Jenkins and DevOps, providing companies with smarter solutions for comprehensively managing software delivery as a differentiating and core part of the business.
CloudBees is a globally distributed company with more than 500 employees in over 15 countries working together to invent a new category of software - one that automates the delivery of software. As every company in the world is becoming a software company, and as software delivery practices evolve from slow, infrequent releases toward continuous delivery supported by CI/CD, DevOps practices, and the cloud, this new software category will become the most mission critical new business system in the modern enterprise. CloudBees is enabling organizations to successfully adopt a whole product approach to creating value through software.
Why This Role
This person will be responsible for the design and implementation of new features for the Cloudbees Flow product. Cloudbees Flow is the industry leading solution for Continuous Delivery and Release Automation (CDRA) and has been recognized by industry analysts as the leader in the CDRA space for 4 years in a row. Cloudbees Flow is a complex product spanning technologies ranging from distributed systems, clustering, databases, multi-thread processing, complex scheduling and much more. The ideal candidate should have proven experience of developing and maintaining multi-threaded Java application with an emphasis on performance and scalability.
The Cloudbees Flow team places high value on quality with a rigorous unit test framework, code reviews and a CI build system that helps to find problems fast. The ideal candidate for this job will think of programming as a craft, as well as a job.
What You’ll Do
- Work as an independent contributor collaborating with a team of developers and test engineers
- Collaborate with product management, support and engineering teams in order to establish priorities
- Mentoring & code reviewing for a remote team - setting best practices and policies, writing specs, wiki pages, knowledge base articles and other internal documentation
- Work closely with the support team, and communicate with customer sysadmins, DBAs and developers for troubleshooting
- Provide technology recommendations and strategy to support CloudBees product requirements
What the Role Requires
- 5+ years of experience working on distributed multi threaded Java applications
- Experience with developing Enterprise Java applications
- Deep knowledge of Java Core / Java 7 & 8
- Solid experience with Spring and Hibernate frameworks
- Excellent debugging and problem solving skills along with a desire to dive into existing Java stack and fix such system
- Familiarity with HTTP, REST, HTML, JSON, and similar web-based development technologies, and with building complex multi-tier parallel distributed systems that communicate via them (such as the backend of complex websites)
- Experience with analyzing thread safety and race conditions, parallelism, synchronization, and locking, including between threads, between machines in a cluster, and in the database, including optimistic and pessimistic locking.
- SQL, object-relational mapping (e.g. using Hibernate), and basic DBA skills in Oracle and writing transactional code
- Test-driven development, including writing reflection-based/class-hierarchy-searching/abstract tests to enforce best practices on other engineers by proactively anticipating places people might fail to observe them and writing tests to catch that
- Excellent oral and written communication skills. Ability to effectively collaborate with team members is required.
- Good judgment, logical thinker and detail oriented
- Bachelor's or Master's degree in computer science is highly preferred
Nice to have
- Design and architectural skills both as lead and cooperating with others
- Handling situations involving high levels of abstraction, multiple threads, and message passing via queues and/or the database, and into security code
- Performance testing, including best practices, hands-on experience both directly and supervising Quality Engineers doing this
What You’ll Get
- Highly competitive benefits and vacation package
- Ability to work for one of the fastest growing companies with some of the most talented people in the industry
- Team outings
- Fun, Hardworking, and Casual Environment
- Endless Growth Opportunities
At CloudBees, we truly believe that the more diverse we are, the better we serve our customers. A global community like Jenkins demands a global focus from CloudBees. Organizations with greater diversity—gender, racial, ethnic, and global—are stronger partners to their customers. Whether by creating more innovative products, or better understanding our worldwide customers, or establishing a stronger cross-section of cultural leadership skills, diversity strengthens all aspects of the CloudBees organization.
In the technology industry, diversity creates a competitive advantage. CloudBees customers demand technologies from us that solve their software development, and therefore their business problems, so that they can better serve their own customers. CloudBees attributes much of its success to its worldwide work force and commitment to global diversity, which opens our proprietary software to innovative ideas from anywhere. Along the way, we have witnessed firsthand how employees, partners, and customers with diverse perspectives and experiences contribute to creative problem solving and better solutions for our customers and their businesses.