Engineering · United States of America · Remote possible
Vivodyne accelerates the successful discovery, design, and development of human therapeutics through the convergence of novel biology, robotics, and AI. Our platform enables customers to massively de-risk drug candidates by testing them against functional, lab-grown, human organs and multi-organ systems. We conduct preclinical discovery and clinical development campaigns to generate new therapeutics and clinical strategies from these proprietary, physiologically-realistic human organ tissues at unprecedented scale, speed, and quality through automation and machine learning. We’re financially backed by some of the most selective and successful venture funds, and several “top 10” global pharmaceutical innovators have already partnered with us to strengthen and speed their therapeutic pipelines.
To learn more visit us at www.vivodyne.com.
Role
The software engineering team is responsible for continuously implementing, improving, maintaining and operating all non-physical elements of our groundbreaking drug discovery and development platform. As a Senior Software Engineer (Front-End), you will draw on your experience and the most modern front-end technologies to create our innovative scientist-facing products and interfaces. You'll work as part of a cross-functional team drawn from product managers, designers, architects, backend software engineers, hardware engineers, AI scientists, and biologists to rapidly deliver and evolve our production systems. You will
The role demands technical excellence, strong organizational and communications skills, attention to detail, a keen sense of ownership, scrappiness, drive, and a track record of delivering in the face of wide decision-making freedom and evolving priorities.
Requirements and Expectations
Design. You work as part of a team to invent, design and build software that is stable and performant. You bring perspective and provide context for current technology choices and guide future technology choices. You understand that not all problems are new (or require new software). You are proficient in a broad range of design approaches and know when it is appropriate to use them and when it is not. Your solutions are pragmatic while taking the long-term view. You limit the use of short-term workarounds. You consider where each system is in its lifecycle and where appropriate, proactively fix architectural deficiencies. You make existing systems simpler (e.g., by consolidating redundant systems, deleting unnecessary code, or removing/updating out of date documentation). You do things with the proper level of complexity the first time (or at least minimize complexity). You create flexible software without over-engineering. You make appropriate trade-offs, re-use where possible, and are judicious about introducing dependencies. You understand the business impact of your systems and show good judgment when making technical trade-offs between your team’s short-term business or operational needs and long-term technology needs. You are efficient with resource usage (e.g., hardware, database, memory, computing power, etc.) and cost.
Coding. You are a significant and autonomous contributor and considered a technical leader on your team. You work efficiently and routinely deliver the right things with limited guidance. You solve difficult problems, applying appropriate technologies and best practices. Your work is consistently of high quality. You consider the legacy of the code you produce and write code that a software engineer, unfamiliar with the system, can understand. Your code is organized and easy to extend. Your code submissions and approach to work are exemplary with solutions that are inventive, secure, easily maintainable, appropriately scalable, and extensible. You deliver high-quality artifacts (research, schematics, analysis, specifications, prototypes, test plans, etc). Your documentation practices are data-driven, accurate, clear, and complete.
Continuous Improvement. You focus on operational excellence, constructively identifying problems and proposing solutions. You take on projects and make software enhancements that improve software and processes. You work to resolve the root cause of complex problems, leaving software better and easier to maintain than when you found it. You drive engineering best practices (e.g., operational excellence, security, quality) and set standards. You work to resolve the root cause of endemic problems including areas where your team limits the innovation of other teams.
Teamwork. You are a key influencer in team strategy. You are able to take the lead on large projects that require the work of a team. You know how to divide a software project into parallel work that can be performed by you and other software engineers and then reassembled successfully into a cohesive launch. You help your team evolve by actively participating in the code review process, design discussions, team planning, and reviews of tickets, metrics and corrections-of-error. You are able to train new teammates on how your team’s software is constructed, how it operates, how secure it is, and how it fits into the bigger picture. You foster a constructive dialogue and seek resolutions in a professional way. When confronted with discordant views, you are able to find the best way forward and influence others to follow that path. You contribute to the professional development of colleagues, improving their technical knowledge and the engineering practices. You actively recruit and help others leverage your expertise by coaching and mentoring. You provide technical assessments for promotions. You ensure your team is stronger because of your presence, but does not require your presence to be successful.
Qualifications
Preferred Qualifications