Hi, I'm Mikhail Ilin. I'm a random stuff engineer, indie maker and
solopreneur. Most of the things I like are related to web technologies, music
or design. I've founded Lopaka.app.
My GitHub, Twitter and
LinkedIn
-
How a Joke Job Post Turned Into Real Open Source Contributions
General ·Three months ago I decided my pet project might actually have a future: a solid editor with cloud sync, support for popular libraries, and so on. So I started actively digging into startups and growth strategies.
I stumbled upon a popular service (or community) for founders called https://f6s.com/ — you can register your startup there, get discounts on cloud services from various partners, post jobs, and find co-founders.
So I filled out the project description. Then I thought, “Why not post a job listing, just for kicks, to see how this thing works?” Following my old habit of “not trying too hard,” I wrote something like:
Position: JavaScript Engineer
Description: Looking for JS lover who would deliver the core canvas editor features
Salary: $20,000/year (a laughably low number for Europe)
Level: Internship (basically students)I genuinely didn’t expect anyone to respond.
But people started reaching out! Three applications in the first week. And then roughly one person every week after that. About half of them, from what I could tell, were outsourcing companies and freelancers who immediately wanted to discuss scope. I even gave up reading their messages after a while.
But recently I remembered and decided to reply honestly to everyone: “Hey, thanks for applying, we have zero investment, I can only cover pocket money, sorry.”
And one guy showed up who offered to do something for free! After a couple of messages on Telegram, he disappeared for a couple of days, then came back and built a small feature (update announcement coming soon). Huge thanks to you!
Lopaka is now fully open source, and people are already wanting to contribute. Unbelievable 🙂
P.S. I’m so happy because in six months of developing this project, not a single person had ever reached out with offers or questions about it. I’m still not sure if that’s normal. Maybe you need a critical mass of users first? Otherwise it feels like the project is basically dead and no one cares.
-
The story of Lopaka: How I made Graphics Editor for Arduino, ESP32, FlipperZero
General ·Let me tell the story of the creation of my pet project.
Lopaka is my pixel graphics and interface editor for projects on Arduino, ESP32 or STM. It was painful to see how embedded developers suffer when creating their interfaces, and I decided to ease their pain.
I have loved drawing and computers since my childhood 😀 I have been involved in web development for over 10 years. I’ve gone through all stages: amateur designer, self-taught PHP programmer, freelancer with turnkey websites, frontend developer, team leader.
The Prototype
It all started with the hyped launch of Flipper Zero on Kickstarter. When I got the device (after two years of waiting 🤡) the first thing I did was start studying its firmware. As an experiment, I made a Pomodoro timer application and suffered a lot in the process of drawing the interface.
It turns out that creating an interface for embedded devices is incredibly tiring. You have to manually calculate the size of the elements, indents, text position. Any small change makes you recalculate everything from scratch by cells.
For me it was a huge shock to find out that there is not a single convenient tool in the world for editing graphics and generating code for physical devices.
Before I even finished the Pomodoro, I decided to try to ease my suffering and make a simple editor interface with the possibility of export.
This is what the first version looked like, which I cobbled together over a weekend. You could draw shapes and get ready code for flashing Flipper at the output.

I liked how quickly I was able to sketch a prototype and I continued to add new tools and improve compatibility with the Flipper API.
A month later, I put together an interface in Figma, added basic functions, and posted it on my telegram and twitter.
Finally! #flipperzero canvas UI editor and code generator. Still has many things to improve but it works perfect!
— Mikhaíl Ilín (@ilin_pt) December 8, 2022
What feature to add next?
INB4: more fonts, more tools, custom images.https://t.co/NiEQrSGtXB pic.twitter.com/PSGhwJG7iwGot a good reach, likes-reposts from Flipper fans. Even Hackaday wrote about it (from which there was the most traffic). The project was also added to the list of software for Flipper.
And I successfully forgot about it for several months. During this time, it scored about 50 stars on GitHub. 10-20 users visited the project page every day. Not much, in general.

Turning Point
While digging into the source code of Flipper, I found out that they use a very popular library, u8g2, underneath. It’s literally the standard for monochrome displays.
The puzzle began to assemble into a picture: on one side are the developers of electronic devices. On the other side are interface designers. And between them, apparently, is a huge abyss. It’s very difficult to ensure “pixel-perfect” in a rapidly developing project. Developers spend a lot of time writing the rendering of the interface by hand.
There are a bunch of convenient tools for web development. You can export ready-made code from Figma. For mobile devices, there are powerful systems with the generation of a ready-made application. What do electronics engineers have? A ruler and a calculator? Maybe I’m missing something?
What are the popular tools for drawing graphics for monochrome screens?
My quick analysis of existing solutions yielded no results: I found a single editor close in functionality (SquareLine) and it is ten years behind life and only works with LVGL. Everything else is shoddy knee-jerk work that needs to be downloaded, configured, installed - in short, a real hassle. There is nothing at all like this for u8g2. Okay, for rich graphics on Linux-ARM devices there is powerful QT. But what should Arduino users do? Tell me if you know.
It’s time!
Decision made: now it is a universal graphics editor for low-resolution embedded screens!
I added support for the most popular library for monochrome displays u8g2, created a new repository, started a new twitter and bought a beautiful domain https://lopaka.app/
It works right in the browser, no need to install anything. At the output, it generates ready-made source code. Just copy and paste into your project.

I agreed about the repost in a friendly channel in Telegram and Twitter, the Flipper community also joined. Result: 145 stars on Github and 85 followers on Twitter. Already better!
That very tweet:
https://t.co/V0uF3FJTwh is my graphics and interface editor for #Arduino, ESP32 or STM projects. It was painful to see #embedded developers struggle to create GUI, so I decided to make life easier for all of us. Works right in your browser. Generates ready-to-use source code pic.twitter.com/FknWJLJsnp
— Lopaka (@lopaka_app) June 12, 2023I still hope that someday I will be able to successfully enter the Arduino community and get a like-repost from them.
Future Plans
There’s still a lot of work ahead, but I’m not in a hurry. Following the precepts of experienced startupers, I started conducting interviews with the potential audience. Huge thanks to everyone who helped me with this. This is really the most useful thing you can do at the start of a project.
I talked to the Flipper team and several leading engineers from other projects. Learned a lot about hardware product development and met interesting people.
So far, it feels like a successful idea and many teams lack a convenient tool. But the scale of the problem is unclear — it may turn out that there are only a dozen or two such teams in the whole world. That would be sad.
There is also a trend to transition from STM-ESP to modern ARM chips, with which you can assemble cheaper devices with a color display and low power consumption. And there is already a lot of suitable software (although none offers cloud features and teamwork).
Right now in Lopaka you can:
- draw basic shapes
- write text in different fonts
- insert images
- generate ready-made code for u8g2 and Flipper Zero
- convert images to XBMP
My plan is to expand the audience as much as possible, add Adafruit GFX and LVGL. These will already be color displays and a more complex code generator. We’ll see how it goes.
The long-term goal is to make Figma for embedded devices. With project synchronization, prototyping, teamwork, comments, and a bunch of other stuff. Access from any device and OS through a web application, prototyping, and everything else that people love Figma for.
Right now I’m experimenting with low-code, I really liked how quickly you can assemble an application, including the server part, with Noodl. I am already preparing a version of the application with registration and SMS for a limited audience. There you will be able to save projects in the cloud and store several screens in one project at once.
If you want to try it first — sign up through the form: https://airtable.com/apps27BkejrUF0DWT/shrrfgmWJQnhM0dGY
What’s inside?
This is a simple application on VueJS and pure JavaScript. Canvas is used for rendering. I’m not chasing super fast or high-quality code. It’s important for me that the application solves the user’s tasks.
The source code is open: https://github.com/sbrin/lopaka
The main difficulty was providing a complete WYSIWYG pixel-perfect effect. So that what we see in editor 1 in 2 matches what you will see on the device. I had to figure out the format of fonts used in electronics, convert them and display them beautifully in the canvas.
I have long loved Vue for its simplicity and accessibility. After several years of working with React, I still couldn’t accept its absurd concepts, which are presented as advantages (maybe organize a battle?). I can write a Vue application in a notepad without the internet and run it without installing additional crutches.
The main concept I follow: applications should not have a build stage, which includes code compilation and creation of executable files.
Instead, the idea is proposed that the application should be easy to start in any environment without the need for a build.
Familiar? Yes, the global scope and a zoo of JS files are back in fashion. Bring back my 2007 😄 Docker? Well, I don’t know, maybe.
Okay, I understand that with increasing complexity, all this collective farm will not be able to be maintained in working condition. So in the future, I will probably have to rewrite everything in TypeScript and smear it with webpacks.
Monetization?
The project is open and free. I use CloudFlare Pages instead of static hosting. I only spent money on the domain.
But as soon as there is a cloud, this question will become more acute. In my fantasies, there is an open project for everyone on Github and its cloud version with a subscription payment model.
Income is now zero. You can become my sponsor on Github: https://github.com/sponsors/sbrin?o=esb
Help me to develop this project
What I lack most is feedback. It’s unclear if anyone needs such a tool.
If you like the project and you are an engineer or designer of electronic devices with screen interfaces and are ready for a short interview - I would be extremely happy to chat. Write to me, create issues on Github, make retweets.
If you know someone with a lot of experience developing such devices, tell them about this project. Or help me get an interview with them 🥹 Maybe there are some public figures on YouTube or Twitter, who I could invite for an interview (especially English-speaking)? Please write in the comments.
The project is in alpha version, I am just starting it. I really need feedback and invite everyone to try. Share ideas, ask questions and criticise!
Follow me on twitter: https://twitter.com/ilin_pt
Get Lopaka updates: https://twitter.com/lopaka_app
-
Lopaka - Embedded graphics designer and code generator tool
General ·The problem: it is tiring to create a beautiful interface for electronic devices.
The solution: a cross-platform graphic editor with a code builder and component library. Supports popular GUI libraries: U8g2, Adafruit GFX, Flipper Zero canvas API, embedded-graphics under Rust, LVGL, and more. Accessible from any device and OS via a web application, collaborative work, prototyping, and everything else that Figma is loved for.
My cursory analysis of existing solutions did not yield results: I found only one editor close in functionality (SquareLine) and it is ten years behind and only works with LVGL. Everything else is poor makeshift versions that need to be downloaded, configured, and installed - in general, it is a real headache. For u8g2, there is nothing like it at all.
Read the full story of creation of Lopaka in my blog: The story of Lopaka: How I made Graphics Editor for Arduino, ESP32, FlipperZero
Meet Lopaka with U8g2 and Arduino graphics!
I’ve added support for the most popular library for monochrome displays, u8g2, created a new repository, and bought a beautiful domain.
https://github.com/sbrin/lopaka
Features:
- pixel perfect editor
- various screen sizes
- many draw shapes and tools
- popular fonts support
- use custom images
- auto-generate XBMP graphics
- move, resize, edit elements
- u8g2, AdafruitGFX, Uint32 bitmap, FlipperZero export
- generate the source code in C/C++
- FlipperZero live preview
- select zoom scale

How can you help?
If you like the project and you’re an engineer or designer of electronic devices with screen interfaces and are ready for a small interview - I’ll be insanely happy to chat. Drop a line to @ilin_pt or [email protected]
Tell your friends and colleagues about this project. And help me get an interview with them 🥹
Support this project
You can become a sponsor — see sponsorship options on my GitHub profile ❤️
Follow Us on social media:
-
From Grozny to Lisbon: My Unbelievable Journey of Reinvention and the Power of Pure Luck!
General ·I was born in Grozny (Chechnya, USSR by the way) and in the first year of my life, I was moved to the far north, where I lived until I was 12 years old. Then I was moved to the Volgograd region, where I lived until I was 24 years old.
After that, I moved to Moscow on my own. It was pure luck: I was traveling to perform at a gothic festival in Nizhny Novgorod and decided to visit a friend in Moscow for a couple of days. I liked it so much that I decided to stay for an indefinite period. After a month, I found a new job in technical support and rented half a room on Arbat for 8000 rubles!
Somewhere after the age of 30, I learned that the world is not limited to Moscow and that it is possible to move to another country! I first traveled outside the CIS at the age of 33. And I began to think more and more about the future.
At some point, I noticed that I had lived through two twelve-year cycles of moving and the thought occurred to me that the third cycle was coming to an end, which meant it was time to move again. In general, after putting in some effort, I improved my English, spent a year on interviews, and received one offer, which was canceled due to COVID-19.
In the end, I found a job through an acquaintance with whom I worked together. It was pure luck, I was given a good reference. After a year of work, I began to conduct interviews myself, so I know that the interview process was clearly easier, without tests and stupid questions. I was offered to move to Latvia, but since it’s COVID-19 now, I have to wait. And they made a one-year contract.
After a year of preparing documents, exactly one week before the embassy visit, I learned that we were opening a new office in Portugal. I quickly wrote to my lead and the next day we discussed a new contract and relocation conditions. Well, it was pure luck!
After six months of paperwork, we ended up in Lisbon. There were many more lucky moments there, but I’ll talk about that later.
-
Email Archiving: The Inbox Zero Secret Most People Ignore
General ·Email archiving is a seriously underrated feature. And I know most people don’t use it.
It’s helpful to think of your inbox as a to-do list: everything in there needs your attention. Anything you’ve already read and don’t need to act on? Just archive it. It doesn’t disappear or get deleted — it simply moves to your email archive. And every now and then, your inbox becomes empty. That feeling is chef’s kiss.
If you’ve got tens of thousands of emails sitting in your inbox, you can always start fresh and archive everything at once.
Once your inbox is clean, you suddenly notice how much junk you’re subscribed to. Time to hit unsubscribe on all of it.