7 things to think about after your code goes live
If you are a technical lead or co-founder, there’s a lot more to code then just writing it and pushing! (Sadly.) Here is a list of things to consider that all affect how you write code. I tried thinking of a nice acronym, but all that popped into my head are the 5 S’s and 2 Mo’s. Enjoy!
1) Security — Is your website secure and safe? Make sure you’re up to speed on CSRF (cross-site request forgery), XSS (cross-site scripting), form authenticity (I love reading the tips & tricks in RailsGuides, also good for general security concerns if that’s your language), escapism (looking for a better explanation, but here’s a good one), encryption (a beast of a topic, definitely recommend outsourcing to experts), etc. For me, security means keeping all highly sensitive info out of my database as well, by, for example, using Stripe as a payment processor or Devise to encrypt passwords. That way even in the event of a database hack, there’s not really any useful information to be taken.
2) SEO — A successful website is a well-trafficked one. Now, while there are many non-code things you can do, there are also things that developers need to have their hands on, namely effective use of tags (<title>, <description>, <meta>, <h1>), etc. Loved Neil Patel’s guide.
3) Speed — Customers these days want blazing fast (speed also affects SEO), and your website should be optimized for the fastest speeds possible. Make sure you’re caching assets whenever possible (image caching is very important for most multimedia heavy websites, and I’ve written about that particular topic here), making use of asynchronous calls and background jobs where possible, and loading assets in the most efficient order. Tips in Neil Patel’s guide linked above as well.
4) Simplicity — There’s always the trade off between done and perfect, but do invest some time in DRYing up the code base and keep a record of monkey patches or weird hacks to keep technical debt low. Nothing is worse than reaching an inflection point in customers, and then realizing you need a near complete website overhaul to deal.
5) Scale — In case you go viral, be ready to handle the increased loads. Think about asynchronous or background jobs (again also impacts speed), multi-threaded environments, and at least with Heroku, dyno distribution and workload.
6) Mobile — If your product will at all be accessed on mobile devices, be sure it’s as user-friendly and beautifully-designed as your website across the entire host of mobile devices (smartphones and tablets). This means building in responsiveness (I love Twitter Bootstrap), the right interface patterns (hover effects are meaningless for touchscreens, whereas dragging is more important), and visual elements that vary based on screen size and orientation (landscape vs vertical phones are very different).
7) Administration (the second Mo, never said word creativity was my strong suite!) — There’s a whole suite of technical learning around setting up domain names and subdomains properly, configuring redirects, error pages, and email. Don’t forget to do this because it’ll often add a few days to the end of your project!
These are the things I muse about while building an on-demand rental & delivery service for outdoors recreational equipment. Check it out atwww.lastmingear.com.