BVA v6.0
- Shipped v6.0.3 of our flagship application; projected deadline set by the team was met, and the shipping product contained more features than were initially in-scope
- Incorporated hundreds of unit tests; addressed all tests marked as inconclusive so that the test suite was more trustworthy
- Feature: having a configurable keV tolerance on the second read of the calibration source; this involved the entire team in the design, coding, and testing; considerable refactoring was required
- Helped address two issues related to gender specification (i.e., visual emphasis and “unexpected gender change”); one of which allowed a CAPA to be closed
- Figured out the “phantom test” bug and its solution
- Studied the entire QC calibration algorithm and documented its design and requirements on the wiki; formerly, this was not documented anywhere
- Participated in the design of a testable utility app that allows Jenkins to discover which unit/integration tests to run
- Kept the BVA base system image up-to-date
- Updated relevant work instructions and laboratory operations manual (LOM) components
- Updated service technicians’ external drives with the most current version of the software, base system image, and accompanying tools
Team-lead work
Community and leadership
- Maintained rapport with all DAXOR colleagues so that I understand their roles in the company better
- Mentored and encouraged dev team members to become better developers
- Participated in “pay-day Thursday” lunches with the dev team and our manufacturing technician
- Encouraged the dev team to become active in the local tech community and the community at large
- Instilled the importance of unit/integration/functional testing for any dev work for shipping products
- Facilitated weekly team gatherings to work on activities that promote relationship building
- Group training
Project lead
- Experimented with critical chain process management for BVA v6.0.3
- Worked closely with the dev team to size issues and plan our work
- Standardized the TFS/JIRA issue write-up format (e.g., workaround in the field, how to reproduce, how the issue was tested)
- Performed the custodian role on TFS and JIRA to maintain issue consistency
- For v6.1 issues, introduced the concept of user stories and acceptance criteria
- Reviewed check-ins to ensure consistent quality of work and to help other devs improve their skills
- Coordinated with the Project Manager (PM) to plan iterations
- Maintained the practice of daily team member summaries shared with the group
- Established and maintained weekly team meeting protocol: reviewing outstanding tasks, fostering communication by asking “what’s working, what’s not working, and what can we do to fix the problems?”
- Reorganized the software team wiki to reflect current dev tools and processes
- Maintained code quality and provided developer feedback through frequent one-on-one code reviews
- Created an informal list of topic areas a software developer at DAXOR should be familiar with; previously this was “tribal knowledge”
- Created a shared document which lists which critical processes lack sufficient documentation so that the PM and the Quality Manager could be made aware
- Developed an improved system for performing regular document review; hopefully this will be implemented in early 2015
- Assigned a new developer a development task to give him exposure to the language/tools used internally and to replace a manual process with an automated tool
- Investigated instability of Jenkins and worked with the IT Manager to address it; this involved finding a tool to send out e-mails when a host stops responding
- Filed a CAPA pertaining to the lack of a formal process around the application of operating system patches during maintenance release installations; worked with another dev to put a process and its corresponding documentation in place
- Repurposed our productivity tools to use them more efficiently
- JIRA: issues pertaining to shipping software and formal documentation for that software
- Trello: internal tasks, current informal projects, and someday/maybe projects
- Evernote: document management/tagging
Technical lead
- Worked closely with another dev to determine how to migrate to a different set of development tools (Visual Studio 2013, JIRA, Bitbucket, Mercurial)
- Explored workflow options and chose ones that best match our process
- Defined documentation requirements
- Co-created setup, usage, and maintenance documentation
- Planned the modification of existing internal tools to use the new systems
- Used Trello to capture goals and tasks from weekly team meetings to support continuous improvement and improve communication
- Worked with the dev team to define processes pertaining to distributed version control (e.g., branching) as we migrated away from TFS
- Facilitated multiple training sessions for a new developer to bring him up to speed on domain knowledge, processes/procedures, and software development practices
Management
- Kept notes on the team so that I could see trends in their work
- Talked with each developer (at least twice) about their performance
- Reviewed each team member’s training matrix weekly to ensure compliance
- Coordinated with another dev and the PM to handle that developer’s resignation
- Interviewed a candidate for a software engineer position and put things in motion to have his onboarding process start on his first day
- Kept the PM informed about dev team performance and articulated opportunities for improvement
Multichannel analyzer end-of-life project
- Collaborated with the Electrical Engineering Manager and the PM to learn more about the problem domain
- Reviewed portions of the BVA application code and constructed several collections of system- and user-level stories
- Documented how to use the GBS MCA and accompanying data acquisition software
- Designed and conducted a preliminary equivalence experiment (comparing Target and GBS MCAs)
BVA v6.1
- Worked with the PM to discuss project scope, plan, schedule, and task priorities
- Coordinated several meetings for soliciting feedback about possible features
- Worked with another dev on some WPF-specific questions regarding the upgrade of our Telerik libraries for reporting and UI controls
- Championed a project to investigate finding a simpler isolation framework (NSubstitute instead of Rhino Mocks) for unit testing; created corresponding training materials
- Performed regular team lead activities (e.g., issue management, code reviews)
Quality systems internal audit
- Became trained as DAXOR Oak Ridge Office’s internal auditor (for ISO 13485 compliance)
- Conducted functional area audits
- Management review
- Corrective and Preventative Action (CAPA)
- Complaint handling
- Call center
Customer support
- Banner Good Samaritan (preventative maintenance)
- Mayo Clinic Hospital (upgrade to 6.0.2)
- The Queen’s Medical Center (customer support; upgrade to 6.0.3)
- IDANT Laboratories (upgrade to 6.0.3)
- Dr. Feldschuh’s unit (upgrade to 6.0.3)
- VA Oklahoma (site environment issue)
R&D
- Designed a statistical experiment to look for centroid variance over multiple detectors; this was in response to an issue at North Alabama Radiopharmacy having detector issues
- Verified that with certain modifications, the main portions of BVA v6.0 would run on a Windows 10 community preview release
- Documented the hazards/risks of deploying our app to a 64-bit operating system
- Investigated how much cost/benefit would be realized by upgrading the development machines to use solid state drives
Miscellaneous
- Trained the sales team on the basics of the BVA v6.0 application
- Showed the IT Manager how to use the BVA application to assist the Director of Sales with data mining tasks related to sales support
- Worked with the IT Manager to evaluate multimedia hardware for a quality monitor/dashboard for the Oak Ridge Operations office
- Participated in several conversations with the PM so that DAXOR can be part of a computer science capstone project for Pellissippi State Technical Community College
- Sat in on several discussions involving the “ideal blood volume” application
- Decluttered the software dev area by moving the BVA-100 test units to the Engineering R&D lab
- Recycled a car-load of unwanted reference books and catalogs in the Break Room, and 97 lbs of lead batteries
DAXOR website
- Checked for press releases every Friday morning
- Fixed the broken “contact us” page
- Posted SEC forms and press releases as they were made available
- Attended several conference calls with members of the New York office and a website design firm regarding a redesigned website
Support tasks
- Performed regular OSHA-related tasks (emergency lighting checks, fire extinguisher checks, first aid kit maintenance)
- Maintained the internal DAXOR publication catalog
- Kept the internal phone number list up-to-date
- Answered customer support lines when the office was understaffed
- Acted as gatekeeper of quality for documentation on the wiki and released documents produced by the dev team
- Helped support our field technician with anything 6.0-related, including keeping his laptop maintained with the latest versions of software
- Occasionally helped the Medical Device Quality Manager with verification test or interlaboratory comparison questions
- Performed weekly maintenance on development tools (JIRA, Jenkins, SQL Source Control, Evernote, Trello)
Professional development
- Started this blog
- Technical posts
- Career-oriented posts
- Weekly professional development summaries
- Articles: ~15-25 per week
- Podcasts: ~4 per week (technology, software, economics)
- Multiple career-, technology-, and development-oriented Pluralsight courses
- Books
- The Lean Startup (Eric Ries)
- 50 Quick Ideas to Improve User Stories (Gojko Adzic and David Evans)
- Decisive: How to Make Better Choices in Life and Work (Chip & Dan Heath)
- CodeStock 2014
Community involvement
- Knoxville Software Craftsmanship Group facilitator (first half of 2014)
- Part of an inaugural group of three software devs that meets every other week to network and work on software projects
- Posted unit testing and isolation framework examples to my open-source repository
- Tutored a undergraduate student in computer science (C++, Java)
- Helped a tech recruiting company vet candidates for WPF job applicants
- Member of the Board of Trustees for a local non-profit organization
Training proficiency
- Quality Management System
- Quality policy, objectives, and procedures
- Code of Federal Regulations Title 21, Part 820 (general knowledge)
- ISO 13485 (general knowledge)
- OSHA compliance
- HIPAA compliance
- Radiation safety
- Process validation
- Device master record, device history record, design history file
- Product servicing
- Personnel training
- Risk management
- Corrective and Preventative Action
- FDA investigation readiness
- Statistical techniques
- Engineering Change Control procedure
- Document formatting
- Customer order entry
- Verification of performance specifications (VOPS) testing
- Verification and validation (V&V) process
- Scintillation detection theory
- Measured and ideal blood volume calculations
- Software development standard operating procedures