FIrst, apologies, this is just such an interesting experience I need to vent somewhere or go crazy I hope someone will find this piece entertaining or even perhaps helpful.
O.k. so I work as a contractor within embedded systems and web. Latest job started about three months ago, when one of the higher uppers managed to have a brilliant idea; They want to implement a web server management interface on The Product™.
Now, The Product™ is a highly specialized embedded system, used in an industry setting. After some back and forth on the subject, here are the basic specifications:
- The Product™ is developed in C exclusively
- The webserver must be implemented as a single threaded task
- There is a TCP/IP stack implemented
- The hardware is tiny and is an integrated SoC with a few ports
- Available storage is 2 MB
- Available RAM is 256 kb, of which 100 kb is already used
- NO Open Source Software allowed, due to conservative company ideas
- Wants support for AJAX and responsive web design
- The Product™ will not have Internet access of any kind
- Should allow for web interface device control
- Should be compliant with: HTML5, CSS3, ECMAScript 6, HTTP(S), SOAP
- Needs to support at least three browsers (Firefox, Chrome, Edge)
… And the best part, I was originally supposed to get a front-end developer to help me, but he quit 1 week before I started and they have yet to find a new one. Of course!
So, immediately all forms of unoptimized imagery is out the window, > 8 kb is pretty much useless to my purposes. Same thing with template files, I could develop a template engine but that would take time. O.k. time to look at the various frameworks available. Oh, I can barely use any frameworks due to the stipulation of no FOSS/unlicensed products. Ok then!
So I sit down, start to get the networking stuff up. Brush off my knowledge on sockets, poll() and select() APIs. Quite easy, actually, and I get something you can talk to the next day.
But, after two weeks, the deadline is passed, which means corporate does not feel like renewing my contract. So, since I “can’t meet deadlines” (which were unreasonably set in the first place) apparently I now gotta find another assignment. Because I chose the hard but rewarding path of going the extra mile to make this portable to the related Dis Project™ and Dat Project™, so basically all they need is one week integration work to save 8 weeks per project. Too bad they don’t think far enough…
Maybe I am just too much of an architect and take too much pride in my work to be a good contractor? Ah well, not too sad about it, will definitely not miss parsing strings with C on this fun little project, but it was interesting for sure to finally build a full stack webpage from HTTP server and up. What I have is already delivered + integrated, and got another thing lined up in August too. Let’s see the next guy struggle with juggling all those tech together… Thinking about doing a from-scratch implementation and releasing that under a BSD-style license, but let’s see what happens!
Anyway, rant over. Carry on! Hope my little rant brightened up the day for someone!