Skip to content

News

News

Building a Company

Its been some time since I blogged about the development of my company Userlike that I co-founded in 2011. It has been 5 busy years since I last blogged about Userlike.

Since then I haven’t had a lot of time to work on gaming console related hobby projects. (Despite some work on the AspectQt port and a Amiga Intro I made). I hope to find more time to work on new projects. I already have planned to update the quickdev16 software a bit.

It has been an awesome time developing the company. Our headcount grew from 3 people working at Userlike to 20 people today. The customer base grew from a couple of hundreds signups to 30k customer accounts that we are handling right now. 4 Years ago we were more or less working from home office all the time. Then we moved into our first office space in the center of Cologne like 2.5 years ago. This was a huge step for us and moved the company forward. As of today we have already outgrown the office space and started looking for a new and bigger place to call our new home.

Wasn’t slow on the technical side either. I guess its fair to say that we replaced each of our software components at least once by a either re-write or different approach. And still we are refactoring and getting rid of technical debt all the time. On of our most visible components is the chat messenger widget itself, where we are on the 3rd major iteration. Each major version introduction involves a migration phase for our customers. This is always a huge task for the development team, to make the migration smooth as possible while maintaining multiple software versions of the messenger.

Developing a SaaS can be tricky. You always have to balance between customers requests, not falling behind competition and don’t overloading your product with options that hardly anyone is using. The challenge is to find the right compromise, being pragmatic sometimes helps.

Devops side of the project wasn’t less interesting. Last year we switched our datacenter, since we had outgrown our old setup and approach of scaling we went for something new. Now we rely on automatic deployment of our system which we solved with Ansible and are very happy with it. Another big change for our infrastructure was to switch from MySQL to Postgres. The reason for this was quite pragmatic. We used to store all business data in MySQL and stored all bulk data in a mongoDB. Over time and a growing dataset it became clear mongoDB is a hard to handle memory wasting database. So we decided to move to Postgres and merged the mongoDB bulk data using the Postgres JSON type feature. It was quite a task to do the data migration, but since then we never looked back.

We kind of matured the feature set for Userlike over the last 4 years and already branched out into new fields. We started integrating different messenger channels like Telegram and Facebook. Another new development will be to break up the online / offline communication paradigm to a more async and sync communication which will yield to higher usability for professional support teams using Userlike.

Btw, we are hiring and extending our developer team. If you are a python and javascript person, or like building infrastructure, we might have the right job for you.

Bake that Book

Last Summer i gave my old Macbook Pro 15″, Late 2011 with 8GB and 160GB SSD to one of my team members at Userlike, since i got a Retina upgrade. I think the old one was still decent, since the SSD gave it that boost to make it usable, even if the laptop was 2 years old at that time. Unluckily the old Macbook Pro didn’t last long, it just died after 3 month. Wouldn’t turn on anymore. As i predicted, after bringing it to the Apple Store, they said the logic board was fried, which always means its totaled. We bought a new Macbook and moved on.

Now i got the broken Macbook back to my place and i thought i would at least sell the display, case and reuse the SSD. But i remembered reading all the Macbook baking blog articles. I already disassembled a few Macbooks down to the logic board and also did some reflow stuff for side projects. Also knowing that a friend of mine has good experience with baking old Nokia phones, i though i give it a try.

  • Go to ifixt.com and look up the tutorial to change the logic board
  • Disassemble the laptop, collect screws and parts in separate containers
  • Be becareful with all the ribbon cable connectors, there are a lot and some are tricky
  • Get the logic board out, remove heat pipes, ram and speakers
  • Preheat oven to 180c
  • I cleaned the board with isopropyl alcohol
  • Set board on tin foil legs on a baking tray
  • Put in the oven for 7 minutes
  • Let it cool fast at a open window
  • Clean fans and case from the inside
  • Assemble, make sure to get all cables connected
  • Boot that Book

I hoped that i had a 50/50 chance that it will work. I was confident, that i don’t mess the laptop during disassemble and assemble phase, i wasn’t sure what the result was after baking. I remembered that the laptop got quite hot while working, so there were some odds that this permanent heat would have altered the setup of the parts of the pcb. And it turned out to be worth the work, the Macbook booted up nicely.

Get your tools

IMG_2536

IMG_2534

IMG_2537

IMG_2538

IMG_2540

IMG_2543

Meet my new project Userlike

Its not that i have been kind of lazy about blogging the last year, its just i didn’t to anything on my side projects like SNES hacking or the like. I quit my day job last year and started founding my own Company Devcores. Last Summer i began coding our first SAAS wich entered the beta phase last december. Lets meet Userlike. It’s a webbased live chat system targeted for online shops. It SAAS and can be added with one line of javascript to your website. We are in private beta right now and plan to release the first public version with the next 2 month. If you want to test it, drop me a line and i will get you an account.

Userlike

Super Nintendo Talk

A while ago i held a talk at the ccc in cologne about my favorite game console the Super Nintendo. This talk covers the Super Nintendo technology in detail. Starting with the CPU and PPU, covering the cartridge memory maps and showing most of the custom chips which where used on cartridges. I also show development hardware, copier stations and the current available flashcarts. The topic emulation is also covered . The second part of the talk is about the quickdev16 project, which i did with my friend max in 2009. We built a flashcart for the SNES which is useful for developing homebrew software. The talk sums up all the details i learned during the research i made to built this kind of cartridge. I uploaded the slides, maybe someone find this useful to dive into the SNES world.

New Quickdev16 Loader

We got a new loader for the Quickdev16 firmware. The loader will replace the current dummy loader and has a few new advantages:

qd16boot02

  • Faster upload because of IRQ driven communication between SNES and AVR
  • Progressbar while uploading
  • Display Rom infos
  • ASCII and Katakana font support
  • Eyecandy: new logo design with sine wave effect and bassdrum synced background effects..

Due to these features the loader blew up to more than 55kb, too much for our limited space in the AVR progmem (64kb – 4kb bootloader). Our main firmware is between 8kb and 24kb, depends on the debug-features that you compile in. So the recent task is to either reduce the loader size by skipping eyecandy, finding a better compression routine to compress it in the progmem or build a minimal firmware and put parts of the loader into the surplus 4kb eeprom on the AVR. Probably we will have to combine the different approaches.

One reason why the firmware is that big these days is the new “minimal debug terminal”, a serial command line where you can maintain the Quickdev system status. You can dump memory regions from sram, switch between the busses, write to the shared memory section, show the status of the hardware ports and use several other usefull commands. Check the project page for more details on the commands.

Quickdevs are shipping

Last week we shipped the first batch of Quickdevs. The Software is feature ready, but we wanted to do some eye candy on the SNES software side, which didn’t work out yet. So software updates are coming within the next weeks.

Feel free to order at david @ optixx.org.

Quickdev16 Pre-orders

I start taking inoffical pre-orders for the Quickdev16 now. Just send me an email to david at optixx.org with your name and email address. In order of arrival i will put you on the pre-order list. Right now we plan to sell around 35 cartridges.

Why inoffical pre-orders list? A fews points are unclear right now. I don’t know the final price since this will depend on the assembling costs which are not setteld yet. I can’t say if the the new PCB are working 100% since we didn’t test it yet. Also we didn’t figured out if we gonna ship the cartidge with a CIC chip or not. The client software is tested and developed under Linux and OS X. Can’t say much about windows. But if you can compile ucon64 with libusb support in windows you should be fine. I will give this a shot soon.

These points will clear up within the next 2-3 weeks. But expect an sale price around 100 USD or 80 Euros. I gonna use paypal for international shipping and direct debit in Germany and even Europe. Will provide an an IBAN and paypal account later.

I don’t take any money before everything has clear up. So the pre-order is not binding as long as you are not happy with the final outcome of the project. I just started this pre-order list, since a few people start asking for it and they don’t want to miss the opportunity to get one.

Just a quick preview of up coming features.

  • up to 16Mbit Roms supported
  • Ucon64 upload via USB
  • Lo/Hi Rom
  • Serial Debug Console
  • SNES Boot Loader
  • SDcard Daughter Board planed