Java Application Performance Architect

We are seeking a real “Rock Star”, qualified Principal Java Performance Engineer/Architect to join our Application Engineering team in our Corporate Headquarters Engineering Architecture team in Fremont, CA.

The Performance Engineer designs and performs complex measurement studies characterizing the performance and robustness in real world situations of our Java-based Application Requirements Management product line. Our products are some of the of the world’s most successful enterprise Java Requirements Management, Portfolio Management & Idea Capture and Management applications with several well-known customers worldwide, all of whom rely on our Requirements management products to significantly improve their Ideas/Requirements Management processes ensuring the right products are getting developed.

The Principal Java Performance Engineer will design performance measurement strategies to observe our products’ performance across diverse hardware, operating systems, application servers, and databases. The Principal Performance Engineer will also help construct specialized scenarios to measure product scalability, stability, and fault tolerance and log any defects uncovered. Resulting data will be used to enhance performance and scalability of our products.

The engineer will lead the development of sophisticated custom built automation frameworks and software tools to measure our cutting edge software products in both hosted and on-premise environments within aggressive timeframes. The engineer should be able to investigate the performance of our products as they interact with many of the server-side Enterprise Java technologies used by our customers.

As a server-side Java performance expert, the engineer will help us meet the high performance requirements for our own Java-based products. The engineer will partner with Development to review development design documents to ensure performance and scalability is ”designed in” early in product development, and will collaborate with Developers to investigate thread contention issues, memory leaks, and other performance and scalability bottlenecks in the application and database layers, as well as measure, profile, and provide implementation recommendations.

The engineer will specify the requirements for development efforts of internal testing tools, and will interact closely with product development and internal tools software engineers. In addition, the Principal Java Performance Engineer will help consolidate, analyze, and present data in formal capacity planning guides containing formulas, scenarios, and best practices. The Performance Engineer is expected to educate our internal teams on the performance of our software products and how to explain complex performance characteristics clearly to customers.

The first major assignment will be assigned to work directly with one of our larger customers, the largest cell phone manufacturer in the world, located in Finland. As such the engineer will be required to travel to Finland every 4-6 weeks for a 7-10 day stay, working with our customer’s internal systems/applications teams in characterizing their environment and reporting on performance thresholds. The Engineer will work very closely with the Customer, Accept’s Field personnel as well as with the other Engineers on the team. The Engineer will be expected to participate in Accept Engineering’s Technology Council reporting on and representing Performance concerns/opportunities w/in our applications.

Key Responsibilities:

  • Design and run extensive overhead, scalability, stability, and stress tests using industry standard benchmarks and custom developed software
  • Architect Java performance unit tests
  • Architect and contribute to development of automated system performance measurement frameworks
  • Analyze performance problems in complex Java applications and suggest remediation strategies
  • Provide architecture review and implementation recommendations to developers early in product lifecycle
  • Provide technical leadership and mentoring to junior team members
  • Prepare requirement capture documents, technical design documents, and lead the software development efforts of complex distributed performance measurement software
  • Prepare detailed software requirements documents for custom tool development needs
  • Work with Development to characterize performance in unique customer environments
  • Analyze test results and contribute to capacity planning/customer best practice guides
  • Present proposals and findings to sophisticated internal technical audiences and business decision makers

Minimum Requirements:

  • 5+ years of server-side Java software development with a focus on high performance, such as on transaction processing systems, Enterprise applications for technology or finance, etc.
  • Software development experience with a distinguished track record of ensuring the performance goals are met for technically demanding projects
  • Significant development experience with transaction processing or similar Java applications using a relational database and an object/relational mapping layer
  • Expert ability to write clear and concise technical documents and presentations for sophisticated internal and external (Customer) technical and Executive/Management audiences
  • Expert ability to use profiling and heap snapshot tools to identify hotspots and memory leaks
  • Expert troubleshooting and reasoning skills
  • Expert ability to analyze / interpret technical data
  • Expert ability to identify potential limitations in software architectures
  • Outstanding attention to detail and communication skills

Technology Experience:

  • Strong understanding of concurrency and multicore computing
  • Expert understanding of common patterns of Java memory leaks and ability to identify them
  • Familiar with the performance impacts/implications of Java frameworks (such as ORM, application servers, etc.)
  • Expert ability to identify / resolve performance bottlenecks in complex server-side Java applications
  • Expert understanding of throughput, latency, memory and CPU utilization
  • Understanding of database tuning strategies (Oracle & MySQL experience strongly preferred)
  • Working knowledge of scripting languages
  • Working knowledge of Java development tools and profilers

Considered a “plus” if the candidate is familiar with:

  • Working knowledge of application development and deployment on at least one ESB container (e.g. Mule, Weblogic, JBoss)
  • Other J2EE Technologies (e.g. JSP, Servlets, EJB, JNDI)
  • Appserver load testing / benchmark software (e.g. SPECJAppserver, ECPerf, Trade, WebBench)
  • SOA technologies such as MQ, AquaLogic, WebSphere Process Server, JMS, REST, XML-over-HTTP, etc.
  • Application performance management products (Introscope)

Education:

  • BS, MS in Computer Science or equivalent

 

To Apply:
Please send your resume to careers@acceptsoftware.com
Accept Software is an equal opportunity employer.

 

top