Dev update January 2018

Welcome to the Streamr team’s first developer update! I’m Aapeli Haanpuu and I’ll be here to update you every month about how our software development is coming along and what each member of the team has been up to during the last 30 days or so. Let’s get started!

In January, everyone arrived refreshed from our Christmas holidays and got back to business. That meant going through all the hanging pull requests and JIRA tickets. After a long session with the whole team they have now been merged and resolved. Also during the last month, we hired two new developers, Mariusz Roliński and Kare Nuorteva. Welcome to the team, Kare and Mariusz!

Here’s what else we managed to complete:


  • Reviewed and merged a bunch of pending pull request with the team
  • Debugging and fixing Engine stability
  • Some code cleanup
  • Fixed bug related to parsing integer module options after switching JSON parsing to Gson
  • Added SPF DNS record to to help prevent email spoofing
  • Roadmap for Ethereum-based identities and authentication + MetaMask signing demo


  • Found bug (with Henri’s help) in Grails 2.3.11 while working on fixing performance issues related to list pages and search. Quick-fix: inactivate the code section causing the problem for now, wait for upcoming Grails 2.5.6 upgrade to see if bug still persists.
  • Renamed “PassThroughModule” to “RequireAll” and rewrote help text.
  • Noticed and fixed bug with “IntegerParameter” caused by landing new features
  • Write upgrade guide for developers for upgrading to Grails 2.5.6 to make the transition, hopefully, smoother
  • General refactoring of code and removing unused code
  • Couple of hotfixes to address issues resulting from mass pull request closing in Zug. Including fixes to unit and functional tests.
  • Fixed a bug with the TextField module
  • Renewed the permission system of the resources in the application
  • Turn engine-and-editor project from a Grails plugin to a Grails application.
  • Fix issue in code: CanvasDeleteTasks not created for ending ad-hoc canvases
  • Investigated and fixed perplexing serialization exception. Updating FST library fixed issue.
  • Worked on Pagination of API list endpoints to increase the performance (still in progress).
  • Restructured code to remove some potential security issues with JavaModule
  • Refactored minor fixes in branch Clear state fixes to be more readable
  • Fixed unit tests in master branch after multiple pull requests landed
  • Remove unused AWS S3 jar and code from codebase which coincidentally solved a migration bug Kare was having
  • Remove unused Twitter and MongoDB feeds and libraries from code base
  • Fix unit, integration and functional tests in master. Also fix issues in code raised by them.


  • HTTP Module security fixes
  • Added canvas notifications: notify user that side-effect actions won’t be performed when running in historical mode
  • Start using Parity as a back-up for mainnet Geth (affected by
  • Ran into issue
  • Make string concatenation module variadic (i.e. accept any number of inputs)
  • Started tutorial screencasts. Stay tuned.
  • Onboarding a new dev, welcome Kare to the team!
  • Helped formatting the Chinese version of FAQ
  • Writing smart contracts for the upcoming data marketplace


  • Finished functional tests for the Reacified Dashboard editor
  • Finished the change that landing page is built before taking the old one down (minimize downtime)
  • Implemented translation for Contact Form in Landing Page
  • Implemented web Spanish translation
  • Translated Notifications and CredentialsControl into React
  • Started the work of translating the Stream show page into React
  • Finished translating Dashboard page into React (it’s merged!!)
  • Helped Mariusz to update main website (localized Link and new Nav)
  • Fixed the user timezone autodetection issue (no more Zulu)
  • Fixed the Flowtype type system


  • [FAQ]Fixed linking to /cn/faq
  • [FAQ]Fixed youtube vids embedding — they don’t keep playing while being invisible
  • [FAQ]Re-introduced Dropbox Paper into the landing page build process (we’re using Paper as CMS again)
  • [FAQ]Introduced separate Paper docs for each environment (prod, dev)
  • [FAQ]Added “Back to top” link
  • [FAQ]Made external links open in new tabs
  • [FAQ]Replaced token sale dropdown and links with FAQ dropdown and links (it’s also an update for the nav on mobile)
  • [FAQ]Added new icons, more styling, and few structure changes
  • Made site nav scrollable on mobile
  • Updated eslint (mostly about whitespaces at eols, bofs, and eofs)
  • Fixed many site responsiveness issues
  • Fixed clickability of the most top dropdown item
  • Fixed navigation issues on different screen sizes
  • Created a new, smart component
  • Helped deploying i18n for contact form
  • Resolved my own post-review concerns around Spanish translation branch
  • Created a rough background animation prototype for the upcoming landing page update —
  • Introduced a single file that holds screen size breakpoints and use it for @media and MediaQuery (css and jsx)
  • Started to develop Twitter bot for Rocket.Chat


  • Onboarded
  • Studied Groovy/Grails tech
  • Shared IDEA settings for all developers
  • Implemented backend rest api endpoints for:
  • Challenge
  • Identities
  • Studied Redux
  • Started working on UI for Identities

Stay up to date

Get the latest Streamr news and articles delivered to your inbox