As I celebrate 25 years of work as a software developer, I look back at one of the most thrilling and frantic times in my professional life: those five years in which I worked as a freelance professional.
Yes, I’ve been around for 25 years. As I said in a previous post,
I started my career as a software developer at precisely 10am, on Monday October 6th, 1997, somewhere in the city of Olivos, just north of Buenos Aires, Argentina. The moment was Unix Epoch 876142800. I had recently celebrated my 24th birthday.
Le sigh. Anyway, I digress.
From 2008 to 2013 I ran my own little software company, mostly dedicated to building mobile apps for Android and iOS, using native and web technologies alike. Being the only person working in it, I was responsible for everything; from writing the code, to managing the business.
To run the company I used a small set of self-hosted software packages, written in either Ruby on Rails or PHP, conveniently hosted at Site5.
- I managed all of my projects using my own Redmine instance. It had all the features I needed: projects, tasks, Git and Subversion repository browsing, user management, even Gantt charts, and a lot more. All of my customers had an account in it, and they could open tickets for their applications if needed. Redmine was by far the most important piece of IT infrastructure in my business. It was available at projects.akosma.com.
- I ran a second Redmine instance to support my trainings1, available at training.akosma.com. In this website I would create a new project per training session, offering a forum for questions (I offered one year of support after every session), a code download section, a wiki with interesting links, and presentation slides used during the sessions. My students loved connecting there and asking questions.
- I kept track of my contacts, business deals, and more using an instance of Fat Free CRM, but because I wanted to be able to update it quickly while on the move and without having to open my laptop, I wrote an iPhone app called Senbei to access it on the go. I could keep track of dozens of customers simultaneously with it, I cannot stress how useful this app was for me. This was hosted in crm.akosma.com, and since it was referenced nowhere, the Internet Archive has no memory of it.
- My main website was running on WordPress on the akosma.com domain (well, at the very beginning it was just a static page.) I always loved WordPress and I most probably always will. The full archives of that blog are available in this website now, converted in Markdown format suitable for Hugo to consume.
- I wrote and hosted my own URL shortener, first as a Ruby on Rails app and then I rewrote it in PHP, called cortito. My friends at Zerofee in London designed a beautiful UI for it. It was first hosted at url.akosma.com and after as akos.ma, yes, the same URL that I’m using now for this website.
- I used an instance of MediaWiki as my corporate wiki. Some pages were public, some others not, and I gave access to it to a few customers to work on documents. But I didn’t use this app very much; Redmine had per-project wikis that were much more useful. It was running at wiki.akosma.com. By far the most popular page of this wiki was the iPhone URL Schemes page, which received a substantial amount of contributions from other developers, and was referenced in a lot of blogs and Stack Overflow answers back then.
- I had another self-hosted application (maybe at apps.akosma.com or a similar domain, can’t remember) that I used to distribute beta versions of the apps I developed for my customers, including all the required certificates so that iPhones wouldn’t choke. This was years before TestFlight, people. We had to do this ourselves.
Most of these self-hosted apps stored their data in MySQL databases. I updated them around three or four times a year; which for Ruby on Rails apps is quite cumbersome in general. No containers here (this was before 2014!) Site5 offered an account in a virtual server with Rails, PHP, and MySQL support, so just SSH and have fun.
As for desktop software, I used the following:
- For consulting gigs, I used GrandTotal to generate invoices. The developer of GrandTotal had its own time tracking application back then, called TimeLog. It was a powerful combo, and it helped me a lot. Years after akosma software closed, in another venture, I used Harvest for this purpose.
- I drafted offers and contracts for my customers in Pages with a custom template. I remember that I hired a lawyer specialized in software consulting services to draft the legalese of that standard template for me; one of the best investments I made when I started my business.
I also used a few SaaS services:
- “Google Apps for your Domain” as it was called back then, to host my email, calendar, those kind of things.
- Dropbox for file sharing.
- And I had a paid GitHub account to store some private Git repositories (you needed to pay for that back in the day, now you can get it for free, even if with some limitations.)
I also outsourced various services; it’s important to outsource those things that aren’t your core competency.
- I hired an accountant to do all the required tax filings on my behalf every year. That was also very helpful.
- I hired >moser, a design agency in Lausanne, for the visual identity and stationery design.
- I had my akosma shop at CafePress where you could buy coffee mugs, apparel, and even iPhone bumpers with the logo of my company. I know, I know.
- And the lawyer I mentioned a few paragraphs above.
25 years. I still can’t believe it.
I could have used something like Moodle for that, but I didn’t know about it. Redmine did this job very well. ↩︎