Hello there! I expected that this status update could be shorter than the previous one, but then I started to tell the my life's tale. So, let's get started!
In those early 2023 days, I went to my ex-boss and explained that I had to leave. That my values are too disaligned with those of the company. That was the tl;dr:
I have been working for Synbioz for three years, a french web-development company that focuses on Ruby on Rails development. The company markets some values that are aligned to mine. Things weren't perfect, but it was fine enough. We were using the Google toolsuite for everything, from mails to meets, but were also self-hosting Mattermost and some other okay-tier programs. We were hosting client services under AWS, but were using GitLab and signing our emails with gpg. It was barely good enough for me to stay, but I had other concerns in my personal agenda that were more important.
This company has recently been sold to Ouidou, another French company that was founded just 4 years ago. This company already staffs 150 employees around every corner of France. Its fast growth already worried me, because I didn't choose to work for a company with a headcount of about 10 just to end up working for a mega-corporation. The toolset rapidly and dramatically changed, moving from Google (already bad) to Microsoft… Outlook never allowed me to use emails in my setup . Our GitLab plan has been stopped, breaking some CI jobs and removing some features. Our access to our password solution has been closed. Even in the marketing corner, no place for some remaining Synbioz values.
So, I knew I would have to leave at some point.
I asked politely to leave; I planned to start my own self business. To help me with that project, the safest approach was for me to finish my work contract with what we call in France a "Rupture conventionnelle". Both the employee and the company agree that they should split. This isn't a fire nor a resignation and it allows the employee to earn some unemployement assurance. It also would grant me some financial stability to start a fresh project.
My ex-boss agreed, but explained that he isn't the one that making this kind of decision anymore. He asked the HRM, who rapidly refused. The answer was that it would cut into their margins. I could leave anytime cause they basically don't need me. I just have to resign.
I felt betrayed because I has been put in a precarious situation without any notice. This made me angry, sad and frustrated, and really affected my mental health. At this point, I am still unsure of what I should do and how.
In a perfect world, I would begin my self-employment and work for projects I love. I code for good software that will last, and I build a stable ecosystem of partnership and self-hostable SaaS solutions. I do some consulting and missions on the condition these concern FOSS projects. I take more time to seriously study the Linux kernel and low-level language development (I have more appetite for those than for web development today). I work from home, on my own schedule and rely on a FOSS toolsuite of self-hosted or partnered solutions that I share values with.
I'm terrified that I might not be capable of building this stable lifestyle, but I know that I should at least try to!
I was thinking about software I would need as a freelancer, and the most missing part to me was be a billing tool. I asked the Fediverse what FOSS freelancers used, and found no clear answers. This was a perfect occasion to play with Flask again!
I started to code for fossbill.org, a simple and fast billing solution with a very tight scope. I need to be able to:
- generate drafts and bills easily
- compute invoice amounts and taxes
- send drafts and bills by email
- keep a log of activity (creation date, sent date)
- mark bills as paid
I think this should cover most of my micro-freelancer needs, at least while starting. It is a great occasion for me to try to build a SaaS service and to gain some experience in that business model. Even if it doesnt take roots, this made me build a real world Flask + SQLAlchemy tool from scratch.
This project still is under development and some domain features are still lacking. Some other features I still have to implement cover the business plan:
- data import/export
- user payment registration
- customer invoice generation (for the SaaS service itself)
- user customisation configuration
Last status I wrote I initiated an overhaul of the sxmo status bar component displaying. This works is now complete and is waiting for its dependencies to be released. Here are some details:
The design is simple: sxmobar only manages the bar components. There is no battery nor network nor any kind of embarked monitoring. You can use it like so:
sxmobar -w -o pango|tty|plain # display and follow the bar on updates sxmobar -a a-component-name 10 "My component" # add (and override) a component "My component" with order priority 10 sxmobar -d a-component-name # Delete the component
You then use monitoring tools that trigger updates to bar components.
This implementation has to be robust and keep a consistent state of the components. Both processes do NOT communicate through IPC nor sockets. Concurrent addition, update or deletion shares a single state file. Re-writing this state file triggers a redraw of the status bar in every sxmobar process that watches. The bar should be displayable as plaintext, tty or pango markup. Which means that the bar can be displayed as swaybar content and as a ssh tmux status line at the same time. Bar components have a foreground and background color, a style and a weight that is specified when adding them.
I had to add some missing syscall glue code to Hare for inotify and flock to respectively watch for file rewrite, and prevent concurrent reads and writes.
Mhh, and I think this covers my productive time this month. I was less active than usual, as I had difficulties preventing me to focus on interesting problems.
I still don't have the structure or freedom I want yet, but if you want to hire me for some cool projects, I am ever open to propositions!
Willow, out.RSS feed