Ivan Nikolic [lesh] Curriculum Vitae
High Level Skills Overview
My knowledge of computer systems is broad and deep. I managed dev teams in biggest hosting companies in the world, worked in modern web startups, have founded a few businesses of my own and have built robots and machines for artists
I like high level languages, designing large systems, computer security and machines.
I have many personal projects ranging from evolutionary programming, frameworks for distributed systems, robotics libraries, intrusion detection systems, computer vision, etc. This one time I made a custom computer powered by thousands of lemons that generates poetry.
Languages
JS (TS/Coffee/Es6), Python, Ruby, Lua, C, Scala, Scheme, ReasonML (I brushed upon a bunch more, I'll learn a new language when I need it. Not a big fan of php or java and probably won't work with them)
Full Stack Modern Web (10+ Years)
I leaned towards node, but I worked with most major web frameworks in popular languages at some point. Standard things like html5 and es6 stuff, websockets, modern web security, etc, common libs and APIs (react, redux, css/js precompilers, real time data syncing, stuff like that)
I wrote bleeding edge web frameworks and libraries of my own and based startups on them.
General Architecture, Devops etc
15+ years of linux experience
I implemented full infrastructures for diverse companies of varying sizes and goals.
I'm familiar with things like distributed systems, automatic testing, orchestration (nixops, kubernetes, ansible, salt, docker, all the major tools in this space), monitoring, data collection, logging, graphing, scaling, backups, error recovery, clustering, in-house KVM cloud implementations, 0 downtime upgrades/downgrades, etc.
Protocols
I'm familiar with common protocols in detail, http, smtp, dns, arp, tcp, udp, icmp, dhcp, tls, ssh, irc, websockets, as well as the messaging and embedded side of things, mqtt, zeromq, zenoh, can bus, modbus, i2c, spi, mavlink, nmea etc. Most of these I can "speak" manually with `netcat` or implement a client for off the top of my head
Security
Modern web security, malware, networks, operating systems, log collection, intrusion detection, incident response and forensics.
Hardware, Electronics, Robotics
I've built custom drones and robots, electric skateboards alarm systems, experimental electronic music festivals, have maintained radar systems on ships, built custom distributed sensor networks, random art projects, etc
I do my own fabrication, CNC milling and turning in metal, not just 3d printing, plus the CAD/CAM side
Brief Recent Employment History
I didn't write about tech parts of art projects much because I think that you probably don't care about those, for more info on this you can check out my artcv.
Dimensional - Founding Member [2025-Present]
DimOS - an agentive operating system for physical space. An open source stack for building autonomous robots.
- Designed and implemented the whole system architecture: module system, typed data flow, transports and coordination between distributed components running across robots and machines
- Built perception on top of it: sensor fusion, SLAM and localization, point cloud processing, occupancy mapping
- Built the memory system: spatial and semantic memory, vector search over what a robot has perceived
- Navigation: costmaps, global and local planning, trajectory control
- Project lead on perception, navigation, core at different stages, usually the one writing the first version of each before handing it on
- These days I'm focusing on architecture and core platform work
I post a lot of work in progress on twitter.
technologies: python, rust, cpp, typescript, zenoh, nix
Lenus.io - Internal Consultant/Lead [2021-2023]
Working across teams to implement complex projects in the 400 employee company, some examples:
- Splitting the monolithic backend and infrastructure into a multi regional distributed system while respecting local privacy laws. Almost all teams and departments in the company were involved
- Company wide secrets management for individual users, teams, services and servers across different deployment mechanisms
- Implementing incident response processes and workflows
- Managing transition of tech, data and processes for acquired companies
- Supervision and direction for different technical departments like SRE, Backend, Data, etc
technologies: typescript/node, heroku, sentry, datadog, postgres, aws
Lenus.io - Lead Data Engineer [2019-2021]
Founded and led the technical end of data department
- Built a full data processing infrastructure serving all departments on top of kubernetes. This involved data collection, processing, visualization and storage
- Implementing workflow and process changes with regards to how departments use data.
technologies: typescript/node, kubernetes, grafana, influxdb, postgres, aws, google cloud, tableau
Creative.ai - Early employee, Senior developer [2017]
ML for augmented creativity, focusing on graphic and web design
Automatic layouting and design, recursive generative language research, deep neural networks
- Wrote an extensible generative language for layouting and images
- Implemented an initial infrastructure for the company
- Different deep learning experiments with regards to video processing, image generation etc
technologies: python, node, tensorflow, react, postgres
Yentown.ltd - Founder [2017-2019]
Crypto Algo trading
- Sub-second resolution real-time view of multiple cryptocurrency markets
- An exact simulation of trades taking into account different price changes at different market depths
- Implemented machine learning systems for trade predictions and simulations
technologies: node, postgres, ansible
Bitcoinlab.org - Founder/CTO [2011-2018]
This one started as a small experiment a few years back and ended up as a company with a few occasional employees and as my main source of income.
Among other things as a part of this I created BattleCoin.org a distributed game engine.
Developed the full stack in house since these things were new and js immature, including realtime syncing object system, event subscribers, JSON validators, web/networking/game/graphics engines.
technologies: node, real time distributed object syncing, mongodb
Wave International - Cofounder/CTO [2013-2020]
An adventure tourism agency currently focusing on Korean tourists in the Philippines, did the online side of the job, with occasional on the field stuff to create content for the site, explore for new tours, etc. Profits were doubling each year. I exited the company in 2020
technologies: node, express, mongodb
Resbou Cofounder/CTO [2016-2017]
Startup revolving around property management with fairly techy infrastructure aspirations. Y-combinator shortlisted.
- Wrote from scratch a fully distributed self scaling clustered backend with 0 downtime upgrades and no single point of failure.
- Distributed task execution system. Tasks able to migrate mid execution to other machines in case of scaling or crashes.
- Made an easy library for new task creation and testing so contractors can write tasks
technologies: node, express, react, postgres, etcd
TopHat - Senior Developer [2012-2014]
Startup working in the Education Space on software for real time interactions between professors and students (quizzes, games etc)
- Implemented a testing framework using pluggable browser systems (puppet, selenium, chromedriver etc) for an education software startup
- Developed HTML5 distributed multiplayer game engine and various internal services
- General devops and SRE stuff
technologies: python, django, js
Tradehill - Early employee/Senior Developer [2011]
A second largest bitcoin exchange at the time. Worked with a small team on early prototypes and additional funding.
- A mobile payment system that uses html5 geolocation to find merchants/users nearby.
- New realtime object syncing backend prototype.
technologies: python, backbone
Reflected LTD [2010-2011] - Lead Developer
Managed hosting company, hosting some of the highest bandwidth sites on the internet, operating with thousands of servers across the world.
I've lead data collection, graphing, alerting and auto scaling work as well as ansible type automation systems, all this was written in-house since systems like these didn't exist at the time.
- live traffic data collection and visualization from multiple content delivery networks,
- js graphing engine with zoom/pan and dynamic graph resolutions, simultaneous display of multiple datasources etc.
- RPC above zeromq for automating things like firewall opening upon sso signons, server data collection, sysadmin tasks. Experimented with RPC method evaluation and automatic GUI generation
technologies: python, perl, django, postgres, zeromq, rrd
Bannana Poetry
with Ines Krasic, prodean at croatian art academy. my part was a crawler that does markov chain analysis of a text, searches for rhymes, and attempts to write poetry. the whole thing is running on a microcontroller with an eink display, powered only by fruit. that was difficult. check out a photo
exhibited in gallery Galzenica in Croatia, Blasthaus gallery in San Francisco, and National museum of China on Translife 2011
Sound Table
for Iva Curic, artist from croatian art academy a sound generating table with magnetic sensors (see video). My part was a software with realtime opengl representation of a system and realtime sound generation, all electronics and programming of atmel microcontroller. the whole table is a bluetooth device sound-generating computer connects with. short youtube video
Personal Info
I started playing with electronics and programming when I was a child In the last 15 years I've lived in Toronto, Seoul and Cebu, Philippines and I'm currently based in Athens, Greece
When home in Croatia, I'm often hanging out in a hacklab in mama, we have space in the center of Zagreb where we organize lectures, workshops, or just sit around (official site) I found some extremely talented people there.
Technology is a passion so I work on these things in my spare time and have a lot of personal projects.
I'm sometimes working on technical parts of new media arts and I'm frequently collaborating with Croatian Academy of Arts. Those works mostly involve programming and robotics. I listed just a few as I suppose you don't care about those as much.
Work Highlights
dimos Architecture
The module system the rest of the stack is built on. A module declares typed input and output ports, and the transport layer moves streams across process and machine boundaries without the module knowing or caring how.
- Transports over zenoh, LCM, ROS and shared memory behind one interface. In our benchmarks it beats ROS by more than 10x across the board, on latency and throughput alike
- A native module framework, so a module can be written in Rust, CPP, lua, TS can drop into the python stack with the same typed ports and the same zenoh or LCM session. I ported Point-LIO to Rust on top of it, along with the realsense camera, livox and fastlio2, the Go2 DDS controller etc.
technologies: python, rust, zenoh, lcm, ros, shared memory
dimos Navigation and Trajectory Control
Costmaps, global and local planning, trajectory sampling with clearance, and the controller that tracks the result. Planning runs against the same map and memory the robot builds, so execution and replay look at one world model rather than a separate planning copy of it.
There is a video of it running.
System identification. Precise trajectory control needs a simulator that matches the real machine, so I identify the plant from recordings rather than trusting the model. It fits the actual actuator chain, PD law, torque limits, a speed dependent back-EMF envelope and first order lag, and it is policy aware, modelling what the onboard controller really commands instead of assuming our own setpoints.
- Recordings are labelled by regime, on the floor, in flight, suspended, because most parameters are only observable in one of them. Trunk inertia is most of the sensitivity in flight and none of it in contact
- A sensitivity and degeneracy pass runs before fitting, asking whether the recording can constrain a given knob at all, so the fit can't report a confident number for something the data is blind to
- Fitting is seeded restarts under CMA-ES reporting the median and spread of the near optimal region instead of a single best draw, since the knobs trade against each other and the data locates a region rather than a point
technologies: python, rust, rerun
dimos Realtime Loop Closure
Built in house rather than pulled from an existing SLAM package. Incremental pose graph optimization on gtsam ISAM2 over keyframes, so the graph is re-solved as the robot moves instead of in a batch pass at the end.
technologies: python, gtsam, open3d
dimos Memory System
Everything a robot perceives lands in one queryable store, anchored in space and time. Lidar, camera frames, poses and anything derived from them are observation streams over the same interface.
- Transforms compose lazily over a stream, speed, smoothing, throttling, running scans, so a query is a pipeline rather than a preprocessing script
- Semantic search over what the robot actually saw, CLIP embeddings indexed alongside the observations, so asking for "plants" gives you back the frames and the places they were in
- Observations carry their pose, so memory can be replayed, plotted, and drawn back into the 3d map it came from
- Plotting and visualization are part of it rather than a separate tool, documented here
technologies: python, sqlite, clip, rerun
Personal Projects
This is a large list and I will write about a small part to paint a general picture.
CTM hacklab fellow
I developed some projects related to generative sound and visuals, started a micro band and performed at the "CTM festival for adventurous music and art" in 2020
The set was generative sound and live visuals driven from the same system, played alongside violin.
- automata - my DSL for generative systems, the sound side of the performance
- hydra / hydra-synth - my forks of Olivia Jack's livecoding visual synth. I wired in livecodelab as an additional opengl renderer, added midi input, sample handling and a filewatcher so the patches could be edited live from an editor
Electric Vehicle
A custom built electric motorcycle. It's a deep project, 3 prototypes, most of it designed from scratch rather than assembled from kits.
As an example this is a battery design document - a literate program rather than a writeup. Cell selection, pack topology, thermal analysis and the CNC/openscad design are all live code, so changing one cell recalculates every table, conclusion and 3d model in it, from price/weight/discharge tradeoffs up to the 8P20S pack and a symbolic solve for time to thermal cutoff.
technologies: clojure, python/sympy, openscad, cnc, power electronics
Drone Projects
3d terrain reconstruction and sun coverage simulation. Drone photogrammetry into a 3d model of the land, with real sun and surrounding mountain shadows, for architecture and solar panel placement on a house I'm building. There is a writeup, it runs in the browser and the code is here.
dimos integration. Flying drones as first class robots in the stack, telemetry and video landing in the same perception and memory pipeline as the ground robots. Includes a custom dji to mavlink bridge, so off the shelf dji hardware can be flown from a standard ground control stack instead of the vendor sdk.
technologies: three.js, geotiff.js, qgis, gdal, mavlink
Cryptocurrency Related Projects
I was in crypto from the start, working with others and on solo projects, and have around 100 repositories of crypto related projects. I got out around 2019. It was interesting back when the whole community could fit on an irc channel and the hard part was the distributed systems problem.
Crypto services are a good way to validate your security practices, since all of them are inadvertently and by necessity running a solid bug bounty.
I did some automated trading, some micro services, some larger projects like tradehill or battlecoin.org.
Node Libraries
Written quickly and out of necessity back when javascript was immature and most of this didn't exist yet. They were usually more sophisticated than the popular state of the art at the time, the community eventually caught up on a good number of them.
The ones I still like:
- lweb3 - an abstract communication framework with pluggable transports and communication protocols that can depend on each other. Event subscription needs query/reply, so http transport provides it directly while tcp transport pulls in the subprotocol automatically. Channels and broadcasts build on top of that
- logger3 - hierarchical loggers with pluggable outputs. Logs should be trees rather than lists, so I can reconstruct a full session of one user within a particular context instead of filtering by log level and grepping
- 2d-game-engine - network game engine with opengl and svg renderers. I treat all games as complex cellular automata, so a full multiplayer bomberman with sound and textures is about 200 lines of code, client and server together
- abstractman, backbone4000 and a json validator/modifier - graphs and state machines for imposing structure on complex logic, an object model on top of backbone, and a validator a few orders of magnitude faster and more feature rich than the popular equivalents
Formal Education
I've never graduated, didn't like the studies available in Croatia and I ended up working too soon.