MOKA Analytics
Avatar of twschiller
Head of Engineering at MOKA Analytics

We use Microsoft Azure because many of our clients are already Azure for their private cloud. Additionally, Azure supports App Service Environments (ASE), which isolates the application resources and gives us a static IP for securely accessing external resources

Additionally, MSSQL supports columnstore tables which is critical for running fast analytics over large datasets Microsoft Azure

READ MORE
3 upvotes2.3K views
Avatar of twschiller
Head of Engineering at MOKA Analytics
Shared insights
on
JavaScriptJavaScript
at

The application front-end is written in JavaScript (ES6). We originally selected it over TypeScript because many library typings at the time were still flaky and the transpilation time was slow.

We are now re-considering TypeScript because 1) the tooling has improved significantly, and 2) and the root cause of the majority of our front-end bugs are related to typing (despite having PropTypes). JavaScript

READ MORE
2 upvotes11.6K views
Avatar of twschiller
Head of Engineering at MOKA Analytics
Shared insights
on
ZendeskZendesk
at

We use Zendesk for customer support and hosting documentation. Additionally, we provide documentation search from within our application using Zendesk's API Zendesk

READ MORE
1 upvote12.5K views
Avatar of twschiller
Head of Engineering at MOKA Analytics
Shared insights
on
HighchartsHighcharts
at

Highcharts provided the best tradeoff between customization and pre-built chart coverage Highcharts

READ MORE
1 upvote12.4K views
Avatar of twschiller
Head of Engineering at MOKA Analytics
Shared insights
on
D3.jsD3.js
at

We use D3 for creating custom charts that aren't available in off-the-shelf libraries D3.js

READ MORE
1 upvote10.8K views
Avatar of twschiller
Head of Engineering at MOKA Analytics
Shared insights
on
ConfluenceConfluence
at

We use Confluence for specifications and knowledge sharing. We chose Confluence over other wikis primarily because of its integration with JIRA Confluence

READ MORE
1 upvote1.1K views
Avatar of twschiller
Head of Engineering at MOKA Analytics
Shared insights
on
BitbucketBitbucket
at

We use Bitbucket and Bitbucket Pipelines because of its tight integration with JIRA and code authorization features.

The primary drawback is that its extension ecosystem (e.g., PR review tools) is miles behind Github Bitbucket

READ MORE
1 upvote398 views
Avatar of twschiller
Head of Engineering at MOKA Analytics
Shared insights
on
ReduxRedux
at

Though Redux makes encoding some interactions unnatural, the ease of debugging makes it worthwhile. Additionally, Redux makes it easy to implement saving/bookmarking/sharing just by serializing state

Redux's middleware is great for separating concerns, e.g., requests, errors, telemetry, etc.

Our reducers use immutability-helper to update state

Redux.js

READ MORE
1 upvote229 views
Avatar of twschiller
Head of Engineering at MOKA Analytics
Shared insights
on
DjangoDjango
at

Django takes the hassle out of building an enterprise web application using Python.

  • admin app for administration
  • ORM for deploying against different database vendors
  • social auth package for authentication with enterprise IdP
  • guardian package for authorization

Django

READ MORE
1 upvote126 views
Avatar of twschiller
Head of Engineering at MOKA Analytics
Shared insights
on
CeleryCelery
at

We maintain a fork of Celery 3 that adds HTTPS support for Redis brokers. The Winning Model currently uses Celery 3 because Celery 4 dropped support for Windows.

We plan on migrating to Celery 4 once Azure ASE supports Linux apps Celery

READ MORE
1 upvote68 views