I have done a few startups and joined some startups as an early employee; nowadays, I talk to and mentor multiple startups today. The startups I focus on are internet startups, and here are some tools and methods that I invariably see them using. 🧵 👇
After buying a domain, one of the first things is to set up an email and other team communication systems. I have been exclusively using Google Suite and Slack for the last 7-8 years and recommend the setup for new startups.
2️⃣ Version Control
If you are writing code, collaborative code version control is a must-have from day one. After using CVS, Clearcase, SVN, and git, I have stuck with git for the last decade. Bitbucket, Github, and Gitlab are good enough services. I have used Github the most.
3️⃣ Project Management
Startups are exciting, and in the early days, there is a passionate haze in the air. The initial team often seems to have a mind-melding exercise where the right things happen without written requirements, stories, tasks, or project plans.
3️⃣ Project Management
I have often started with a shared TODO list moved to Asana before settling on JIRA for tracking stories or tasks.
I remember installing Bugzilla at three different startups as one of the first things with a code version system.
4️⃣ Documentation
We are running fast; we don't have a product-market fit; things change so quickly; what's the point in documenting. I hear this a lot, and these are good arguments sometimes.
4️⃣ Documentation
I still recommend creating essential documents around goals, architecture, decisions, vision, values, etc. The act of writing improves the quality of our thought process, and these artifacts are handy for people joining your mission and cause when you are small.
4️⃣ Documentation
Github, Confluence, Notion, and Google docs; I have used all four at different places.
5️⃣ API documentation
The world runs on APIs today. Our APIs now have multiple consumers (web, other services, mobile apps), and we must document our APIs. I have often used Swagger for API documentation, but I keep going back to Postman for this.
6️⃣ Analytics and A/B
Analytics is a big topic and probably deserves an entire post. Analytics is super important, especially for a product still trying to find a product-market fit. I have built products with Heap, Mixpanel, Amplitude, Segment, and Google 360.
6️⃣ Analytics and A/B
We can efficiently run A/B tests with in-house systems, and there are plenty of reasonable solutions like Optimisely, Google Optimise, Apptimize, LaunchDarkly, etc. Test your growth and product usage hypothesis continuously.
7️⃣ Customer communication
I may be an unpopular opinion in the microservices world where each service is responsible for its data and might also be considered responsible for relevant triggers etc.
7️⃣ Customer communication
I first made a communication system based on user properties, system events, and time-based triggers in 2003 and have fallen in love with a centralized way of sending customer communication.
7️⃣ Customer communication
Between 2012 and 2018, I discovered and integrated with customerio, intercom, Marketo, and Vero. These companies had built a product around customer communication that I now recommend to all founders.
7️⃣ Customer communication
The latest service I discovered is MessageBird, and I now believe new startups should work with one of these feature-rich services instead of reinventing the wheel on customer communication.
8️⃣ Tag manager
The tag manager is probably the most ignored tool in the startup world (unless one of your founders has serious marketing chops). I have seen growth and product teams adding and removing multiple third-party JavaScript pixels as ad-hoc tasks.
8️⃣ Tag manager
Save time from the engineering team and integrate Google Tag Manager from the first day.
9️⃣ Monitoring
It was a good, relaxing evening. My team was out partying. Suddenly we were on the first page of HackerNews and were getting some love from Reddit at the same time. Our services buckled, and we found out when friends called.
9️⃣ Monitoring
Set up monitoring and alerts for your services and infrastructure as soon as possible. APM solutions like DataDog, NewRelic are good at alerting, and almost all third-party services integrate with slack or Pagerduty.
🔟 Recruiting
A recruiting tool might seem like an odd choice in all the tech tools. I recommend skipping the Google sheet and going for a simple Applicant Tracking system for your startup as soon as you start hiring. There are many options. I have used RecruiterBox & Lever.
🌐 CDN
CDNs are not just for big startups. It's super simple to get behind CloudFlare or AWS CloudFront. Even in the short run, you end up saving money with a half-decent configuration. Security, speed, and savings CDNs give you all three.
⚙️ Continuous integration
Don't deploy manually, ever. Jenkins is a solid start, but many other CI solutions are simple to start. If you start deploying manually, you leave a lot of room for manual errors.
JavaScript has come a long way in the last 20 years. When I started working on the web in 1997, most websites were static. When I clicked on a button or link, the web page was refreshed.
Things changed quickly, and we started to recognize the power of JavaScript. Making pages interactive became fashionable, and HTML was briefly renamed to DHTML (Dynamic HTML) by part of the industry.
👴 The early days At this point, we used JavaScript primarily for simple interactions, and many developers used Flash for websites that genuinely wanted to be interactive. Flash at that time was better than the Java Applets we were developing a year ago.
I was a lousy manager. I want to talk about my top 6 mistakes here.
These are also the mistakes that most of us starting on the managerial path make, and hence I hope some of the readers will learn from my mistakes and avoid making them on their own.
I managed a small team and project; I was not happy with some of the crashes we saw in production. I reviewed the code for this product and found several glaring mistakes. I blasted the developer in front of everyone.
ℹ️ Not giving critical feedback properly
Years later, one of the team members became friends and told me it was her first day, and she was petrified of me, and her focus was on avoiding mistakes instead of creating innovative products.
My team today uses React Native and while I might still consider native iOS and Android apps for some applications, I would invariably look at React Native (RN) as a worthy option.
What are your favorite React Native features? Here are mine - 🧵 👇
🔥 Hot reloading - Anyone who has done serious Android development or testing knows that they end up spending upwards of an hour every day in 20+ compilations they do daily. Hot reloading in RN saves a lot of this time.
💫 Code Push - I have already written about how Code Push can be a savior a lot of times for developers trying to fix a nasty bug in production. Code Push also manages to short circuit the slow iOS approval process.