Tomaž Šolc

Hi. My name is Tomaž Šolc. I'm an electrical engineer with an University diploma degree in electronics from University of Ljubljana, Faculty of electrical engineering.

I'm curious by nature and find satisfaction in understanding and making things. I can get interested in most topics that have something to do with electronics, software or physics. I've also recently taken interest in drawing and animation.

I have worked on a variety of projects and have experience in analog and digital circuit design and layout, signal analysis, programming from embedded systems to the web, parallel computing, computer security, Unix system administration and semantic technologies.

To my best effort I contribute to the open source community and publish most of my work under a free (as in freedom) license. You can sometimes find me at hacker meet ups in Ljubljana or on random conferences around Europe.

Elsewhere on the web

My PGP key fingerprint is 4EC1 9BBE DE7A 4AA1 E6EB A82F 059A 0D2C 0A82 2E7A. Transition statement.

Selected projects

Screenshot of Avian's blog Avian's blog (2005 - present). I maintain a blog with my thoughts on analog and digital electronics design, software development and other topics that interest me. The blog has received approximately weekly updates for more than 10 years and runs on software I've developed myself. - archive

PCB with an OLED screen and some analog circuits. Mixed signal bus interface (2019 - 2020). I reverse engineered a proprietary bus with several types of digital and analog signaling with no available documentation, from the physical layer and line code to the logical layer. I then designed a compatible bus interface using a modern microcontroller with programmable logic. The interface design was included in a development tool as well as a commercial product.

SIGFOX experimental transceiver SIGFOX experimental toolbox (2016 - 2017). I designed an ultra-narrowband software-defined transceiver and created a visual programming tool for experimenting with the SIGFOX network protocol. The device consisted of an industrial PC, a USRP radio front-end and an embedded board with the modem firmware. This allowed original modem binaries to be used while at the same time applying run-time modifications to the packet contents and radio waveform. - software repository

Top side of SNE-ESHTER circuit board SNE-CREWTV, SNE-ISMTV, SNE-ESHTER (2011 - 2015). I designed three generations of analog radio front-ends for compact, low-cost spectrum sensors (spectrum analyzer with a limited baseband recording capability). 50-900 MHz receiver based on a DVB-T tuner with a custom IF filter and logarithmic detector. 10-100 items were produced and deployed in Slovenia and UK. I also developed several stand-alone embedded systems incorporating this front-end and related software. - blog post

Arduino OLED display showing a range of colors Arduino OLED shield (2013). I designed an organic LED display extension for the popular Arduino platform. The board contains a display controller with SPI interface and a low-power boost converter. I also developed a driver and several demonstrations of display's capabilities. The shield was sold in the Tindie store. - documentation

Top side of the robot controller PCB Pipe-crawling robot controller (2013). I designed a controller board for a prototype robot used for drainage pipe maintenance. The board contains an ARM Cortex M3 controller with ultrasound and orientation sensors, bridge DC motor drivers with over-current protection and RS-485 communications. 3 prototypes were hand-made.

CMOS Galaksija connected to a portable analog TV Galaksija (2007 - 2013). I reverse-engineered a 1980s home microcomputer and designed a compatible replica computer using CMOS logic. I also documented large parts of its ROM, developed a set of tools for developing new software for this computer and produced several demos. This project has been featured at a number of arts and computer festivals. - details

Disassembled laboratory power supply 50 W DC laboratory power supply (2011). I designed an adjustable 25 V, 2 A power supply. The power supply employs a thyristor pre-regulator with a capacitive-coupled trigger and an analog control circuit of my own design. Linear stage made with op-amps and discrete bipolar transistors. One item was hand-made for personal use. - blog post

Miha Leskovec and Urban Medič talking at Kiberpipa Cikel elektronika (2010 - 2011). I was the organizer of monthly lectures on electrical engineering and electronics at Kiberpipa, a hacker space in Ljubljana. - video recordings

Poster showing GumBase entity counts and sources in 2008 Wikitag, GumBase (2007 - 2011). I developed a novel algorithm for entity extraction and sense disambiguation from English prose based on dictionaries extracted from the web. I developed a set of high-performance back-end services and batch processes that implemented the algorithm and performed dictionary updates. I also developed a proprietary triple store that was used to store the dictionaries and associated entity data. The system was used as a part of Zemanta service for bloggers. - early paper

CDR-3 hand-held ultrasonic converter CDR-3 hand-held ultrasonic converter (2007). I designed a battery-powered heterodyne converter from 30 - 100 kHz to audible range. Op-amp and discrete bipolar transistor design with a low-cost piezoelectric transducer. Designed for use by students of Biotechnical faculty for study of bat echolocation. One prototype was hand-made. - blog post

Cover of Tablix User's Manual Tablix (2002 - 2007). I developed a free software kernel implementing a parallel genetic algorithm for solving high-school timetabling problems. It later evolved to a generic tool for discrete multivariate optimization problems as an open source project. I organized a workshop for schools. In 2004, Tablix was used in a study on ship scheduling in the port of Rotterdam. The project is no longer maintained. - archived project page

Figure from instrumented tracker signal analysis report Nonlinear systems signal analysis (2004 - 2006). I applied time and frequency domain methods for signal analysis to signals produced by nonlinear mechanical and biological systems. I wrote a research report on analysis of signals recorded by an instrumented tracer for measuring dynamics of geological sediment transport in rivers which was awarded a student Prešern award in 2004. In 2006 I was a visiting student at Nonlinear biomedical physics group in Lancaster University. - report abstract

Cover of the Digital circuits handbook Digital circuits handbook (2003 - 2005). I wrote a handbook with examples and reports of practical experiments and exercises with digital circuits for students of the Faculty of electrical engineering. The handbook was reprinted in 2003, 2004 and 2005 and was used for student lab work during that time.

PS/2 keylogger on a cable PS/2 keylogger (2005). I designed a compact hardware logger for the PS/2 protocol that enabled covert recording of keystrokes when inserted between the keyboard and personal computer. It used a 8051 microcontroller with I2C EEPROM for storage. I also developed the firmware, including the PS/2 protocol driver and the terminal-based user interface. One prototype was hand made. - blog posts

Work experience

Senior hardware engineer at Klevio (2017 - present). I was developing analog electronic interfaces for intercom systems, embedded computer systems and reverse engineering digital buses. I designed schematics and PCB layouts for mass production as well as manually assembled prototypes. I performed design verification and assisted in product certification in a test lab. I prepared documentation for manufacturers and learned about design for production and developed test automation. I also developed acoustic echo cancellation software.

Senior researcher at the Jožef Stefan Institute, Department of Communication Systems, Laboratory for Wireless Sensor Networks (2017 - 2018). I was researching optimization strategies for ultra-narrowband random FDMA networks. I developed a software-defined radio device and a software toolbox for experiments with media-access protocols on such networks and performed measurements on a commercial ultra-narrowband base station. I left after the successful conclusion of the two EU funded projects.

Senior research assistant at the Jožef Stefan Institute, Department of Communication Systems, Laboratory for Wireless Sensor Networks (2011 - 2017). I was responsible for the Institute's part in the FP7 CREW project and the H2020 eWINE project. I was technical lead in developing, deployment and maintenance of a wireless testbed. I designed most custom radio hardware used in the testbed. I supported external experimenters during their work on the testbed. I also developed a current sensor for a high-power photovoltaics project. My research work was mostly focused on low-cost spectrum sensing and TV white-spaces.

Senior software engineer and researcher at Zemanta (2007 - 2011). I was part of the original team that won startup funding at Seedcamp, UK. I researched natural language processing methods and developed implementations for production use. I developed a Hidden Markov Model named entity extractor, an innovative word-sense disambiguation engine, a Wikipedia dump processing pipe-line and a custom triple store. I worked on integrating third-party knowledge databases and improving performance of a web-scale feed aggregator. I left the company after changes in leadership and reorientation to advertisement business.

Instructor at Hermes SoftLab (2006 - 2007). I was an instructor at the summer school of embedded systems development for students of electrical engineering and computer science. I helped prepare a demonstrator for a CAN-bus based vehicle system. I prepared material and held lectures on programming for embedded systems and hardware design.

Teaching assistant at University of Ljubljana, Faculty of Electrical Engineering (2003 - 2006). I was an undergraduate teaching assistant, assisting students at lab work in digital circuit theory, introduction to nonlinear components and electronic circuits courses.

Network and systems administrator at Kiberpipa (2002 - 2007). I was a volunteer working as a GNU/Linux system administrator at a hackerspace in Ljubljana. I maintained the Linux-based firewall and was responsible for IP network issues. I maintained a backup system for servers.

Internship at Cifra (2002 - 2003). I developed a Linux kernel driver for a proprietary cryptographic hardware used in government and commercial applications. I developed firmware for a DOS-based embedded GPS system used in fleet management.


ICT doctoral study programme (incomplete). Jožef Stefan International Postgraduate School, Slovenia. (2013 - 2018)

B. Sc., electrical engineering, electronics. University of Ljubljana, Faculty of electrical engineering, Slovenia. (2007)