Logo

Who is talking?

Archive

Picking up the pen again

about 2 months ago | Aishwarya Singhal: Aishwarya Singhal

I haven’t written much in recent years, at least not publicly, and I decided now would be a good time to start again. I also haven’t written much code in recent years, so I decided to re-write Factile in a more popular tech stack. It has been a great experience for various reasons: I could resurrect Factile which has been sitting on a broken server for past 3 years with me having no time to fix it I could experience first hand some of the techs my colleagues have been talking about - its been extremely fulfilling … and it gives me confidence that I can still write a fair quality of code It took me about 4 weeks of few hours a day to completely rewrite it, and I followed the engineering practices I have been coaching my teams on. Factile has been re-written in Node JS and React JS, something that has been a trend for a few years now, and I believe represents a robust developer community. I discarded Scala as a the language for Factile primarily because the frequent churn in the language made it extremely difficult to keep the stack up-to-date and stable in the past, not to mention the fact that it still has a niche in developer community as compared to the ultra vibrant JS community. I chose Cypress for browser testing because a) I wanted to see what the fuss was about, and b) I absolutely love the idea that you can stub API calls inside of tests Finally, I use UptimeRobot for monitoring, CircleCI for continuous integration and APIDoc for, well, API documentation. Of these, APIDoc suprised me the most - it is just amazingly simple to use, and simple to extend (which I did in a way because I did not like the default template/ color schemes). I have been using CircleCI since 2015 and I think recently, it has become incredibly complex with poor documentation. I could have used TravisCI I guess, but I’ll stay with Circle for now. Oh yes, I didn’t use Typescript. Why? I personally don’t like my JS code to have a need to compile, and I feel that instead of writing types for JS, I would rather write code in Scala (or Java, or Kotlin) ;-)