Building Tech Team and Developing the Beta in 100 Days

Mostafa Sakr
4 min readMay 31, 2023

--

For The Main Thread which contains other stories (https://medium.com/@mostafa.sakr4/cto-lessons-d2b893200982)

Facing the challenge of building a robust tech team from scratch and developing a Beta product in a mere 3–4 months seemed like an impossible task. Here’s how we approached it.

The Challenge

Usually, recruiting a tech team of three to four developers can take up to three months, leaving no time for actual development. We had a chicken-and-egg situation on our hands. The development needed was based on who we could hire, and who we could hire was reflected in the development requirements. It seemed impossible to hire, onboard, and develop in such a short time frame.

The Strategy

To overcome this, I took a deep dive into analyzing the product we were going to build.

  • Break it Down: We broke down the product into smaller parts and reduced the dependencies between each part.
  • Independent Modules: We created fully independent modules which each developer could work on independently.
  • Analyzing Each Part: We asked questions for each part. Did it need to be of the highest quality, scalable, etc., or could we live with some technical debt that we could tackle after securing funding?

Tech Stack Decision

A major decision was choosing the right programming language. For CRUD systems, I generally prefer .NET, but given our need to work with Blockchain (mainly Hyperledger-Indy) and the exceptional Python Hyperledger-Indy SDK available, we decided to work with Python. This led to working with two programming languages, something I wouldn’t generally recommend at the begining of startup unless strong reasons were present.

Another choice between the two services do we actually need a messagebus? Or we can live with http comunication.

Hiring Process

Once the groundwork was laid, it was time for hiring.

  • Python Developer: We reached out to Hyperledger-Indy, who recommended a capable developer with Indy experience.
  • Frontend and Backend Developers: Utilizing recruiters and my network, I was able to hire two remote developers within 10 days, both of whom I was already acquainted with from tech meetups.

Interview Strategy

To expedite the process, we had a one-round interview for contractors that lasted two hours, with no assignments. Instead, we reviewed code with performance issues and discussed potential solutions.

For full-time employees, we had two interview rounds. If a candidate passed the first interview, we share the feedback and plan directly for the second one, no time to delay.

Onboarding and Development

Once hiring was done, it was time for swift onboarding and efficient work allocation.

  • Python Developer: I prepared a Postman collection with tests, allowing the developer to work independently, understanding the required input and output.
  • .Net Developer: I began developing the core parts and the heavy business logic parts myself, gradually assigning tasks with more logic to the new developer, so he could be productive before understanding the whole business.
  • Frontend Developer: APIs with mocked data were prepared so the developer could send and retrieve data from the API before the backend was fully developed.

These three months were a marathon of smart, efficient work. Despite the challenges, our strategic approach allowed us to build a robust tech team and deliver a beta product on time.

Lessons:

  • Swift Onboarding is Key: Creating an environment where new hires can work independently fast-tracks the onboarding process. Provide clear resources and guidelines to enable this.
  • Plan Ahead: Breaking down complex tasks into smaller, manageable parts simplifies the process and leads to more effective project management.
  • Foster Independence Among Teams: Minimizing dependencies between developers and teams boosts productivity and allows for more parallelized work streams. This also aids in reducing bottlenecks in the development process.
  • Harnessing Technical Debt for Strategic Advantage: Decide the quality, scalability, maintainbility, etc for each module, don’t invest more time in a module if not needed, it is fine to have technical dept from day one if you are aware, have a plan, and have your reasons..
  • Tech Stack Matters: Selecting the right technologies according to product requirements is a pivotal decision that can impact project success.
  • Harness the Power of Networking: Leveraging professional connections and industry networks can expedite the hiring process and bring in talent that aligns with your needs.
  • Efficient Interviews Save Time: A well-structured and streamlined interview process ensures a quicker turnaround in hiring, enabling you to build your team faster.
  • Work Smart, Not Just Hard: Strategic planning, effective teamwork, and efficient execution are more important than just putting in long hours. They can help you overcome significant challenges.
  • Communication is Crucial: Establish clear lines of communication from the outset. This promotes understanding, prevents miscommunication, and ensures everyone is on the same page.
  • Maintain Focus on the Goal: It's easy to get caught up in the details and lose sight of the end goal. Always maintain focus on the overall objective to ensure all efforts contribute to the desired outcome.
  • Adapt and Overcome: Things may not always go according to plan. Being adaptable and prepared to adjust your strategy when needed is an invaluable approach to ensuring project success.

--

--

Mostafa Sakr

Senior Polyglot Software engineer with strong experience in Scala, BlockChain and .NET