First installation = A key to success
Everybody knows that first impression matters. When you are starting a business and trying to gain market share, every lead is even more precious.
Key to have good first impression in enterprise software world is a reliable and flexible installation. Even if a software, we try to sell, would be better than the competitors, there would be deals lost, because installation is very hard or not flexible enough.
First installation is first impression.
I am extremely proud that RhodeCode's installation story is far better then any of the competitors and plans for future are just mind blowing. If you are annoyed by hard installation and maintenance in your organization, then keep an eye on RhodeCode Control tool in the future and give them a shout about your problems.
All of this was done within a year with a team that you can count on one hand. This makes me extremely proud that I was able to contribute to this success.
RhodeCode adopted Nix fully
Nix was adopted at all levels. We unified our engineering process around it and I am not sure everybody just realized how much struggle we saved with it.
While such a choice might seem reckless, RhodeCode gave Nix a fair try and it just happened that Nix was a better fit than any other tool. No more sea of tools (e.g. pip, npm, apt-get) just Nix.
Nix provides a development environment to make developers productive in few minutes and makes sharing environment changes much easier. Testing is performed continuously (via Jenkins) and Nix provides isolated environments which can be reproduced locally. And last Nix was used to package all dependencies and bundle them into installable package.
Important thing to take away from last year would be also, that Nix can be integrated gradually, at any point in time, at any speed, over any part of the engineering process. Full adoption is not required, but if you are a startup, it makes a lot of sense that there is a tool that can be used across all company. That is what we did at RhodeCode.
At local DevOps Meetup I presented this in a talk Continuous development (slides).
My work at RhodeCode
In the year at RhodeCode I worked on many different areas:
- Introduced and implemented into the process, a new tool Nix to manage development, testing and deployment environments.
- Helped port software to Cygwin + Nix and create Windows Installer using Inno Setup.
- Designed and implemented new product RhodeCode Control, a generic command line utility which installs, removes and configures any RhodeCode's application, first of them being RhodeCode Enterprise.
- Created web interface for RhodeCode Control using React and SocketIO.
- Design, implemented and managed Jenkins infrastructure for build and delivery process (multiple deployment channels: nightly, beta, final).
- Managed internal servers (NixOS) and network.
Looking for new challanges, hire me!
After a year of hard work everybody deserves a break. I have taken mine and visited my family in Slovenia and did I quick hiking tour in Slovenian Alps with my girlfriend (some photos).
As you can see I do not get scared by hard problems (e.g. packaging) and I like to be involved into whole development process.
From today on I am available for hire or just call me for a coffee :)