Version 2.91 of Workio app now live, available here.
As CTO at Workio, I've spent the last 12 months building a SaaS platform that is very nearly ready to launch. It's been a hugely interesting and exciting journey. Tougher in many ways than I expected, frustrating at times, but I've met great people, learned a lot and its been highly rewarding. Feeling grateful, I thought I'd jot down a few of the things I've learned along the way.
Considering building something yourself or perhaps just interested? Either way, I hope the tidbits in this article are of use to you. If you like, comment and/or share on social media that would be very much appreciated as we get ready to launch!
Tell me something I don't know (I hear you say). But are you really listening!? Just because you coded 10 years ago does not mean you are going to be the world's most epic coder overnight again. Trust me when I say you have a lot to pick up to get back up to speed. Sure, the fundamentals of coding remain very similar - we are using logic to solve problems - but the tooling and infrastructure now are totally different and far more sophisticated.
To build SaaS and web apps now you will need advanced knowledge and real-life practical skills in at least the following: JavaScript, ES6, Node and ideally Express for building API's, a front end framework of your choice, like Vue (my favourite) or React.
Then you need to be able to set up and manage databases, know how to pick the right one for your data - structured or non-structured, SQL or NoSQL.
You will need to understand authentication options, identity management and server administration to a degree; as even though serverless is now very usable, you still need to know your way around a server so that at very least you know what it's taking care of for you.
Front-end and back-end is a common separation, with the rare so-called full-stack developer being in high demand.
In my opinion, you don't need to be able to do both. Sure it's handy, and as you progress it is needed, but to start, maybe just specialise in one area first.
For front-end, there are tonnes of frameworks like bootstrap, material design and materialize. Don't build your own, don't think you need to learn them all. Just pick one you like and get good with that one. Learn how to use SaSS and how that is better than CSS.
If its back-end, pick a language and go deep on it. I choose Node as it's very popular, and because it's JavaScript which I already know, but other great options are Python with Flask, GO and possibly even RUST if you want to build something low level.
If like me your temptation is to just build something, you will probably just want to jump directly into the code, add some components and "just do it".
Trust me this is bad and more expensive in the long run.
It will look poor. There is a reason that people say design your screens first and that's because you will waste endless hours twiddling with design, CSS and cross-browser testing if you don't.
And get a proper designer who can use Figma, InDesign or Sketch. These tools are amazing; they actually build a lot of the SaSS for you so your developer can focus on back-end code and logic.
Pretty much gone are the days of hacking about in CSS for hours. Make peace with that fact - hire a designer.
Just because you use AWS or GCP does not mean that your app is perfect out the box. My most hated buzz phrase at the moment is "Security by design" as if using a cloud is inherently secure, right?
Wrong! This is so important - if you use a cloud, you have to set it up carefully, correctly and ideally with the help of someone trained and experienced.
Please don't just set an app live without giving it the proper care, pen testing, and hardening that it needs. Clouds do not mitigate good security practices and set up so don't be fooled.
The stereotypes are BS; technology is a hugely sociable, vibrant industry, with tonnes of forums, chat rooms, real-life "meet-ups", conferences, bloggers and more.
If you are going to succeed in tech, use these networks, meet people, learn from them. Really engage with the community and you will get so much out of it.
Make sure you set up on StackOverflow, GitHub, and join the relevant Slack or Discord channels for your areas of interest. Want to hire a coder? Just ask around online and you will find someone who specialises in the problem you are trying to fix pretty fast.
Some of the best technologists like to work remotely to minimise travel, downtime and distractions. Don't let this put you off working with them.
You may think you need everyone in the office with you all the time. But trust me you don't.
Not only does it add cost, but it also slows you down. I have had nothing but success working with remote developers. Just know where and how to ask, and listen to how they want to work.
You will not be able to build SaaS on your own. Get over the inclination or arrogance that you can. You will not succeed.
Building anything meaningful is a team sport. Building SaaS is highly complicated and requires a broad set of skills.
Figure out what you are really good at and do that. Get paid for it even. Hire other people who are good at the things you are not. Work with several people good at different things. The art and skill is in building an epic team, not by trying to do everything yourself.
It's really hard to build something amazing.
Time and time again it has been proven that it's not the person who is smartest that gets the furthest. Its the one who does not give up, who learns from their mistakes fastest, changes and tries again in a different and better way.
Thomas Edison once said "I've not failed I've just learned 10,000 ways how not to do it". Trust me, we tried a lot of tech before we finally settled.
Keep learning, keep growing, keep focused on your goals. That's my biggest tip, so dig deep.
Well, that's it for now. I'm sure there is more, but these are the things that jumped to mind. Hope there's something useful in there for you.
Whatever your working on best of luck and I look forward to sharing our platform with you soon.