Tell me about yourself and how you got into development (first coding experience, school, work, etc.)
I think I was 12 when I wrote my first code. It was part of a regular class in school. The computers we used could do one thing: run a BASIC interpreter. Seeing that little box display in a warm monochromatic tone results of my PRINT statements felt like magic. Infinite loop? Yay, let’s turn the computer off and on again.
My father recognized my curiosity and got me a book on programming for senior years. I learned to use arrays, write loops and conditional statements. It was a bit dull though as all exercises were based on math problems, so I had to split my time between learning to code and playing FIFA 96.
The point of no return happened with a book Teach yourself Visual Basic in 21 days, or one of those similar titles. I got a CD of Visual Studio — pirated, of course, as I grew up in war-struck Yugoslavia. That toolchain was very powerful. With very little code I could build a graphical Windows application that looked like any other.
At that time I was mostly reading books and magazines (like Visual Basic Programmer’s Journal), looking for tutorials and recipes that I could reproduce and break down. Soon I had my first shareware program which was doing some text processing for webmasters up on Tucows. Again, I was lucky to have support from my parents. And fortunately I hadn’t come across anyone to tell me that I wasn’t using a proper programming language or something like that.
Tell me about Semaphore CI. How did it get started? Where did the idea come from?**
At that time our company Rendered Text was doing Rails web development for hire. In backstage we had always been working to improve our craft, write clean code and design solid architectures. So as our practice of behavior-driven development became part of the routine and the team expanded, we realized that we need to automate the process of running our test suites.
At that time Jenkins was the only continuous integration (CI) option. I spent 3 days getting it to work on a VPS server for one of our GitHub-hosted projects. I was disappointed by its’ horrible user experience and the amount of money that we would need to spend on servers in order to have an acceptable build time across all of our projects. Not to mention the time we’d need to spend to get there. Comparing to the user experience of the likes of GitHub and Heroku which we’ve grown accustomed to, the CI situation felt pretty archaic. We thought, what if you could get to working CI in 2 minutes, not 3 days?
So a couple of things came together for us to build Semaphore: we’ve been looking to build a product for a while, there was something that we sorely needed in our daily work, and there was a market opportunity. Make a product for yourself that you sell to other people, bootstrap and build your own future — that’s where we come from. Luckily, there are a lot of developers out there with the same kind of problem we had. It’s hard to be creative if you have to maintain CI/CD infrastructure, and hard to be productive in a slow feedback loop. So Semaphore is here to help!
Where is Semaphore headed? Is there anything fun or exciting that you’re currently working on?**
We’re passionate about helping developers be more productive. So we continue to push the limits in what hosted CI/CD can offer in terms of speed. We’ve just made our platform 15% faster to support features like automatic test parallelization for the same price, and you can expect more similar announcements. Semaphore 2018 will knock your socks off!