View all jobs

Principal Software Engineer w/ 15 years experience

Annapolis Junction, MD · Information Technology
Basic Qualifications
• At least fifteen (15) years in software development/engineering, including requirements analysis, software development, installation, integration, evaluation, enhancement, maintenance, testing, and problem diagnosis/resolution. The individual must be able to communicate directions and provide guidance to junior programmer/analysts, as required
• At least eight (8) years developing software with high-level languages – such as Java, C, C++, or JavaScript – in the development of application software for complex systems
• At least six (6) years demonstrated experience developing software for Windows (2000, 2003, XP, Vista), UNIX or Linux (Redhat versions 3-5) operating systems. At least two (2) years of this experience must have been obtained within the last four (4) years
• Experience planning, accomplishing goals, complicated tasks, and providing consultation on complex projects as top-level contributor or specialist
• At least six (6) years in programming and development of application software for complex systems and software testing
• Experience architecting, designing, developing, testing, and supporting integration of software systems with functional requirements within a CMMI Level 2 process structure
• Experience "wrapping" legacy systems or components as Web Services within a SOA framework
• Developing solutions integrating and extending COTS products
• Developing of Framework infrastructure and services within one of the SOA design patterns
• Experience with performance tuning and optimization of service-based Framework infrastructure and services
• Developing of custom adapters allowing the integration of legacy (i.e., capabilities not developed as services) capabilities with service-based Framework infrastructure and services

Preferred Qualifications
• Software development on a Linux operating system
• Experience with event driven and streaming capabilities (e.g., Heron, Streams, Spark, etc.) and with message transports (e.g., Active MQ, ZeroMQ, Kafka, NATS, Open DDS, etc.)
• Experience interfacing with and developing REST web interfaces
• Network protocols (HTTP, TCP, SSH, SSL, FTP, etc.)
• Experience with common data formats and ability to convert different encoded data formats (e.g., XML, JSON., YAML, etc.)
• Experience with RDBMS or distributed NoSQL Database system (e.g., MongoDB, Redis, Memcached, ZooKeeper, Elasticsearch, Etcd, Accumulo, etc.)
• Familiar with Shell Scripting and Ansible
• Have a working knowledge of cloud computing platforms (e.g., AWS)
• Experience with resource management tools (e.g., Kubernetes, Mesos, etc.) as well as containerization technologies (e.g.,Docker)
• Design, develop, unit/integration test, and build software code to provide new functionality and extend/modify existing code; using object-oriented methodologies
• Write and implement code using real-time streaming software frameworks
• Write and implement code to interact with object-relational, as well as NoSQL distributed databases
• Write Linux Ruby and Bash based scripts for code integration & cron jobs
• Leverage Gradle and Jenkins as continuous integration tools
• Manage code using Git and the Atlassian tool suite (JIRA Agile, FishEye/Crucible, & Confluence
• Ensure that code integrates with external hardware/software systems
Powered by