POSITION SUMMARY:
The Senior Software Engineer is responsible for the design, development, enhancement, integration, testing and life cycle support of major components of present and future MSD software products. This position will design and create simple technical solutions to complex problems with proper abstractions and modularity for long-term code lifespan.
DUTIES AND RESPONSIBILITIES:
• Responsible for designing, developing and testing software for use in external facing software products. Development may be client, web or server side, as needed.
• Work with team lead in designing appropriate UI, architectural, database and instrument controls for company’s software products.
• Model behaviors, object hierarchies, and database structure.
• Conduct unit testing, verification and debugging of systems and troubleshoot to determine any issues and communicate appropriate solutions.
• As required, present and participate in peer reviews of code and designs.
• Responsible for the extension of existing systems for new capabilities.
• As needed, develop and implement standard operating procedures (SOPs).
• As needed, act as lead for sprints for development of one or more software modules.
• Specific duties may vary depending upon departmental requirements.
EXPERIENCE AND QUALIFICATIONS:
• Bachelor’s degree in Computer Science or related field is required.
• A minimum of three years of experience in a software engineering environment desired.
• Experience leading development sprints in an Agile process is desired.
KNOWLEDGE, SKILLS AND ABILITIES:
• Strong knowledge of best software processes/practices related to the software development life cycle.
• Strong experience with Java, as well as relational databases and web technologies. Java and JavaFX, SQL, JavaScript and frameworks like React/Angular, Html and CSS are desired.
• Strong knowledge of build tools/automated build systems and installation software is desired. Jenkins/TeamCity/CodeBuild, etc.
• Experience with development and operation in a cloud environment, such as AWS/Azure/GCP desired.
• Strong logical problem solving abilities and demonstrated ability to understand large software code bases and recognize areas for improvement and extension as required.
• Aptitude for and track record of decomposing complex problems into simplified steps problems with proper abstractions and modularity for long-term code lifespan.
• Strong knowledge of Agile sprint/scrum process and supporting tools.
• Demonstrated ability to organize self and others and to move project tasks forward in an orderly and structured fashion, with the flexibility to change priorities if needed, while meeting time-sensitive deadlines and deliverables.
• Excellent organizational, planning, and time management skills with the ability to work and continue to learn independently; in a senior role on a team taking and giving direction.
• Excellent oral and written communication and interpersonal skills, working effectively within the team and with all levels of the company.
PHYSICAL DEMANDS:
This position requires the ability to communicate and exchange information, utilize equipment necessary to perform the job, and move about the office.
WORK ENVIRONMENT:
This position is typically performed in a traditional office environment or remotely as needed.