Marko Mikulicic

Marko Mikulicic

I’m Marko and part of the Cesanta Software Engineering Team since November 2014. I previously worked with Sergey, our CTO, in Google. I also worked in academia for few years where I ran a few projects in international cooperation, and I did a bunch of other things here and there. In Cesanta I work on our IoT solutions, aiming to make IoT development simpler and securer for all. I like to know how things work, and the best way to do it is to make them. I like living in the middle of nowhere; my preferred network is IP-over-donkeyback, but it turns out you can find rusty phone cables growing out from every swamp nowadays.
Marko Mikulicic
Marko Mikulicic

IoT Platform Design Doc: Double Trouble

An interpreter for a dynamically typed language needs to encode values in such a way that the value type is accessible at runtime alongside the value itself. There are a few tricks to encode the type compactly. Here, we discuss a quite common and ingenious trick, shared with some well known JS virtual machines.

Design_Doc_Double_Trouble.png
Marko Mikulicic
Marko Mikulicic

IoT Platform Design Doc: Compacting GC

One of the things that make programming today so much more approachable is the the automatic memory management feature of many high-level programming languages. However, exactly this piece is often missing from embedded platforms, and there is a reason for that:  the well-established techniques used by modern Garbage Collection (GC) systems are designed with radically different trade-offs than what embedded systems with a few KB of RAM dictate.

GC-Design-Doc-1.png
Marko Mikulicic
Marko Mikulicic

IoT Platform Design Doc: Virtual Devices

How often do you want to test something and need hardware? How often do you then not have the right hardware to hand? Well, we hear your pain. This is why the cloud of Mongoose IoT Platform comes with a virtual device. It allows you to test a potential IoT integration without needing a physical device.  

Marko Mikulicic
Marko Mikulicic

IoT Platform Design Doc: Distributed OurCI

Our engineers share the background to our Continuous Integration (CI) process in this design doc. Internally, the team decided to nickname it OurCI and you’ll see it referred to as such in the design doc below. 

Marko Mikulicic
Marko Mikulicic

IoT Platform Design Doc: Multiple switches, one light

Today, we are sharing the first of our design docs with you. If you remember, our design docs show a history of our engineering process and shed some light on how we develop Mongoose IoT Platform. This one is all about the visual design of the “on/off switch” control.

IoT Platform Design Doc Switches 2
Marko Mikulicic
Marko Mikulicic

Why a JavaScript Engine? [Presentation]

We are pretty proud to have built one of the world’s smallest (if not the smallest) JavaScript engine out there which powers our IoT full-stack platform. So when the opportunity came up to share with other developers why we built it and how, I jumped at the chance to present at FOSDEM 2016.

Marko Mikulicic
Marko Mikulicic

“My hardware is so custom that I need custom IoT software.” No, not really…

From phones to call your pet to fully connected cities, IoT offer so many opportunities that only your imagination can hold you back. Whether it’s rethinking products or developing brand new innovations the hardware development is often complex and extremely custom; ergo you need to develop a custom software to match. We don’t think so, and here’s why:

Marko Mikulicic
Marko Mikulicic

Smart Product Development for HVAC

Especially in the Heating, Ventilation, and Air Conditioning (HVAC) space product development into the Internet of Things (IoT) arena is becoming more and more important. Consider this, 70% of the M2M market will be dominated by two sectors: consumer electronics and intelligent buildings (including HVAC systems). Machina Research goes on to estimate the market worth by 2022 to be $18 billion. But when it comes to defining the right IoT move for your business, where should you head first? 

Marko Mikulicic
Marko Mikulicic

Stack traces on ESP8266: a GDB server stub

TL;DR: we’ve implemented a GDB server stub for the ESP8266 that allows you to get a full symbolic C stack trace and do limited source level debugging.