7 Lessons From Building Websites for 10 Years - As a Side Hustle
10 years ago I received a call from my friend asking me if I knew how to develop websites. He had received a 411 from his mother that the company she worked for was looking for someone who would develop a website for them. The mother had seen my friend and I do a few things using computers and thought the son could actually do the job.
My friend called and asked me to develop a demo site that we can present on Friday (It was on a Tuesday). Having only learnt VB.Net and JAVA for the last 2 years at the university, that meant I had to pass the opportunity to another friend of ours. Somehow our friend never picked up the phone. A few things were at stake (especially the $150) and I decided to take the next few nights off getting to know how its done. Fortunately, the friend (who did not pick the call) had given me a CD with Dreamweaver software and there were a few website templates that I could experiment/learn from.
To cut the long story short, we did a demo on Friday, not aware that then when you used HTML it appeared different on different browsers — Shock on us while making a demo using Internet Explorer! I still remember the shock on their faces when the panel saw one of the ugliest, most defaced website they have ever seen. I told them to give me a few minutes to fix it. I quickly remembered I had used Mozilla at home, I installed it on that laptop and showcased 15 mins later and we got the job — (and the 50% down payment). One of the best moments in my life! Over the next few weeks I had to figure out exactly why it appeared different on different browsers and that was my welcome to Web development. That was early 2011.
To date, I have worked on slightly above 40 websites and on this blog I narrate some of the things I have learnt over the last 10 years while building websites as a side-hustle. I prefer working with websites as they take a shorter time (mostly 2–3 weeks) to build and they are less complex. The other reason I preferred websites is because for most of the time I have been employed full-time so less time to work on complex web development projects. As I share my journey please note that most of my clientele over the years includes friends, friends of friends that I met in college friends of colleagues, relatives and numerous referrals.
Lesson 1: The first meeting with your client is the most important.
If someone calls you and they are interested in a website, there are 2 things you should ask: Is it a new business(where most of my clientele fall) or is it an on going business? If it’s a new business, you should take a consultancy hat in order to really understand the business — most new business owners don’t really know what they want to achieve with a website. If its an ongoing business, get to go through the current website (if it exists) — do a small questionnaire on what worked well and what didn’t work. If there’s no website, ask for company profile, pictures and visualize using the info gathered.
At this point, let your yes be yes and no, no. Ask, inquire, verify using all means — get back to the client and verify whether what you have in mind is what they really want. After this, create a proposal carefully documenting what was discussed and make it clear that the scope of the website will be per the proposal.
Lesson 2: Always ask the client their budget, explain what every cost entails.
The major costs for websites include domain and hosting (annual cost) and your cost for building the website. Based on what you have gathered in lesson 1, make sure you have all your costs aligned. If you will be using plugins — make sure the costs are factored in. Compare costs for different hosting providers — to get some good profit margins and reduce downtime. It would be great to get shared hosting as opposed to dedicated hosting which can be rather complex to setup/configure, since most websites don’t require major resources.
Don’t be too fast to quote your price, always ask the client their budget before quoting your price. Its very easy to over quote and lose a client, or underquote for complex websites ending up frustrated along the way. Work on your negotiation skills or learn on various videos/blogs online. Explain what can be done with the budget, carefully giving examples and ensuring the client understands what they will get with the budget. If it’s a website that will need to be maintained afterwards, negotiate on the maintenance cost upfront and agree on payment. I normally make slight changes for free and charge for any major structural changes or added capabilities needed later.
Lesson 3: Think long-term, act short term
One client will lead to another, make sure you do a good job and work with integrity. When it comes to the site that you’re making make sure you build a good website according to the clients requirements. For example, if a client business will need an e-commerce site later make sure you create the site in a way that it will be easy to upgrade later.
During my early years, I would make static websites only to get called time to time to edit text/pics or add a blog etc. I quickly switched to WordPress (CMS) which made it easier edit info/ add widgets etc. Don’t create a website in a way that will need a lot of work later, since the initial payment you get is most likely the only money you get (especially for new businesses).
Lesson 4: Getting Deeper
2 Years into building websites I realized that with every new year a lot changed. Fortunately enough I was working at m:lab East Africa/ iHub and I was surrounded by many like-minded people. I got deeper into the craft — i learnt new things and experimented with new frameworks that were coming up e.g. when I was starting out the major CMS used was Joomla and by 2013 Wordpress was quite popular, on the other hand Codeignitor was very popular when I was starting out but newer frameworks like Laravel were coming up. On front end HTML5 kicked in 2012/3 and it grew to the level where you could make android apps with it. I delved into HTML 5, Jquery and numerous CSS based frameworks like bootstrap and Material Design that were gaining popularity then.
Lesson 5: Choose a side
Towards end of 2014 and beginning 2015 web development shifted to JavaScript, python and the microservices architecture. This was a major shift! Web development suddenly became an “ocean” in the next few years. Various Javascript frameworks meant front-end grew wings and developed into the giant it is today. The older popular frameworks (mostly backend) were overtaken with time by newer frameworks and many other languages. A simple task like uploading files to the server become more efficient with github and led to a whole industry on DevOps, CI/CD and QA; due to the decoupling of services (it was there earlier than 2014, it just became more popular).
I considered myself full stack dev — though the meaning here was I remained a monolith dev. Web development past 2017 meant one had to chose a side especially if one wanted to get a job in most startups since most software engineering jobs are also decoupled.
Lesson 6: Try out new projects
I lost count of the different projects I joined up with friends to work on. I call them vanity projects. During this time, I learnt a lot, experimented on different concepts and learnt other accepts of building startups mostly the business side. Hackathons, pitching competitions, code labs are good examples of how one can apply their skills on different kinds of projects. Start projects that can potentially grow into business — if they don’t, take your experiences with you and try out the next project. This way, one will always be on a learning cycle.
Lesson 7: Attend events, Join Communities
There are numerous events organized for devs such as meetups, tech forums, tech conferences, code bootcamps, hackathons etc. Being part of a meetup or following online communities geared towards your favorite language/platform/framework can be a huge leap towards getting better at the craft.
As a software developer it is easy to work alone or only relate to fellow developers in your team. As much as there’s nothing wrong with this approach, you can definitely gain more by being part of a group and benefit your career and professional development.
Personally I learnt alot during my time at iHub organizing developer conferences, hackathons and allowing communities to have their meetups there. To date I still follow the different discussions that go on in the groups and the different things devs are working on. I also set up up a site that lists most developer communities currently in Kenya and a few added features like dev profiles.