Hello, Web Technologies!

I’m a first-time entrepreneur and I’ll be recording my learnings and experiments over time. I am always eager to interact with interesting people and learn new things. Please say hi to me on twitter @k2_181.

I have a Ph.D. in large-scale data-intensive science (the academic precursor to big-data) and I’ve worked in a couple of big-data companies (Greenplum, EMC and Qubole) earlier and built some fairly complex software. I had pretty good depth in a couple of niche areas, but I was nowhere close to being a full-stack developer. I will admit that I was a little embarrassed by it.

When my co-founder and I started talking about the business idea, it became apparent that the product would be heavy on web technologies. I decided to take up the challenge. At first, it was a little daunting — there were so many options in languages, frameworks, libraries, hosting providers. Fortunately, I’d spent a long time navigating large problem and solution spaces — some of the grad school training came in handy. I finally ended up with the following choices — would love some feedback from experts.

  • AngularJS — I liked that it forced developers to think and code more systematically. It does have a bit of a learning curve, but as I worked through some examples, it all seemed to make sense. I looked at React.js briefly, but it seemed like it was a small piece of the puzzle. There are a lot of articles talking about moving from AngularjS to React — but I haven’t faced any of these issues, yet.
  • Charts.js — I had to show some nice charts and looked at a few options including AmCharts, Rickshaw and Google Charts. I went with Charts.js primarily because of Angular-chart.js that bridges AngularJS and Charts very nicely.
  • alasql.js — I wanted to be able to add new charts quickly. Many charts were simply applying filters and aggregates on small tables. I chanced upon alasql.js which allows you to run SQL inside the browser against in-memory structures! It allowed to create multiple charts from the same input data and avoid clumsy aggregations in javascript or server-side call per chart.
  • (See edit) MaterializeCSS — while reading some blogs, I stumbled upon Material Design principles by Google. It seemed to make sense, and more importantly, it was visually appealing. MaterializeCSS.com is a front-end framework built on these concepts and has good documentation. Edit: I’ve actually dropped using MaterializeCSS in favor of Angular Material which played well with my angular app.
  • Dropwizard — I’d dabbled with Ruby-on-Rails and Python-Django for web services backend earlier. I’d never liked them — there was simply too much magic and it was easy to build up technical debt with them. I was much more comfortable with Java, but the traditional servlet programming and deployment seemed very outdated. Dropwizard combined the best of both worlds for me — it was good ol’ Java, but it had features to speed up time-to-v1. I also considered Play Framework for a bit, but it seemed too new at this point and had too much magic.
  • Heroku — I looked at Google App Engine for a bit. However, I felt there was quite a bit of lock-in. If I wanted to use Dropwizard, I’d have to go for a managed VM — which seemed like too much work for now. Heroku worked out great — I could choose the language / framework of my choice. Their documentation was great. Furthermore, I could just live on free dynos for now.
  • RabbitMQ — I needed a queue to do background processing work. I’m planning to use RabbitMQ.

The app is coming along well so far and I haven’t regretted any of these choices, yet :) I’ll be sure to write a follow-up post when things are further along.

Siva Narayanan

I am known to be "the CTO of one, the father of two, and the roasting baba of many."

More of our stories from

Engineering
How we created a Medium-like blurry background effect

Here's how we improved user experience, decreased load time and made Fyle accessible for users without a fast internet.

Read more...
Bye bye WordPress, welcome Webflow.

This blogpost documents our journey as we bid goodbye to WordPress and migrated to Webflow.

Read more...
How we reduced our website build time by 59%

I came up with five 3 second changes to reduce the build time by over 59%. Here's more about my experience.

Read more...
Hello, Web Technologies!

I’m a first-time entrepreneur and I’ll be recording my learnings and experiments over time. I am always eager to interac

Read more...
The Non-Boring Guide to OAuth 2.0

If you’re developing an application that needs access to a user’s Google / Facebook / LinkedIn information, you’ll need

Read more...
Dealing with Nested Objects in your Web Application

A couple of weeks ago, I ran into a peculiar problem that I think might be useful to talk about. It took me a bunch of

Read more...
Eliminate Boilerplate Java code with Lombok

I’ve been writing a lot of boilerplate Java code, lately — getters, setters, hashCode, equals and toString. Actually, I’

Read more...
Hello, Web Technologies! — Part II

This is a follow-up to my first post about technology choices I made while building out our product. I wanted to pen my

Read more...
Sharing Files using S3 Pre-signed URLs

Amazon’s S3 is a reliable, cheap way to store data. We use it to store user-uploaded images and documents as s3 objects

Read more...
JSON Web Token Concepts

There are many technical articles about JSON web tokens (JWT) on the interwebs, but I haven’t found one that explains...

Read more...

All Topics