Software Systems Architect, Sr.


Job ID 19-00123

Industry Computer/IT

Job Type Contract

Location Austin, TX

Description

Experience needed:
Extensive experience with monitoring cloud-based applications and infrastructure, specifically Azure and Amazon Web Services (AWS).  AWS or Azure formal training preferred. Demonstrated knowledge and use of Azure and AWS native monitoring API's. Knowledge of and demonstrated experience with Application Performance Monitoring tools such as AppDynamics, CA Introscope and Log Analytics tools.


DESCRIPTION: 
This task requires applying analytical processes to the planning, design and implementation of new and improved information systems to meet the business requirements of customer organizations.
A Senior Software/System Architect Sr. must have extensive experience in the coordination of program and project leaders to identify requirements for system architecture. Must be able to identify strategies for addressing requirements. Must have extensive experience with analysis of requirements against fiscal, schedule, and performance issues. Has extensive experience in taking program requirements and is able to create an architecture vision having experience in high volume and high availability networks and systems.  Experience in creating and conveying to team members the architectural vision for a program or project.  Is responsible for dictating design choices to software developers, including but not limited to: platforms, coding and technical levels. Experience in establishing and enforcing standards and practices.  Overseeing the development team, he manages the full life cycle of the software development process.   Has extensive software development experience and thorough knowledge of a variety of programming languages and logic.
RESPONSIBILITIES
1. Perform discovery and requirements analysis for new system features, analysis of current system capabilities and limitations and design/engineer/integrate new system capabilities to meet requirements.
2. Provide SME level support on application performance, desktop performance, and application availability and desktop availability monitoring and reporting using current VA monitoring tools such as CA Application Performance Management, AppDynamics monitoring tools, Arcturus Applicare, Microsoft Bluestripe Factfinder, XPOlog Management, CA Service Operations Insight, CA Business Service Insight, Aternity Desktop monitoring, and other performance monitoring tools as required.
3. Customize the monitoring interface to provide dashboards, monitoring and alerts for all monitored applications.
4. Document and test the customizations.
5. Use monitoring diagnostic tools to find the root cause of performance issues.
6. Assist Government and Contractor helpdesk staff on the use of monitoring diagnostic tools to pinpoint production issues.
7. Assist Government and Contractor staff on Root Cause Analysis based on data reported from the monitoring system.
8. Create and tune performance monitoring and availability alerts.
9. Recommend policies and procedures on actions to take based on the alerts generated. All recommendations shall be provided to the COR/VA PM(s) for approval prior to any implementation or changes.
10. Develop standards, policies and procedures around the use of application performance monitoring and availability in the pre-production and production environments, and provide all recommendations to the COR/VA PM(s) for approval prior to any implementation or changes.
11. Participate in tuning and troubleshooting efforts.
12. Work with customers to resolve performance and availability issues.
13. Monitor subsystems using customized scripting appropriate to the monitoring tool being used.
14. Document operational steps and practices necessary to perform the assigned administrative duties, example creating Run-Books.

JOB DESCRIPTION/RESPONSIBILITIES: 
- Defining the strategy for enabling performance diagnostics and monitoring through the use of an Application Performance Management (APM) tool, other monitoring tools, and diagnostic techniques.
- Identifying, evaluating, and recommending monitoring tools and diagnostic techniques relevant to the application architecture.  Assess gaps in as-is monitoring tool capabilities and recommend tools to augment or replace.
- Learning an application's design to assess for performance risks and identify areas to apply past learnings
- Instrumenting applications to enable performance diagnostics and monitoring
- Collaborating with Performance Engineering leads and project team to review and refine application SLAs, & KPIs to create acceptance criteria and performance solutions necessary to measure, validate, and improve performance
- Collaborating with developers to promote the concept of performance engineering during all phases of the SDLC to detect and correct performance issues earlier in the lifecycle
- Monitoring application performance during performance tests or production usage through the use of APM and other monitoring tools to isolate the fault domain, dive deep into application code, and identify root cause of performance issues.
- Utilizing static code and dynamic code analysis to identify performance and maintenance concerns
- Profiling application performance from end-user perspective to inventory performance concerns and suggest tuning opportunities across the application stack
- Performing deep dive JVM analysis examining garbage collection logs, heap dumps, and thread dumps as needed.
- Documenting performance findings and recommendations 
- Interacting with client and/or VA development, operations, and infrastructure resources to recommend solutions to remediate performance issues
- Participating in re-architecture, redesign, and refactoring decisions to satisfy performance requirements
- Developing dashboards and reports to provide ongoing visibility into the performance of client applications
- Contributing learnings and experiences to the VA Performance Engineering community



Qualifications

BASIC QUALIFICATIONS:
knowledge of and experience with the VA IT computing infrastructure and architecture. Senior Software/Systems Architect experience, Application/Infrastructure performance and availability program management experience. Must have demonstrated experience with managing and analyzing large volumes of data for predictive analysis.
- Minimum of 2 years hands-on experience with performance tuning, diagnostic or monitoring
- Minimum of 2 years hands-on design / development experience (e.g. Java, .Net, etc.)
- Minimum 1 year hands-on experience performance diagnostics tools (e.g. CA APM, AppDynamics, Dynatrace, New Relic, etc.)
- Local to Austin
Desired Additional Skills and/or Certifications:
- Masters Degree 10 years of experience or 10 years additional in lieu of degree
- Previous Consulting experience 
- Experience with distributed computing, Web Services, SOA, and JEE design concepts
- Experience delivering software designed for high concurrency, scalability, or availability
- Experience using Application Performance Management (APM) tools (e.g. AppDynamics, DynaTrace, New Relic, CA APM)
- Participant in Agile software development process
- Hands-on experience collecting performance data, analyzing, troubleshooting, and tuning
- Comfortable navigating UNIX/Linux command line to assess OS performance
- Hands on analysis, reverse engineering, debugging, and profiling Java code (e.g. Eclipse Profiler, Eclipse TPTP, JProbe, JProfiler, Yourkit, VisualVM,  Valgrind, NetBeans profiler, JConsole, JBoss Profiler, JAMon, JRocket Flight Recorder)
- Experience debugging web applications using HTTP proxy or browser-plugin tools (e.g. Firebug, Chrome Developer Tools, Fiddler, HTTPWatch, HTTP Analyzer, Charles, YSlow) 
- Experience analyzing the performance and health of a JVM or Application Server (e.g. IBM WebSphere, Oracle AS, BEA WebLogic, JBoss, Tomcat, Glassfish)
- Experience with usage of common application protocols and messages (e.g. TCP/IP, HTTP, SOAP, RESTful APIs, XML/JSON, JDBC, JMS/MQ)
- Experience analyzing network messages using a packet capture tool (e.g. WireShark,TcpDump, WinDump)
- Experience with SQL development and tuning
- Exposure to Cloud, SaaS, and virtualization concepts and performance concerns
- Exposure to application threading and concurrency concerns
- Working knowledge of operating system design , processes, and threading model
- Ability to work in other languages such as JavaScript, Ruby, PHP, Perl, Python, Powershell, and Linux shell scripting

MINIMUM EDUCATION/ MINIMUM EXPERIENCE REQUIRED: 
Master's Degree/10 years' experience    Computer Science, EE, or other engineering technical discipline.  10 years additional relevant experience substituted for education.