Summary of Position:
The Software Developer Engineer will focus on applying the principles of engineering to software development. This role includes analyzing and modifying existing software as well as designing, constructing, and testing end-user applications that meet user needs; all through software programming languages. The Engineer must have knowledge of professional software engineering practices & best practices for the full software development life cycle, including coding standards, code reviews, source control management, build processes, testing, and operations.
Essential Functions:
- Work with our peer team members to design suitable software systems, tools, and interfaces to fulfill stated requirements
- Collaborate with team members to form a strong foundation and best practices for software development,
- Build Operational Excellence with a focus on monitoring managed resources & infrastructure - build mechanisms for gathering metrics, troubleshooting/debugging, tracking, and resolving technical challenges
- Build automation and self-serve tools to streamline operations, updating/enhancing our current software tools, automation of support processes, and documentation of our systems
- Build tools to support high-performance infrastructure used in labs and manufacturing environment
- Analyze and modify existing software as well as design, construct, and test end-user applications that meet user needs
- Responsible for software development, modeling, simulation, testing, and quality assurance
- Analysis of user requirements, software, and code
- Completing systems risk and reliability analysis
- Monitor systems performance
- Perform maintenance and software integrations for existing systems
- Maintain or exceed compliance with industry standards
- Responsible for application development for the full lifecycle of software
- Identify and assess modern technologies prior to implementation
- Modify the software to fix errors, adapt it to new hardware, improve its performance, or upgrade interfaces
- Direct system testing and validation procedures
- Direct software programming and documentation development
- Consult with departments or customers on project status and proposals
- Work with customers or departments on technical issues including software system design and maintenance
- Analyze information to recommend and plan the installation of new systems or modifications of an existing system
- Consult with engineering staff to evaluate software-hardware interfaces and develop specifications and performance requirements
- Design and develop software systems using scientific analysis
- Prepare reports on programming project specifications, activities, or status
- Work with project managers to obtain information on limitations or capabilities
Competencies:
- Ensures Accountability
- Tech Savvy
- Communicates Effectively
- Values Differences
- Customer Focus
- Resourcefulness
- Drives Results
- Plans and Prioritizes
- Decision Quality
- Self-Development
Work Environment:
This job operates in a professional office environment. This role routinely uses standard office equipment such as computers, phones, photocopiers, filing cabinets and fax machines
Physical Demands:
The physical demands described here are representative of those that must be met by an employee to successfully perform the essential functions of this job.
While performing the duties of this job, the employee in this position frequently communicates with other co-workers/clients who have inquiries about the various projects and other needs. Must be able to exchange accurate information in these situations. The employee must be able to remain in a stationary position 75% of the time. The employee in this position needs to occasionally move about inside the office to access file cabinets, office machinery, etc. Constantly operate a computer and office machinery such as a calculator, keyboard, copy machine, and printer. Frequently moves boxes with equipment weighing up to 25 lbs. across the building and/or to other offsite buildings for various project needs.
Required Education and Experience:
- Bachelor's degree in computer science or related technical discipline, or equivalent work experience.
- 5+ years of experience
Qualifications:
- 5+ years of non-internship professional software development experience with delivering software in a production environment
- Experience in developing distributed software systems in C/C++, Python or Java on Linux or Windows
- 2-3 years of experience contributing to the system design or architecture (architecture, design patterns, reliability, and scaling) of new and current systems
- Experience with building large-scale, high-performance systems in a complex, multi-tiered, distributed environment
- Experience working with AWS or Azure services.
- Other desired technical skills include Perl, SQL, HTML, UNIX/LINUX
- Experience with Identity and Access Management - Active Directory (AD)
- Experience in developing cloud-native environments (AWS or Azure)
- Frontend development experience preferred - HTML, CSS, JavaScript, JSON, Node.js, MySQL
- Experience communicating with users, software development engineering teams, and management to collect requirements, describe software product features and technical designs
AAP/EEO Statement:
3MD Inc. is an equal opportunity employer and does not discriminate based on gender, sex, age, race and color, religion, marital status, national origin, disability, sexual orientation, gender identity or expression, veteran status or any other category that is protected by applicable law.
Other Duties:
Please note this job description is not designed to cover or contain a comprehensive listing of activities, duties or responsibilities that are required of the employee for this job. Duties, responsibilities, and activities may change at any time with or without notice.