Overview

  • This is a freelance, part time position, evaluating software design, architecture and engineering practices
  • Tech DNA is a great environment for the second half of your professional career

A Tech Due Diligence (TDD) Consultant at Tech DNA is an experienced software engineer or architect with at least fifteen years of hands-on experience building software systems.  You will participate in project teams engaged by Tech DNA clients to evaluate the technology, processes and team of potential “targets” our clients are considering acquiring.

The key responsibilities of Tech DNA consultants vary depending on the role you take on an engagement team.  Key qualities are:

·       Comfortable making trade-offs on depth vs. breadth of investigation and prioritizing areas based on experience and an understanding of the key goals of our client for this engagement. TDD engagements are rarely longer than 3 weeks, and typically are 1-2 weeks long so prioritization and focusing on the most important areas is essential.

·       Strong communicators, both in written and oral form.  Our main deliverable is a 30-60 page report that we write collaboratively during the engagement and that summarizes our findings.  Being able to explain our findings to both tech- and non-tech stakeholders at our clients is essential.  Clear writing, use of diagrams and tables and other techniques to summarize information is an important skill.

·       Able to work on tight timelines, including typically having a preliminary draft report within one week of meeting the target tech team and gaining access to code for the first time.

Our TDD consultants usually play one of two roles on a team:

·       Best Practices: focusing either on the overall architecture (including major components, data stores, data flows, API, deployment models, etc.); or on software development best practices (including technical documentation, code quality, testing, development processes, etc.)

·       Best Practices: focusing either on the overall architecture (including major components, data stores, data flows, API, deployment models, etc.); or on software development best practices (including technical documentation, code quality,

Each project is led by an Engagement Manager (EM) who is an experienced TDD Consultant and who assigns the specific tasks and acts as backup and coach to the team.

Specific Duties – Best Practices Evaluation
·     In consultation with the project EM, take ownership for evaluating how the target shows up in several of the software development best practice areas we evaluate, including:

o   Technical Documentation

o   Development Process

o   Testing

o   Code Quality

o   High Availability

o   Disaster Recovery

o   Scalability

o   Third-Party Software and Open Source Licenses

o   Operations

o   Security

o   Localization Readiness

o   Accessibility

o   Sustained Engineering

o   User Documentation and Support

·     Ask questions of the target tech team to elicit their approach in these areas, and compare their responses with other evidence available to us (e.g. Git history, bug list, code, tech docs, etc.)

·     For each area you are responsible for, develop a rating of the relative risk this area poses to successful execution of the deal: Red (high risk); Yellow (moderate risk); Green (minima/no risk) and be prepared to defend the risk rating you select to other consultants on the team, the EM and the client.

Specific Duties – Architecture
·     Either acting as the lead consultant on the architecture, or assisting that person, evaluate the strengths and weaknesses of the target’s architecture as built.  Consider how well factored it is, whether it follows typical patterns or uses one-off approaches, how scalable it is, how flexible it is, etc.

·     Assess whether appropriate storage mechanisms are being used, including cloud native options like managed PaaS offerings, and whether the storage is used in an effective and appropriate way.

·     Draw a high-level architecture diagram of the target, identifying the major components, stores and how they interact.  Highlight third-party dependencies, entry points (e.g. web APIs, data integrations, etc.).

·     Describe the data center footprint of the target (if appropriate), including showing how the deployment is hosted (either in colos or in cloud data centers) and the characteristics of the servers (size, role, etc.).  Indicate any geo-distribution of the service.

·     If there is a public API to the service, evaluate whether it is well-structured and documented, whether it is secured, versioned, etc.

Specific Duties – All Roles
·     Coordinate with other consultants on getting access to the code and asset delivery from the target and promptly download and extract any delivery, calling out any problems or apparently missing pieces.

·     Contribute questions in your areas to the daily Q&A cadence, sent to the target by the conclusion of each day and track responses to your questions.  Followup as needed.  Promptly call out to the EM any incomplete or missing answers for possible followup.

·     Be an active participant in the architecture review meeting with the target.

·     Contribute to the Interim and Final report out meetings, summarizing your findings for these.

·     Take ownership of follow-up items from the client in the Interim and Final report outs and ensure they are responded to in a timely manner.