Just 5 weeks ago I posted my story about how I resigned from my job and started as a freelancer. I casually shared it on hackernews and my facebook and went to do other things. The response was really overwhelming. Hartwarming. I got some great feedback. A lot of comments on my blog and on hackernews. A lot of people contacting me how they would like to do the same. I even reconnecting with old contacts. My server crashed several times and last week I got a 6 EURO bill for the 31 GB of traffic a used on top of my fair use policy.
Thank you all very much for your comments and advice! You really made my day!
So how am I doing?
I’m doing good. I’m on my first contract. It’s a parttime asp.net / jquery job till the end of the year. Building educational software (which is my preferred domain) and on a 10 min bike ride from home. It’s a nice team of highly skilled people, working hard on a nice project.
Before I started freelancing I had a lot of fears. I had the fear that I would not be able to find work, that I’m to socially awkward to connect with other people and that I overestimate my own skills. All where rendered untrue in the first weeks. I have had several offers for projects. I managed to be part of a new team within days and receive praise about my work and I’m able to contribute very well. And best of all: it’s very long ago that I’ve been so relaxed. I’m providing for my family and they have a happier dad and husband.
Off-course it only has been five weeks. But the outlook is good. Feeling verry happy about my decision at the moment!
How did I start?
On of the first things I did when I decided to resign was to call the people I know that have done the same. Two former co-workers started freelancing a while ago. I called them with two questions: “Would you do it again?”, “How are you doing it”. They both answered with a very convincing: Hell Yeah! And very different ways in how they are doing it. They both gave me the same important advice: get the word out. Change your linked-in profile, your twitter-account get the word out. Make sure people know what you can and what you do. And secondly: pick a niche … eventually.
Take two years of starting up and making some name and make sure you are an expert in something. So that when people say: “If I only knew an expert [windows debugger, jQuery guru, App developer, drupal OTAP specialist, ...] my day would be saved”. Fill the dots for something. What do you get complimented on by your co-workers, your boss? That might be your thing! But if you don’t like what you are best at, what do you do?
At my goodbye speech my former boss said it very well.
“It’s a shame, the thing [he] is the best in, he doesn’t like doing at all”
According to my boss my talent is to explain technical things to non-technical people in a non-threatening way. And that makes me a good seller apparently. But boy do I hate that.
And that is my next hurdle. I need to find my niche while I’am a generalist at nature. I have broad interests and want to learn everything. I find an interesting topic, delve deeply into it. Even buy some books … and then my interest fade quickly.
So what will my expertise be?
Two months ago I did the thing that nobody expected me to do. I am 32 years old. Father of a 1 year old girl, I have a house with a mortgage and a job which payed well. And I quit. It was bound to happen sooner of later. I worked at the same company for 8 years. Doing different things every 1,5 years. I went from being a webdeveloper, support manager, technical manager to product manager and finally an app developer. I have tried a lot of things and found out what I really want in a job. And I wasn’t able to get that anymore from the place I worked. So the decision was easy. I decided within that weekend.
I had a great time working at the company. I learned tons, made a lot of friends and got a lot of support trying out new things. But being part of a projectteam wasn’t going to cut it anymore. My dreams and ambitions are bigger. We grew apart.
I explained this all to my wife and luckily she was very supportive. People around me where shocked. By quitting my job I also resigned my right on government support. If I had been fired instead of quitting the government would have paid me a salary for the next couple of years. Now I get nothing. People call me brave other people call me stupid, some call me both. I have to take care of my people and the economy in Europe is not exactly blooming right now. A lot of people ask if I have found another job or some contract work and are amazed when I tell them I don’t have any. Normally people don’t quit without have some sort of guarantee for work.
I’m excited. And scared. I am on my own. I know my goal. I want to work in a company like Valve, Mojang, Khan Academy, Fog Creek or Github. Places with a hacker culture (or so it seems). Small teams of likeminded people working hard, playing hard to achieve a goal. Unfortunately these companies are all out of reach. I don’t know if i’am good enough to work at any of those companies. But anyway I won’t be able to relocate. My wife is a highschool teacher. See lectures Dutch. And therefore she is bounded to the Netherlands. Not that I regret that, I like living where I live. Having my parents and family close. Above all my family comes first.
Instead of grieving about the fact that I won’t be able to work at one of these companies, I decided to try and build my own. We have some savings that will last us around 4-5 months. We have a sideproject (jufmelis.nl a site I run with my wife for people studying Dutch ) which will grant us another 3-4 months. My plan is to build some low-maintenance projects to generate an extra income. Do contract work as a webdeveloper and appdeveloper and try to build a company from there. The goal is that in 2 years time my small company has grown to a small team, hacking away with nice people in a nice office. Making quality stuff for people. Put a smile on people’s faces when they use our products.
Today is the first of my unemployment. I have given myself 4 months to prove that this plan can work. I truly believe that it can. To be successful I have to get out of my comfort zone. It will be hard, I will hit walls, I will fail at things but hopefully I can make this work. Wish me luck!
Recently Notch (of Minecraft fame) anounced his new game: 0x10c. It is a space game. In this game you control your ship via a computer. This computer is the dcpu-16 . And this computer is fully programmable. Notch released the spec and a lot of tools have been released in the days after. I was immediately triggered by the spec and decided to build a javascript for this CPU. I took me a while but here it is: the javascript DCPU-16 simulator. You can find it on Github here: https://github.com/wasigh/Javascript-DCPU-16-simulator
I tried to fully test test the CPU. But still there are some bugs. Mainly because my misunderstanding of the spec. It was a fun project to do and I learned a lot about CPU’s and why a IFN will take an extra CPU cycle when it test fails. Hint: variable instruction length. Feel free to Fork it on github, post issues and send me pull requests.
A lot of discussion about DCPU-16 is over here: http://www.reddit.com/r/dcpu16
Yesterday Kent Nguyen posted a blog: “Dear business people, an iOS app actually takes a lot of work!” which got a lot of votes and comments on hackernews.
And it really amazed me. For two reasons: First, the points he is discussing are nothing new to App development. They are true for any software project. So why is he upvoted so heavily? Secondly because I disagree with some of his comments. Do I miss the big picture or do we just have a different experiences.
Apps are just software
I’ve been working for almost 10 years in software development doing consulting work. The discussion has always been that in software “there is more than meets the eye”. Most of the work is done in the backend. This is not only true for apps, but for all software projects. And as software engineers it is our duty to inform the customer. And advice them in the steps to be taken. In the remark: “prepare to pay more than just for the iPhone app” iPhone app can easily be replaced by website.
He mark some of his text in bold: “You need to have a server“, “There is no standard way, there is no plug-and-play way to do it“, “These APIs must be in existence before you can proceed to make the iPhone app”. And I dont’t agree. On some projects I worked on I just used my own server or a service like parse.com. For other project we created a REST web api, hosted on our own servers to connect to in the app. The REST web api will connect to the customers webservices when they are ready. Till then we are able to present mock data and test the interaction of the app. So we have created the IOS app, we are testing it’s flow and getting feedback and are able to change the behavior of the app while the API is not set in stone. How lean is that?
About iPone development
My flow of app development (iPhone of Android) is fairly different than the flow Kent posted. Normally I would start by creating an interface design in balsamiq . And begin the initial development of the interface directly after that. In the first version I focus on the interface elements and their interaction. I use fake pictures and create the flow of the application. This will take me somewhere between 2-5 days. I will show the app to the customer and will gather feedback. In my experience the customer understands the app the best when they can interact with it on their phone. Luckily we have tools like testflightapp to send updated versions to customers.
In this phase we discuss new wishes and I give them quotes. Based on my experience most of the wishes they have at this stage can be implemented in a couple of hours. Even a Facebook like button.
After we agree on what will be in the app, I provide the app to a visual designer to finish the design. And when he finishes I implement the design in the app. Screen by screen.
So I disagree with Kent. Nothing he states is new for app development. Teaching a customer how we create software has always been part of the job. And I don’t have the same experiences with the limitations in the workflow. I can build apps “lean” and “agile”. But perhaps I’m missing something here.
Earlier today thepiratebay.org announced a new category on their website: physical objects. Which I think is very cool. The whole concept of 3D-printing stuff at home is weird and totally awesome. With the availability of various DIY printers for an affordable price printing stuff at home is no longer future. And what is the Internet without a place to share designs?
3D printers create a whole lot of possibilities for new business models. Soon people will sell their designs on the Internet for other to prints. Just-in-time manufacturing will get a new meaning. I foresee a future where shops will exist where you buy a 3D-Model, send it to your home printer when you buy it and have it ready when you come home.
Maybe copy-shops will have 3D-printers for finer detailed prints, and people will be able to alter a design before printing it. Making objects more personal.
If anything, the pirate bay has made 3D-printing more mainstream. Which I think is a nice job.