Software Application Engineer – Multiple Positions
Company | ICF |
---|---|
Location | Reston, VA, USA |
Salary | $97157 – $124730 |
Type | Full-Time |
Degrees | Bachelor’s |
Experience Level | Entry Level/New Grad, Junior |
Requirements
- Bachelor’s degree or foreign equivalent degree in Computer Science or related technical field
- Software development using Java, J2EE, C#, .NET, and Python
- Data management and analysis using SQL, MySQL, and MongoDB, with experience in Python (Pandas, NumPy) and R
- CMSs including Drupal, with a focus on headless CMS using Gatsby.js as the frontend
- Object-oriented design and design patterns applied to software development, including experience with UML diagramming and multithreading
- Front-end development using HTML, CSS, and JavaScript
- AI and machine learning algorithms and frameworks, such as Scikit-learn and PyTorch, using Python and Jupyter Notebooks
- Database design and management, including schema design, ORM libraries, and database administration
- Source control tools like Git and SVN
- Agile and Waterfall software development life cycles
- Shell scripting using Bash, PowerShell, or equivalent
- Technical documentation and client interaction, with the ability to translate technical specifications for non-technical clients
- Testing and debugging experience, including writing tests in Java-based test suites
- CI/CD including GitHub, GitLab and Jenkins
Responsibilities
- Design, develop, and maintain complex software applications using Java, JavaScript, J2EE, C#, .NET, and Python to ensure high performance, security, and scalability.
- Architect and manage event-driven systems on AWS, utilizing infrastructure-as-code tools such as Terraform and CloudFormation to ensure reliability and fault tolerance.
- Perform data analysis and management tasks using Python (Pandas, NumPy) and R, including the development of ETL processes to support data-driven decision-making.
- Build and enhance web applications using HTML, CSS, React.js, Next.js, and Drupal, ensuring cross-platform compatibility and adherence to industry standards.
- Design and deploy machine learning models and AI algorithms using Python, Scikit-learn, and Jupyter Notebooks, integrating predictive analytics and automated decision-making into applications.
- Develop user interfaces that are accessible, intuitive, and aligned with user experience best practices, enhancing user interaction and satisfaction.
- Design, implement, and manage databases using MySQL, MongoDB, and DynamoDB, optimizing query performance and supporting complex transactional operations.
- Produce detailed technical documentation, including system architecture diagrams and code annotations, to support the software development lifecycle and deployment processes.
- Collaborate with clients to gather technical requirements, provide expertise, and ensure that solutions align with business objectives, working within an Agile team environment.
- Conduct comprehensive testing and debugging throughout the software development lifecycle, supporting the Continuous Integration/Continuous Delivery (CI/CD) pipeline for production systems.
Preferred Qualifications
-
No preferred qualifications provided.