Senior Software Engineer (Research)
Code Metal
Boston, massachusetts
Job Details
Full-time
Full Job Description
We’re looking for passionate, experienced Software Engineers to become an integral part of our engineering team. The ideal candidate would possess a strong technical background and practical experience in software development, particularly in complex environments where formal methods and program synthesis play a significant role.
In this role, you will collaborate with a small team of talented researchers and engineers on exciting new projects in program synthesis and code transpilation, by blending formal methods and modern deep learning architectures like graph neural networks and large language models.
Core Responsibilities:
- Work closely with a team of researchers and engineers to support the development of new technologies. This includes designing and testing new software tools, developing algorithms, and implementing prototypes that push the boundaries of what's possible in program synthesis and code transpilation.
- Support internal research and customer projects by actively engaging with cross-disciplinary teams to innovate and develop tailored solutions that meet both experimental research objectives and client-specific needs.
- Ensure the high standards of software quality through code reviews, quality assurance practices, and documentation.
- Provide technical guidance and mentorship to junior team members.
- Stay updated with emerging trends in software engineering, formal methods, and related technologies.
Requirements
Required Qualifications:
- BS degree in Electrical Engineering, Computer Engineering, Mathematics or a closely related field, or equivalent professional experience.
- At least 5+ years of relevant experience working in industry on problems involving software development and formal verification.
- Understanding of object-oriented programming and principles.
- Experience in disciplined C++, and Python code development. Experience with Matlab or Julia is a plus.
- Experience writing unit tests and using unit test frameworks.
- Formal verification tools such as SMT solvers and interactive theorem provers.
- Experience with standard best practices in software engineering (e.g. version control, code reviews, CI/CD, etc.).
- Mathematical logic (e.g., temporal logic, separation logic, category theory, etc.).
Preferred Qualifications:
- MS or a PhD in Electrical Engineering, Computer Engineering, or a closely related field, or equivalent professional experience.
- Experience with container development tools such as Docker.
- Experience creating Python wrappers over a C++ libraries is a plus.
Benefits
Competitive salary and benefits including:
- Health Care Plan (Medical, Dental & Vision)
- Retirement Plan (401k, IRA)
- Paid Time Off (Uncapped Vacation, plus Sick & Public Holidays)
- Flexible hybrid work arrangement
- Relocation assistance for qualifying employees