Job details
Description
POSITION SUMMARY:
The Principal Software Engineer is responsible for leading the design enhancement, integration, testing, release and life cycle support of present and future MSD software products. Responsible for the design and creation of simple technical solutions to complex problems with proper abstractions and modularity for long term code lifespan.
DUTIES AND RESPONSIBILITIES:
• Responsible for leading a team of people in the design, development and testing of software for use in MSD’s products.
• Provide expertise to the design of appropriate UI, architectural, database and instrument controls for company software products.
• Oversee as well as conduct modeling of behaviors, object hierarchies, database structures and systems.
• Oversee conducting of unit and integration 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, including data analysis.
• As needed, develop and implement standard operating procedures (SOPs).
• Specific duties may vary depending upon departmental requirements.
EXPERIENCE AND QUALIFICATIONS:
• Bachelor’s degree in Computer Science or related field is required, Master’s degree preferred
• Minimum 7 years of experience in a software engineering environment with demonstrated leadership responsibilities
• Experience with Agile software management in a lead role.
KNOWLEDGE, SKILLS AND ABILITIES:
• Advanced knowledge of best software processes/practices related to the software development life cycle.
• Experience with the full stack of client and web applications, from UI through database and devops development.
• Advanced experience with Java as well as one or more other object oriented or scripting languages, as well as relational databases. Java and JavaFX, SQL, JavaScript and frameworks like React/Angular, Html and CSS are highly desired.
• Experience with cloud based deployments and operations. AWS desired.
• Advanced knowledge of build tools/automated build systems and installation software desired: Jenkins/TeamCity/CodeBuild, etc.
• 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 architecting new solutions, decomposing complex problems into simplified steps problems with proper abstractions and modularity for long-term code lifespan.
• Demonstrate ability to understand large existing software code bases and recognize areas for improvement and extension as required
• The ability to provide guidance, mentoring and training to colleagues.
• Demonstrated propensity to be creative, collaborative, proactive, and self-motivated in the execution and completion of assigned accountabilities.
• Excellent oral, written communication and interpersonal skills
• Excellent organizational, planning, and time management skills with the ability to manage multiple and often changing priorities and issues of varying complexity, while meeting time-sensitive deadlines and deliverables.
• Ability to work independently, as an effective team member 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.