Position: Principal Java Performance Architect
Location: Fremont

Company:
As the Principal Java Performance Architect you will design performance measurement strategies to observe our products’ performance across diverse hardware, operating systems, application servers, and databases. You’ll also help construct specialized scenarios to measure product scalability, stability, and fault tolerance and log any defects uncovered. In addition, you’ll 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 time frames. You 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, you’ll help us meet the high performance requirements for our own Java-based products. Collaborateing 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.

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).

Contact:
Barbara at
B. McGhee & Associates
408-916-3370
Barbara AT bmcghee DOT com
Bmcghee AT gmail DOT com