Automation Engineer
About the role
We are seeking an Automation Engineer to help us develop automation, control, data acquisition, analysis, and user-facing software for advanced electromechanical systems, instrumentation, and test environments. You will contribute to software that connects hardware, sensors, actuators, devices, databases, user interfaces, and engineering workflows into reliable mission-focused systems.
Responsibilities
- Design, develop, integrate, and maintain software for automated systems, test stands, instrumentation platforms, engineering tools, and hardware-connected workflows.
- Develop software that interfaces with electromechanical systems, sensors, actuators, microcontrollers, instruments, databases, and networked devices.
- Design reusable software frameworks, libraries, and tools that support automation, test execution, data collection, reporting, and system integration.
- Build user interfaces, dashboards, control panels, and engineering applications that help technical teams operate systems, visualize data, and make decisions.
- Write clean, maintainable, well-documented code and contribute to software design practices that improve reliability, reuse, testability, and long-term support.
- Integrate hardware and software across communication protocols, including TCP/UDP, serial, USB, Ethernet, and other laboratory, industrial, or embedded interfaces.
- Support hands-on integration and troubleshooting in laboratory, shop, and test environments, working directly with mechanical, electrical, embedded, and systems engineers.
- Automate repetitive workflows, improve engineering productivity, and explore the use of AI-enabled development tools to accelerate coding, testing, documentation, and analysis.
- Collaborate with engineers, scientists, technicians, vendors, sponsors, and project leads to understand requirements, identify risks, communicate blockers, and deliver practical software solutions.
Qualifications
- Possess a BS in Computer Science, Software Engineering, Computer Engineering, Electrical Engineering, Robotics, Mechatronics, Mechanical Engineering, or a related technical field.
- Have 3+ years of experience developing software for automation, robotics, instrumentation, test systems, data acquisition, engineering tools, web applications, user interfaces, or hardware-integrated systems.
- Be skilled in software development using languages such as Python, C++, C#, JavaScript, TypeScript, or similar programming languages.
- Have experience designing, implementing, testing, and maintaining software applications, libraries, scripts, services, or automation tools.
- Have experience working with Linux, Windows, Git, software configuration management, debugging tools, and modern development workflows.
- Have experience integrating software with hardware, instruments, sensors, embedded devices, databases, APIs, or network-connected systems.
- Be familiar with communication protocols such as TCP/UDP, serial, USB, Ethernet, REST APIs, or similar device and system interfaces.
- Be able to work with multidisciplinary teams and translate engineering needs into practical software requirements and working implementations.
- Willing and able to work in laboratory, shop, and test environments, including standing or walking for extended periods and moving between buildings or work areas across campus as needed.
- Be a U.S. citizen.
- Able to obtain an Interim level security clearance by your start date and can ultimately obtain a Secret level clearance.
Preferred Qualifications
- Possess an MS in computer science, software engineering, computer engineering, robotics, mechatronics, electrical engineering, mechanical engineering, or a related technical field.
- Have experience developing automation frameworks, reusable test assets, continuous execution tools, reporting pipelines, or software platforms that help non-software specialists run complex workflows.
- Have experience with front-end, back-end, or full-stack development, including modern user interface frameworks, data visualization tools, APIs, databases, or web-based engineering applications.
- Have experience with software architecture, design patterns, code reviews, automated testing, CI/CD pipelines, DevOps practices, containerization, or deployment of maintainable software systems.
- Have experience developing software for robotic systems, motion-control systems, automated test stands, advanced manufacturing equipment, laboratory instrumentation, or hardware-in-the-loop environments.
- Have experience with data acquisition, signal processing, data analysis, automated reporting, or visualization of engineering test data.
- Have experience with embedded systems, microcontrollers, firmware-adjacent development, real-time systems, or edge computing.
- Have experience using AI-enabled development tools such as Codex, Claude Code, GitHub Copilot, or similar tools to improve software development, documentation, testing, or workflow automation.
- Be comfortable breaking down complex projects into organized deliverables, identifying technical risks early, and communicating blockers clearly to project leadership.
- Have experience mentoring other developers, establishing best practices, improving software quality, or helping multidisciplinary teams adopt better software workflows.
- Bring creativity, initiative, and sound engineering judgment to ambiguous technical problems.
About Us
The Johns Hopkins University Applied Physics Laboratory (APL) brings world-class expertise to our nation's most critical defense, security, space, and science challenges. We celebrate our differences of perspective and encourage creativity and bold, new ideas. Our employees enjoy generous benefits, including a robust education assistance program, unparalleled retirement contributions, and a healthy work/life balance. APL’s campus is located in the Baltimore-Washington metro area. Learn more about our career opportunities at https://www.jhuapl.edu/careers.