Lessons Learned While Building a Successful Engineering Team in a Small Startup
Navigating the challenges of leading R&D in a small startup: fostering a culture of excellence and success within a small, early-stage company.
There is something incredibly exciting about being involved in a company from the very beginning and having the opportunity to shape its future. As an engineer who’s infected with the startup virus, I have always been drawn to the fast-paced and dynamic environment of small companies. So, when I was presented with an opportunity to join a small software company as Head of R&D, I jumped at the chance.
It has been less than two years since met Dr. Hasan Abasi, CEO and co-founder of a small startup company, HAAT Delivery. After a short conversation, I knew that I wanted to be a part of this team.
My decision to join the company was based on the people behind it and not just the technology. I realized that while technology can change, people usually don’t. I felt confident that with the team at HAAT, we could turn any idea into a reality.
HAAT Delivery
HAAT is an innovative food delivery platform that connects customers to a wide range of restaurants in their vicinity. With a user-friendly interface and convenient features, placing an order and getting it delivered in the quickest time possible has never been easier. Our platform is specifically designed to cater to cities and locations that may lack traditional infrastructure, and we have implemented solutions to address issues such as cash payments, Point of Sale, and locations without standard street addresses.
I knew that being the Head of R&D at HAAT would be challenging, but I was eager to take on the challenge. The company was in its early stages, and there was no big engineering team in place. This meant that I would be responsible for building the team almost from scratch. I knew that this was a crucial task and that getting it right from the beginning would be crucial for the company’s success.
One of the first things I did was to establish a clear vision for the engineering team. I wanted to create a team that was not only technically proficient but also had a strong sense of ownership and accountability. I set out to hire top talent, but I also made sure to create a culture of trust, respect, and open communication within the team. This helped to establish a sense of cohesion and collaboration within the team, which is essential for any successful engineering team.
I also made sure to establish a strong relationship with the CEO. This helped to gain the trust of one another. By working closely with the CEO, we were able to align the team’s goals with the company’s overall strategy, which helped to ensure that everyone was working towards a common goal.
Wearing Multiple Hats: The Privilege of Being Involved in the Business Operations
Another aspect of my role that I am privileged to be a part of is being involved in the company’s business operations. As the Head of R&D, I am not only responsible for the technology but also actively involved in other aspects of the business. This includes participating in meetings with investors, playing a key role in technology ownership and decision-making related to R&D finances, among others.
Being involved in the business side of things has given me a unique perspective on how all the different pieces fit together. It has helped me to better understand the company’s overall strategy and how my team’s work fits into the bigger picture. It has also given me the opportunity to contribute to the company’s success in ways that go beyond just technology.
I believe that this level of involvement has been incredibly beneficial for both me and the company. It has helped me to develop a well-rounded skill set and has given me the opportunity to make a meaningful impact on the company’s success. It also helps me to make better decisions when it comes to technology and R&D because I understand the company’s overall strategy and goals.
Slow and Steady: The Importance of Gaining Trust and Understanding
Joining a small startup company can be an exciting opportunity, but it’s important to approach it with caution. It’s essential to take the necessary time to comprehend the current state of the company and gain the trust of the team before making any significant changes.
As a leader, it’s important to use emotional intelligence and be mindful of the existing team’s work, culture, and process. It’s also important to be transparent with the team and communicate the reasons for any changes being made.
By taking the time to understand the company’s culture and goals and by being sensitive to the needs of the existing team, I was able to gain the trust of everyone by showing my knowledge and proving my worth through my actions
Navigating Team Workload and Time Constraints
Managing the workload of my team was one of the most significant challenges I encountered. In a startup, resources are often constrained and time is crucial. As a result, I had to ensure that we were utilizing our time effectively and prioritizing tasks efficiently.
Instead of adhering to a specific development strategy such as agile, my focus was on delivering results. In the beginning, we were flexible in our approach and were not committed to a particular strategy.
We would switch strategies and methods, sometimes working with a physical board to map out our plan and other times using sprints to stay on track and deliver high-quality products on time.

We also made sure to regularly review our progress and adjust our approach accordingly to ensure that we were always moving in the right direction and achieving our goals.
As time went on, we gained more experience and were able to better understand what strategies worked best for our delivery nature and were able to stick to a specific method that suited us best.

Building a Winning Team
It is essential to identify team members who may not be contributing to the team’s success, and making the decision to let them go can be difficult, although it may be essential to maintain the team’s high performance.
This is particularly true in a small team where every member plays a critical role. Furthermore, keeping the team motivated and engaged amidst high pressure and tight deadlines can also be a challenge.
I made sure to foster an extremely positive atmosphere and a very fun culture within the team. I believe that a positive work environment not only makes the team feel more motivated and engaged but also leads to better productivity and performance.
Deadline Deliverance: A Startup’s Race Against Time
As an example, we had to support the ability for customers to schedule their deliveries for a specific time in the future. However, due to some unforeseen technical challenges, we found ourselves running behind schedule and in danger of not meeting our deadline.
In a normal work environment, this could have led to a lot of stress and frustration among the team. But thanks to the energetic and collaborative atmosphere in the team, everyone was willing to stay all night at work to ensure that the feature was delivered on time (pun not intended). The team’s can-do attitude, high spirits, and a strong sense of unity made it easy for all of us to work together and overcome the obstacles that we faced.
To create this atmosphere, I encouraged team members to share their ideas and opinions and provided opportunities for them to take on new challenges and responsibilities.
Additionally, I also organized regular team-building activities, such as team lunches, outings, and other fun events to promote a sense of collaboration among team members. This approach not only helped to keep the team motivated but also created a sense of ownership and pride in the work they were doing, resulting in a highly productive team that consistently produced outstanding results.
Resourceful R&D: Overcoming Limited Budgets in a Startup Environment
Another challenge is dealing with a limited budget. In a startup, budget constraints are a common challenge, and maximizing resources is a must. This means that as the Head of R&D, I have to be extremely resourceful and find ways to get the most out of limited resources.
For example, when we needed to purchase new equipment, we were required to thoroughly research and evaluate various options to secure the most cost-effective solution. We also had to prioritize which equipment was essential and which could wait. We also had to be careful when choosing partners and vendors, as we had to ensure that we were getting the best value for our money.
Another example is when we were looking to expand our team. We had to be selective in our recruitment efforts and focus on filling the most critical roles. Additionally, as a startup, our compensation and benefits packages were not as extensive as those offered by larger companies, so we had to be adaptable in our negotiations and offer alternative incentives.
Avoiding Reinvention: How Choosing Proven Solutions Can Benefit Your Team
As for software development tools, we had to weigh the costs and benefits of purchasing expensive proprietary software versus using open-source technologies. We found that by using open-source tools, we were able to save money while also getting access to a wider range of features and options.
Choosing among a plethora of open-source software options can be a daunting task. To make the best decision, we undertake comprehensive research, evaluate different alternatives and gather inputs from the team.
On the other hand, it’s important to not reinvent the wheel and instead, utilize existing solutions even if they may be more expensive in the short term. Using proven solutions can save valuable time and resources and allow the team to focus on developing unique and innovative features.
One example of this is when deciding on a container orchestration solution. Instead of investing time and resources into using K8s which required a steeper learning curve and a higher upfront cost, we chose to use Azure app service which is a fully managed service and works out-of-the-box. This ultimately proved to be a more cost-effective solution in the long run, as it allowed us to avoid the additional costs associated with maintaining and developing our own cluster, and instead, focus on delivering results to our customers.
On the other hand, given the need for increased flexibility in our algorithms, we determined that creating and fully managing our own cluster was a valuable investment. This allows us to tailor the cluster to the specific needs of our algorithms, resulting in improved performance and efficiency.
Another example is when we were designing our microservices architecture, instead of using a monorepo architecture which reduced the complexity and costs associated with managing and deploying them, we chose to have a few microservices while having a this allowed us to focus on delivering results to our customers.
Complicated doesn’t mean better. We decided to focus on building modular components that run as a monolith. If it’s built well enough, we’ll be easily able to microservice it in the future.
The Challenges of Chat Implementation: How We Learned the Hard Way to Embrace Existing Solutions
We were tasked with the challenge of implementing a chat feature for our customers. Chat? Super easy!
With a team that had a strong desire to work with new technologies, we’ll create a cutting-edge solution by building our own SignalR cluster with a Redis backplane. We invested a lot of time and resources into this project but as we progressed, we realized that this approach was not sustainable.
We had to make a difficult decision and abandon our home-grown solution in favor of an existing solution like Intercom to handle all our customer communication channels. Although it was tough, this decision proved to be the best as it saved us valuable time and resources and allowed us to focus on developing immediately valuable features for our customers.
Prioritizing and Switching Tasks
As a startup, we are constantly dealing with unexpected tasks and projects that arise and it can be difficult to know how to prioritize and switch between them efficiently.
I found that maintaining a transparent approach with the team to give them an understanding of the situation and how to prioritize the tasks that come unexpectedly is essential to managing context switch effectively in a small startup environment.
By keeping the team informed and involved in the decision-making process, they are able to understand the reasons behind the priorities and how their work fits into the larger picture. This promotes a sense of ownership and accountability, and helps team members to feel more in control of the tasks they are working on.
Staying Ahead of the Game: Navigating the Dynamic Technology Landscape in a Startup
Staying current with the rapidly changing technology landscape is a challenge. It is crucial to be aware of the latest trends and technologies in order to deliver a top-quality product.
However, it is also crucial to ensure that the technology and practices implemented are reliable and established, to prevent any potential technical problems or delays.
Additionally, it is important to take into account the team’s capabilities and the time it will take to implement new technology or practices.
Finding a balance between these factors requires thoughtful consideration and planning to ensure that the team can deliver a high-quality product while also keeping up with the latest technology advancements.
Hands-On — Navigating Business and Technical Challenges
It is a constant challenge to balance the demands of managing the team and staying hands-on with the technology. This often meant working long hours and staying up late to ensure that systems and processes were in place to meet the company’s goals and deliver high-quality products on time.
It was a challenging balance to strike, but ultimately it allowed me to lead by example and inspire my team to work toward the same level of dedication and commitment. This approach allows me to have a deep understanding of the technical challenges and opportunities that the team is facing and make informed decisions that align with the company’s overall strategy. It also allows me to provide the team with the support they need to deliver high-quality products on time.
Implementing weekly technical sessions has been a valuable tool in promoting a culture of responsibility within the team. Having dedicated time for team members to share their knowledge, discuss technical challenges and learn from one another, helps them to stay current with the latest trends and technologies, improve their skills and knowledge, and foster a sense of ownership and accountability for their work.
Additionally, I also had to balance the technical side with staying up late to work on decks and conducting plans for investors, and building the company’s roadmap with other departments. This balancing act was challenging, but ultimately it helped me to better understand the company’s overall strategy and how my team’s work fits into the bigger picture.
Summary
In conclusion, leading R&D in a small startup can be a very challenging but also a very rewarding experience. The key to success is to be adaptable, resourceful, and willing to take risks.
By implementing effective strategies, and finding the correct balance between new technology, best practices, and working code, we were able to overcome many of the challenges that we faced.
Additionally, being actively involved in the company’s business operations and involving the team in the decision-making process helped me to understand the bigger picture and to contribute to the company’s success in a meaningful way.
Leading R&D in a small startup is a journey that requires hard work, dedication, and perseverance, but the results are well worth it!