The Journey From A Side Project To A Digital Agency
Karin talked at WordCamp Vancouver about our journey with Freshjobs.ch – a job board for Swiss web professionals. The talk is intended to be a business talk. She’s going to share our experience in designing & building an online platform on top of WordPress. Karin will share some secrets and learning from running and maintaining it since 2011.
One can have many reasons to form a WordPress agency. At required we didn’t think about becoming an agency in the first place. Initially we teamed up to build an online platform that scratched an itch in all of us, we simply wanted to try and prove a point with the idea we had. All of a sudden we were running a thriving job board for the Swiss web industry and had a beautiful side project to work on. In order to keep our creative freedom and sovereignty, we didn’t want to take money from venture capitalists or investors. Therefore we came up with a concept to keep us going while allowing space for our individual lifestyles. We started to take on interesting client projects, this way we continued to build interesting sites and apps.
View the Slides
Watch the Talks
WordCamp Vancouver 2016
WordCamp Milano 2016
WordCamp Nuremberg 2016
Photo by Zach Miles on Unsplash
Tanskript
Some people in our industry write long and detailed business plans before they start with an idea or a product. Others just build stuff in order to do what they love to do. I never planned to be self-employed or even run my own company. It just happened somehow by doing what I love.
I’d like to tell you a story – the story of how I teamed up with great people to build a side project which led us to become a WordPress Agency.
Let me introduce to you how I met my team:
The past 10 years, I worked as a Designer for several web agencies and changed jobs and agencies very frequently. I worked with a lot of talented people along my jobs. One of them was Silvan, whom I met when we worked at the biggest web agency in Switzerland. After a while, we both switched to part-time work to fill the missing creativity in our day jobs with side-projects. In order to cover the skills needed for our side-projects, we needed to expand our team with a bit more manpower. Silvan worked with Velthy at his former job and was really fond of his visual designing skills. He proposed that Velthy would be a good fit for our team, and I already worked with Stefan a couple of years ago. I found Stefan would be a good complement to Silvan’s coding skills.
Since we were already experienced in working together on our former jobs, we all agreed to give it a try. We are a good mix in terms of skills. Two of us are designers. While Velthy designs nice and usable responsive interfaces in the browser, I am more focused on the user flow and information architecture of a website. The other two are developers. Stefan is a solid PHP Developer who builds custom web applications, and Silvan has a deep knowledge in WordPress Development.
We loved our freelance projects, but there is a thing when working for clients, you always pursue the client’s wishes in the best way possible. We always dreamed of building a “product” where we were actually our own clients. Something where we could express ourselves and follow our ideas.
Let’s go back in time to the year of 2006:
Finding a job in the web industry was very disappointing. There were relatively few job listings on the major job-boards in Switzerland. Besides that, when looking for a term like “Web Design,” one would end up with a huge list of jobs from SAP consultants to Java Software Engineers, which aren’t really design jobs at all. Well, back then and still today in our industry, job titles aren’t really formal or somehow protected. Everyone could call themselves whatever they want. “Web Designer,” “Web Publisher,” “Frontend Engineer,” …you know what I am talking about.
Finding a job that matches what we were looking for was a gamble with keywords.
You know the funny thing about life:
sometimes unhappiness can lead to new ideas. Because since we were all unhappy with our day jobs, we were obviously trying to find new ones. This was really complicated, so we all shared a similar problem and that’s how we connected and decided to change it. We wanted to build a dedicated job-board with consistent content quality to provide relevant job results for web professionals in Switzerland.
Fast forward to summer 2010:
we didn’t build anything yet. The concept of a dedicated job-board popped up again in a discussion over a couple of beers. The urge to change how to find jobs emerged in all of us again, because the pain still existed. We decided that it’s time to finally do something about it and started brainstorming on features, names, and a suitable technology to be used. We had some big and awesome ideas how to change the way people in the web industry would find jobs. But… We wanted to start lean, with a prototype to get the feel for the industry and how a niche job-board would perform with its huge competitors – the well-known job-boards we didn’t like.
Therefore, we focused on how to provide good quality in content and user experience instead of a fancy feature-set or an entirely new concept to present job listings.
As Silvan was already really fond of WordPress back then, he wanted to build the job board with WordPress. Since it was still just a proof of our concept, we took an existing WordPress theme that had job listing features and started tweaking it by removing unused features and adding new ones. And this was a good way for the others on the team to get to know how WordPress works. SwissWebJobs was our mission name and we ended up building a proof of concept within 3 months. We knew that SwissWebJobs wasn’t exactly a catchy name and people would probably mean that this is just another platform with jobs on it, so we decided to come up with something catchier and a little less specific. We came up with the name Freshjobs, and Velthy designed the visual identity.
We were already done with what we were experienced in.. designing and building a web application… but we eventually had to make decisions on how to run the job-board. That was new to us. We launched Freshjobs on January 31st in 2011. In order to already serve content, because a job board is only good with active listings, we asked big agencies for their current openings and offered them a special deal. By the time we launched, we already had lots of interesting job openings on the page… and we had our very first paid listing on day one of launching Freshjobs.ch! This is what the first version of Freshjobs looked like. We had dedicated categories: Backend, Design, Frontend, Consulting. A job listing had to fit into these categories, otherwise, it wouldn’t be a fit for this job board. On the right, you see the responsive experience on a small device. So there is this thing when you work on your own product. It’s never finished, right? So people tend to postpone to launch and sometimes never launch at all. We managed to launch Freshjobs with some features missing. For example, the renewal process that allowed companies to extend their job listing was broken. This wasn’t a showstopper for us because since the duration of a listing would be 60 days – we had 60 more days before the first customer might end up extending their listing. 60 days later and the renewal process was still broken… so we ended up doing this manually… 5 days before a listing would end, we manually sent an email to the customer to inform them about the possibility to extend the listing for free. This way we could manage to renew their job by ourselves and our customer didn’t notice that there was no feature for that. This was actually awesome because: – we had consistent content on the job board – we engaged with the customers and could answer their emails personally which made them feel good. – we got a sense of what our customers needed so we could later automate the right features.
Freshjobs got noticed:
we got approached by investors.. but Freshjobs should stay a side project. This way we would keep our vision and stick to our ideas without any outside influences. At this point, we were all individual freelancers who worked together from time to time. But each of us had its own company. Its own accountant. Which made things very difficult in terms of invoicing a project for example. That’s when we decided to build an agency to finance the job board.
We are required – we would provide services in the field of UX Design and WordPress Development. One could book us as individual freelancers or one could do a complex web project with us. After the merge, the freshly founded company already had a bunch of clients. The clients each of us brought into from freelancing. And most importantly, we automatically scaled our network in the industry. Since everyone of us is based in different cities throughout Switzerland. At that point we all had our small clients and projects. Which were basically small company websites or blogs for marketing and PR people. Our small clients suddenly were the entrance to bigger projects. Because they either worked in the marketing department of a corporate company or they worked as independent consultants for them. Since they were already really fond of working with at least one of us, they automatically suggested us and got us in there. Once we had collected some corporate clients especially the big ones, we kind of got visible to others in the same league.
So far we have a good mix of small and big clients in very different branches: Travel, industrial, directories, e-commerce, music & sports. We made the experience that it is good to have a good mix of project size. Because the small projects won’t take too long and we can squeeze them in between the bigger project. This way we have a good variety of work and smaller project get paid sooner, as well. Our corporate Clients are in the field of Insurances, Swiss Federal Railways and Swiss Banks. We made the experience that once we’re dealing with bigger clients we have to structure the project team a bit different. Because there are much more project managing tasks in terms of communication. A lot more meetings and documentations.
To expand our knowledge in WordPress we early on got in touch with the WordPress Community. First we attended the local Meetup in Zürich where we got to know other good WP Developer and then the whole company travelled to the Netherlands to attend the first WordCamp Europe 2013, where we could connect with International WordPress People. We eventually sponsored and helped organize the local Meetups and a year later we even co-organized the first formal WordCamp Switzerland in 2014. As an organizer we got to know all the speakers and sponsors the community provides and we could expand our network even more. Another good thing about organizing the WordCamp was that we had to approach Swiss companies regarding sponsoring. This way we could spread the word even more… and the Swiss web industry noticed that we are not only working with WordPress but also help the community to grow a bit more in Switzerland. Which led us eventually to new clients and interesting projects. We wanted to share our knowledge and that’s when we started to speak at WordCamps. WC Switzerland was our first try. And suddenly in the same year we managed to speak at WordCamp Europe in Sofia. Here is a picture of me speaking about the UX process I setup for prototyping within the UX teams at one of our well-known Swiss ecommerce platforms ricardo.ch – which is basically the eBay of Switzerland. And then it continued, here you see Silvan speaking at WordCamp London 2015 where he shared his experience with running multisite on a big projects. And Pascal from our team recently spoke at WordCamp Europe in Vienna, where he shared his journey from a blogger to a WordPress Core committer. And Ulrich our newest on the team got the chance to talk about how to develop Themes & Plugins in harmony at the same WordCamp OpenSource became a topic as well.
Since we built similar features for each of our clients we started to turn them into reusable plugins and then we started to open-source some of them. At the moment we have 7 plugins in the repository. This way we could improve our WordPress skills because our developer had to follow the requirements in developing for open-source. Also, we could win some of our new clients because we could offer them already plugins we built for cases which were similar to their feature requirements. We never wanted to grow, especially not fast. Up until 2015 we managed to handle our client projects and our job board with the 4 of us. But there is this thing of running a company. It’s good to have consistency and the best way to have consistency is to keep your clients after the initial project. So we provide maintenance and support services, that’s why we are automatically growing with each new project. To handle that properly and with the quality we want to provide we have to expand our team eventually.
Finding good employees who fit into the team, who are passionate and self-disciplined is not easy. We had to expand our team eventually but only with people who did fit into our team spirit. And most important they had to make the team and the company better. Here you see Ulrich and Pascal. Pascal joined us in the beginning of 2015 and from day one he is very valuable to our team and the company. Since August 1st we are proud to welcome Ulrich to our team as well. We found these two passionate WordPress Developers while being active in the WordPress Community and both of them are very active contributors to WordPress too. Pascal is one of the very few core committers who got commit access and Ulrich is a Key Code Reviewer for the Theme Review Team. So we take it slow but steady. One team member at the time. One each year: 2015 Pascal joined This year Ulrich joined. Well, since it is so fresh we don’t have a drawing of Ulrich yet, sorry about that :)
And we just started a trial with someone who we are very looking forward to join the team by next year. We know all of them through the WordPress Community and so far it’s been amazing to work with them.
But wait what happened to our side-project?
In 2014 we finally planned the milestones to build the job board we always wanted. Some of us did focus more on clients work because they rather worked for client projects and some of us worked on the job board. Over the last couple of years of running a job board, we collected many valuable experiences and we knew exactly what our customers needed and most of all what features we as providers needed to maintain and run the platform more efficiently. …and that’s what we were focusing on… building features and designing user flows which we knew were valuable for all. In July 2014, we finally launched Freshjobs with its new design and features. The job board still runs on WordPress. And this is how it looks since:
- To our users, the job seeker: There is an overall improved user experience for searching jobs with a filter.
- To our customers, the employer: We improved the user experience to post a listing. Less form fields and an easy signup flow. Most importantly we improved the payment process with a stripe integration which makes paying by credit card very easy.
This is the view a company gets once logged in: Remember our missing feature? The broken renewal process? 3.5 years later we finally built it: one could stop the listing and activate it later on or one can extend a listing there is also the possibility to see the transactions..and download the receipts. Since we launched the version 2 of Freshjobs we observe better usability by our customers because of fewer support requests. The renewal feature and the automatic email the platform sends led to the fact that almost every job gets extended.
Ten years later of the initial idea Freshjobs celebrates the 5th anniversary :) the idea of a niche job-board for web professionals in Switzerland seems to work and we are very proud.
The balance
Working for clients and products equally well is really challenging. We have so many ideas for Freshjobs but rarely time to work on them. Sometimes it can be frustrating because we automatically put the agency work first. Because that’s what we decided to focus on.. and our clients are eventually the ones who are paying our bills.. We are lucky that the job board is more or less running smoothly… we run the daily business of course by reviewing the listings and answering support requests, therefore there is always one person of our team on duty. We sometimes switch responsibilities so everyone on the team knows how to run the daily business with the job board. Which makes us more flexible. People who are following us asking how we do this. Handling so many projects and running the job board with such a small team. I always tell them: Focus Matters! Because the constraints force us to focus: Which means that if we manage to work on Freshjobs we try to work on things that matter. And we only do what we are best in: That’s why we would focus on the things we are passionate about and won’t take on projects nor clients which don’t share the same mindset. Because we truly believe that if everyone on the project is passionate about it everyone will get the most out of it. That’s why we do UX Design, Frontend- & PHP Development, either custom or with WordPress. If a project isn’t a fit to our skills or to WordPress we refer it to another service provider. …which is giving us more space to focus on what really matters to us “working on our passion”.
The takeaways:
With our process of running an agency and maintaining a job board alongside, we definitely learned many things the last couple of years and we are keen to give our learnings back to our clients and events like WordCamps. First of all, Make sure your team is always happy. Because happy people perform better. Second: Provide the best service your clients can wish for because happy clients will refer you to others. We are lucky that almost every project we get is a referral. That saves time! Let limitations guide you to creative solutions. Constraints drive innovation and force focus – use them to your advantage. Since we don’t have much time besides the client projects we work only on features which really matter. An idea by itself is worth absolutely nothing, it’s the team that executes on the initial idea that makes the difference. —> we are a great team and support each other while respecting our individual lifestyle FALL IN LOVE WITH A PROBLEM everything else will follow …because people who are passionate about solving a problem, are the ones who eventually find each other and make it happen. People who are passionate about solving a problem, are the ones who eventually find each other and make it happen.
Working for clients and products equally well is really challenging. We have so many ideas for Freshjobs but rarely time to work on them.