Principal Software Engineer

Fort Meade, MD, US

eSimplicity

eSimplicity Homepage

View all jobs at eSimplicity

Apply now Apply later

Description

About Us: 

eSimplicity is a modern digital services company that delivers innovative technology solutions designed to improve the health and lives of millions of Americans while defending our national interests. Our solutions and services are high impact, providing the most value to the largest number of end users, where we improve healthcare for millions of Americans, protect our borders, and defend our country on the battlefield. Our core customers include the Department of Homeland Security (DHS), Department of Defense (DoD), Department of State (DoS), Health and Human Services (HHS), and the US Intelligence Community (IC). 

eSimplicity specializes in bringing business value to customers through their data, whether that be in the cloud or on-prem, derived through traditional big data approaches or AI/ML techniques. Our core competencies are Enterprise Software Solutions, Architecture/Engineering, AI Engineering, Data Science, and Data Analytics. 

Responsibilities:  

  • Develops, maintains, and enhances complex and diverse software systems (e.g., processing-intensive analytics, novel algorithm development, manipulation of extremely large data sets, real-time systems, and business management information systems) based upon documented requirements.  
  • Works individually or as part of a team.  
  • Reviews and tests software components for adherence to the design requirements and documents test results.  
  • Resolves software problem reports. Utilizes software development and software design methodologies appropriate to the development environment.  
  • Provides specific input to the software components of system design to include hardware/software trade-offs, software reuse, use of Commercial Off-the-shelf (COTS)/Government Off-the-shelf (GOTS) in place of new development, and requirements analysis and synthesis from system level to individual software components. 
  • Analyze user requirements to derive software design and performance requirements  
  • Debug existing software and correct defects 
  • Provide recommendations for improving documentation and software development process standards 
  • Design and code new software or modify existing software to add new features 
  • Integrate existing software into new or modified systems or operating environments 
  • Develop simple data queries for existing or proposed databases or data repositories 
  • Write or review software and system documentation 
  • Serve as team lead at the level appropriate to the software development process being used on any particular project 
  • Design or implement complex database or data repository interfaces/queries 
  • Develop or implement algorithms to meet or exceed system performance and functional standards 
  • Assist with developing and executing test procedures for software components 
  • Develop software solutions by analyzing system performance standards, confer with users or system engineers; analyze systems flow, data usage and work processes; and investigate problem areas 
  • Modify existing software to correct errors, to adapt to new hardware, or to improve its performance 
  • Design, develop and modify software systems, using scientific analysis and mathematical models to predict and measure outcome and consequences of design 
  • Design or implement complex algorithms requiring adherence to strict timing, system resource, or interface constraints; Perform quality control on team products 
  • Implement recommendations for improving documentation and software development process standards 
  • Oversee one or more software development teams and ensure the work is completed in accordance with the constraints of the software development process being used on any particular project 
  • Confer with system engineers and hardware engineers to derive software requirements and to obtain information on project limitations and capabilities, performance requirements and interfaces 
  • Coordinate software system installation and monitor equipment functioning to ensure operational specifications are met 
  • Recommend new technologies and processes for complex software projects 
  • Serve as the technical lead of multiple software development teams 
  • Select the software development process in coordination with the customer and system engineering 
  • Ensure quality control of all developed and modified software 
  • Delegate programming and testing responsibilities to one or more teams and monitor their performance 

Requirements

Required Qualifications:  

  • Bachelor’s degree in computer science or related discipline from an accredited college or university is required and Twenty (20) years of experience as a SWE, in programs and contracts of similar scope, type, and complexity is required or twenty four (24) year’s total of SWE experience on projects with similar software processes may be substituted without a qualifying bachelor’s degree.   
  • Must possess an active TS/SCI clearance with a Polygraph. Candidates with Conditional Clearances (CCAs), are not eligible. 
  • Proven ability to analyze user requirements and translate them into detailed software design and performance specifications, including experience with requirements decomposition. 
  • Experience in debugging and correcting defects in existing software applications to ensure high-quality performance using tools like CloudWatch and pgAdmin. 
  • Expertise in designing and coding new software applications or modifying existing ones to introduce new features, leveraging AWS services such as Lambda (Python 3.11), API Gateway with Lambda Authorizer, and Step Functions. 
  • Experience integrating existing software into new or modified systems or operating environments, including the use of Docker containers and Terraform for Infrastructure as Code (IaC). 
  • Skilled in developing and optimizing data queries for both existing and proposed databases or data repositories, specifically with AWS RDS Aurora PostgreSQL and DynamoDB (as a user cache). 
  • Experience writing or reviewing comprehensive software and system documentation, including Makefiles and configuration/dependency tools like Poetry for Python. 
  • Proven leadership experience as a team lead during various stages of the software development process, coordinating efforts across teams using modern DevOps and cloud-native technologies. 
  • Ability to develop or implement algorithms to meet or exceed system performance and functional standards, supported by Python-based Lambda functions and presigned URL implementations (e.g., S3). 
  • Experience assisting in the development and execution of software component test procedures and cloud-based event-driven services using SQS and SNS. 
  • Ability to analyze system performance, collaborate with users or system engineers, and develop software solutions based on system flow, data usage, and work processes within AWS-native environments. 
  • Experience modifying existing software to correct errors, adapt to new hardware, or improve overall performance using containerization, observability tools, and serverless frameworks. 
  • Experience designing, developing, and modifying software systems using scientific analysis and mathematical models to predict and measure outcomes. 
  • Proven experience overseeing one or more software development teams to ensure work aligns with process constraints, cloud architecture, and scalability considerations. 
  • Experience collaborating with system and hardware engineers to derive software requirements and manage project limitations, leveraging modern cloud and infrastructure tools. 
  • Proven skills in coordinating software system installation and monitoring equipment to ensure operational specifications are met in hybrid or cloud environments. 
  • Ability to recommend new technologies and processes—including AWS-native services, Infrastructure as Code, and containerization—for successful execution of complex software projects. 
  • Proven experience as a technical lead for multiple software development teams, guiding tool adoption such as Terraform, Docker, and AWS Step Functions. 
  • Strong delegation skills to assign programming and testing responsibilities to teams and monitor their performance using collaborative engineering and automation tools. 
  • Excellent verbal and nonverbal communication skills 
Apply now Apply later
Job stats:  0  0  0
Category: Engineering Jobs

Tags: APIs Architecture AWS Big Data Computer Science Data Analytics DevOps Docker DynamoDB Engineering Lambda Machine Learning PostgreSQL Python Security Step Functions Terraform Testing

Region: North America
Country: United States

More jobs like this