Sr Principal Programmer
Sr. Principal Software EngineerGeneral Dynamics Information Technology is looking for a motivated, skilled software engineer looking to join a dynamic cross-functional team supporting a Government customer. Excellent written/oral communication skills combined with technical expertise in Java development in an SQL database environment desired. The Principal Software Engineer researches, designs, develops, and modifies enterprise-wide systems and applications software.
- Designs, develops, codes, tests, and debugs complex new Java-based software products, or makes significant enhancements to existing software.Development and maintenance of Java server application and tools; C# and web clients; and SQL Server queries, functions, stored procedures, and triggers.Researches and integrates design strategies, product specifications, development schedules, and user expectations into product capabilities; Documents customer requirements.Resolves complex hardware/software compatibility and interface design considerations.Researches emerging technologies to determine impact on application execution; Conducts complex investigations, data analysis and tests; Troubleshoots complex problems.Writes, modifies, and maintains technical documentation and specifications such as user manuals, system documentation, and training materials.Prepares reports on analyses, findings, and project progress.Provides guidance and work leadership to less-experienced software engineers; may serve as a technical team or task leader exercising leadership in either a technical role or project coordination role.Performs applications engineering, including full life cycle application systems design and development.Performs scripting and performance of quality assurance testing, both manual and automated.Provides operational support of production system, including configuration management, releases, and troubleshooting.Serves as a liaison with clients, participates in meetings to ensure client needs are met and may make client presentations; Conducts system acceptance testing at customer site.
- Advanced knowledge of software engineering principles, methods, and techniques requiredKnowledge of the associated hardware, software, and equipment requiredUnderstanding of existing code and how an application functions by reading it requiredWrite modular, efficient, and readable code for bug fixes, enhancements, and re-structuring requiredWrite unit test code, test scripts and perform manual functional testing.Work with our own and our customer’s staff at various levels, both technical and non-technical.Work on multiple projects according to priorities.Mix development, testing, and operational support on any given day.Working knowledge of:
- Java (as a development language)MS SQL ServerJetty, Apache Tomcat, or any Java application serverHibernateSOAP web servicesJDBCJMSjUnitXML – DOM, SAX, XPATHSQLC# and .NetWindows Server 2008R2 / Windows 7 or later
- Professional certification in one or more specific technologies mentionedVMWare and related virtualization softwareSpring CoreApache Enterprise Integration Frameworks (ActiveMQ, Camel, Zookeeper, etc.)REST web servicesApache/IBM HTTP ServerIBM MQ SeriesMavenSubversionSeleniumApplication architecture and design, including for distributed applicationsSQL Server (app developer or DBA level)