We are currently seeking a Software Developer/Senior Software Developer in Hanover, MD. The applicant will be part of a Development Team utilizing software frameworks to build innovative applications. The software engineer will be involved in all parts of the software process; from configuring and managing the production environment to writing, testing, and deploying the code. If you are a software engineer, self-starter and enterprising person looking to expand your knowledge in all parts of application development, then this is the position for you.
Responsibilities:
Duties will include capturing user requirements and designing user interfaces/experiences (UI/UX) that are elegant and forward-thinking, selecting and implementing technologies that are the best fit for the application, managing and configuring the application code, and documenting and testing the application during its lifespan. This will include the following actions and more as requirements demand.
Designing, developing, troubleshooting, and analyzing software programs for computer-based systems.
Performing system modeling, simulation, and analysis.
Designing and developing compilers, assemblers, utility programs and operations systems.
Providing input for documentation of new or existing programs, associated documentation, block diagrams and logic flow charts applied to engineering problems.
Conducting detailed analysis of defined systems specification.
Verifying accuracy and completeness of programs by preparing sample data, conducting program tests, analyzing test results, and debugging programs errors.
Advancing the maturity of and troubleshooting issues with existing class management tools to support and ensure delivery and grading of student activities.
#divergent
Active TS/SCI with Polygraph
Bachelor's Degree in Computer Science or related field and five (5) years of applicable software development experience is required. OR Three (3) years of experience may be substituted for a Bachelor's Degree is acceptable, for a total of eight (8) years of applicable software development experience.
Software Engineers must be able to successfully demonstrate the following capabilities:
Demonstrate the ability to parse and understand existing code bases, contributing to the continued development of class management tools.
Develop scrapers and parsers in support of automated grading and course delivery.
Lead development activities, showcasing the ability to guide and manage software engineering projects.
Develop software solutions utilizing various languages such as Rails, Python, or Node
Ability to create and manage applications using industry standard package managers
Proficiency in utilizing source code management systems, with a focus on Git
Self-motivated individual that can think outside the box
Preferred:
Every development team is different but there are always specific experiences, exposures, and skills that can make the transition a success. These beneficial, but not required, items include experience in or familiarity with:
Developing applications for Computer Network Operations.
Developing applications using the MERN stack, showcasing proficiency in MongoDB, Express.js, React, and Node.js.
Designing and developing APIs and dataflow solutions.
Designing and implementing CI/CD pipelines to enhance the software development lifecycle.
Developing and implementing test beds, utilizing test suites such as jUnit or PyTest for robust testing practices.
Developing and deploying applications, services, and systems within virtualized environments, preferably vSphere, Docker, and Kubernetes.
Developing aesthetically pleasing and user-friendly front ends.