Senior Software Engineer
Role details
Job location
Tech stack
Job description
- Contribute to all phases of the software development lifecycle on projects from requirements discussions, development, deployment, final testing & validation of your part of the final product as well as product support after delivery.
- Work closely with firmware and hardware engineers to integrate software components into electronic products.
- Write build scripts, application code and unit tests in C++, deployment scripts and documentation.
- Debug existing software applications and their interaction with hardware
- Implement new features, refactor existing code, and enhance software system architecture from project specs and device documentation.
- Receive customer requests and implement simple and effective solutions with minimal guidance and oversight.
Requirements
You are a professional software developer with experience integrating your software into custom electronic and computer hardware. You use intuition when faced with inexplicable problems and write clean and understandable code that is reliable and just works. Detailed oriented and leverage a broad-based skill set to develop simple solutions to complex problems. You have a bias towards action when faced with ambiguity and a passion for delivering projects at a high level of quality., * Minimum of 10 years building and successfully developing multiple software applications from start to production.
- Demonstrated background delivering projects on time and on budget.
- Experience managing the codebases of different projects of varying age and level of polish.
- Experience developing for a Linux environment, embedded Linux preferred.
- Able to lead software development projects and participate as part of a team.
Knowledge, Skills, and Abilities:
- Able to work stand alone or manage a small set of developers
- C/C++ 17 and standard library in a Linux OS
- Git, Github and/or GitLab
- Cmake and/or make
- Writing unit tests for your code and understanding code-coverage tools & analytics
- Proficiency with Visual Studio Code or Eclipse
- Ability to quickly navigate, read and learn existing codebases and their patterns.
- Identify opportunities for software architecture improvements and process improvements to enhance efficiency and reduce costs and time-to-delivery
- Best practices and processes for the software development lifecycle
Requirements:
- Professionalism representing AED when interacting with staff, vendors, clients, and the public.
- Organizational skills and the ability to plan, prioritize, and execute tasks independently.
- Strong written and verbal communication skills
- Pass a comprehensive background check.
- Authorized to work in the United States and not require work authorization sponsorship by AED now or in the future.
- Bachelor's degree in Computer Science or equivalent work experience
Nice to have:
- Experience with Python (versions 2.x and 3.x)
- Docker and cloud services architecture.
- Knowledge and understanding of database backed web applications.
- Javascript, Typescript, HTML, and CSS knowledge.
- Understanding of how compilers and assemblers work.
- Mobile app experience on both iOS and Android devices.
Benefits & conditions
In addition to exciting work at a growing company, we offer the following benefits:
- 401(k) retirement with a company match
- Health, Vision & Dental Insurance
- Life, AD&D insurance
- Vacation and holiday pay