This Is My Story – Part 2
Posted by Filip Ekberg on July 17 2013 2 Comments
Turn off the lights
Posted by Filip Ekberg on July 17 2013 2 Comments
Turn off the lights
The last year in high school we had a course that focused on you creating a bigger project. You had to show a time plan, requirement specification and all that necessary to solve a project. I of course decided to do something in regards of programming. I didn’t know what though but I got some help from the school principal that was really interested in programming and electricity. He saw that I had potential so he offered to spend the weekends working with me on my project.
He send me off to a local hardware/tech store to purchase one of those remotes and receivers that can turn on and off whatever is connected to them though the electrical socket. Once I got back we cracked open the case of the remote and he started showing me how to “hack” the device and how to understand it without the blueprints.
I was shown that when you press the button it activates the circuit and when that is done it knows that the button is pressed. So if I recall correctly we connected two cables, one on each side and then we could simply send a small signal that activated the button. This was connected to the LTP(printer) port on the laptop and I created a program in C# that simply sent signals to it; it even had dim capabilities!
We wanted to make it easier for parents and the lazy people to have control over what devices are turned on or off in their home. With this device, you can simply open the Blasting Home Control program and press On / Off to control it.
The project was a success, but when it came to presenting the project for the entire class I panicked. I really hated standing in front of people maybe because I was forced to do it and never learned how to do it properly before. Either way I got to do it in front of a small group that just had the principal, my teacher and one or two more people. We had another guy in charge at school, he was in the military prior to working at the school and I told him off my fear and he gave me a private lesson in how to speak in front of an audience. Some neat tricks such as walk from one since of the room to the other, taking small pauses to breath, drinking water and what not; I was still nervous though.
Games follow me everywhere
Outside of school I had as much going on as in school, I really didn’t spend as much time in school as I should have because of all my side projects. The final exercise in our C# programming course was to write a game based on the teachers game engine that he wrote in Managed DirectX 1.1. I really didn’t fancy that though; how much programming do I really learn from using someone else’s library?
I went home and started reading up on DirectX, I can remember reading “The Hazy Mind”’s blog over and over again to get an understanding of how all these things work. I challenged myself into writing this in Managed DirectX 2.0 Beta since I thought that was the future; what a fool I was. To prove a point to my teacher, before I showed him that I wrote my own game engine I decompiled his game engine and did something quite funny. He had a text floating around in the top left corner which said his name and the version number of the game engine; don’t ask me why you might want to have that in something you’re just using in your class for your students. Anyways, I decompiled it as it was written in C# and I changed the text to something like “Filip owns!!!” and then the next day when I showed him my “progress” he noticed what I had done and I had to explain the concept of decompilation to my teacher.
My teacher knew that I was working on this game engine of mine and that I didn’t fancy using his because I wanted to learn as much as possible; he mumbled a bit about it but it was never really any harm. When I had finished though and showed him a Breakout game that I did with my own game engine based on Managed DirectX 2.0 Beta he told me:
How am I supposed to grade this when you didn’t even use my game engine?
Funny enough, the same teacher didn’t want to give me the highest grade in a PHP course because I didn’t “do as much as the best one in the class”; way to compare students. It didn’t really matter that I worked nights and weekends delivering PHP solutions to customers.
The decision that changed my life
I was accepted to the two year school, it was still a couple of weeks left in school and I didn’t know if I would fail or pass the math course. All I knew was that I wanted to work with programming and I wanted to move away from Sweden; I didn’t have many friends anyways because most of them didn’t have the same interest in computers as I did.
The weeks passed and when graduation came up I got the word that I had passed the math course and I knew that the deadline for applying to college had passed; what now?
I asked the teacher/principal that had helped me with my project; the lights on/off project. He helped me apply to the college in Ronneby – Blekinge Institute of Technology and the Software Engineering program. Luckily enough they didn’t have that many applicants as programming educations had faded out a bit. Even though I applied long after the deadline I got the word that I got into the program and I was faced with deciding to either go to college to study Software Engineering or more or less being handed a job from the 2 year program.
I choose Software Engineering.
I’m not going to lie I hate math and the first course that we started off with was a math course which was told to continue on the one that I had studied in high school; this was not the case. As I am one of those people that really want to understand “why” and “why not”; I had a hard time getting along with this course. I failed it a couple of times until I bought myself all the “Calculus for dummies” books that I could find to understand all the “why” and “why not”; I eventually passed the course!
When I moved to Ronneby to study for to become a Software Engineer I wasn’t much older than 19½, I still had my company though and did some interesting business in it. One of the most interesting projects I worked on at this time was a customer that had a system where you could place the lowest bid possible on an item. Each bid cost about $1 and then you got to buy it for the amount that was the lowest unique. They found me on google somehow, I hadn’t really invested in any SEO at this time and I had a pretty bad website that described what I could do; still they called me.
The system was poorly built in PHP and I had the shivers every time I had to fix something. After a while I convinced the customer that the best possible way to fix their business was to re-write it all in .NET as they also wanted a desktop administration system. I started working on this as it was my own baby; studying to become a Software Engineer at day and working as one at night. This was sort of a dream coming true. I was faced with a lot of fun challenges, the system ran on only one server so everything had to be optimized as much as possible as the servers could get heavily loaded on some occasions; somehow the servers never crashed is it OK that I am quite proud about the system? We even had TV commercials going on prime time that had the visitors peek.
I didn’t really have time for anything else than studying for my degree and working so I put everything else on hold; friends and family. This might not have been the best decision I’ve made since I did the same in high school and in upper high school. When my classmates went out for a drink I stayed home working my stored procedures. This customer even decided to fly me down to Malta at one time to have a one workshop to get a lot of things and ideas done.
Do you know XML?
One time though I did go out with some friends and I got the weirdest call. This was a Friday or Saturday night and someone calls me up when I’m at a local pub having a beer and asks me:
Do you know XML and Excel?
I was about to hang up, as I had gotten prank calls like this before. I however decided to play along and put my professional hat on and simply told the person calling me that I surely did know both XML and Excel. We arranged a phone meeting the following day. It turned out that the person calling had an urgent fix for another PHP system that needed to be deployed ASAP and I sure enough helped out with that.
It turns out that the customer is a real entrepreneur and has a lot of interesting ideas so he invites me to come and visit him; he pays me for a trip to northern Sweden to discuss business. I was shown a pretty interesting requirements documentation about a system where customers can create their own website in minutes.
As time goes by I start building a system where customers can simply register on our website and then they get different templates to choose from and also some widgets to put on their sites. They can manage all their content freely as long as it doesn’t break any laws. It’s just a simple CMS, pretty much like WordPress.com but much less functionality. The customers can even attach their own domains and such to their website.
However something unfortunate happens, the customer can no longer afford to pay for my services and the project must stop. I decide to buy all the rights to the system and continue on my own. At the same time I still have my studies and other customers to handle and I’m all by myself. I’ve progressed about 1 year into my bachelor degree and I am still loving it a lot.
I sort of finish the system so that it runs on its own and I start to market it; mostly using Google AdWords. The customer starts to roll in, as I have a free trial of 30 days I get a lot of free loaders that don’t continue on a subscription but that’s OK as long as the system is being used.
Selling your ideas
As the system runs on its own; there’s not much that I need to do with it I can start work with other stuff as I have more “spare time”. As a letter on the mail I get an opportunity delivered to me on my doorstep, I actually talked to a guy on IRC that worked in the town next to mine and they needed a consultant for some time.
I take the job and drive there every time that I don’t have sessions in school or when I don’t have other customers to work with. It’s not really a long drive, maybe 20 minutes by car one way. Once again I am faced with working with PHP, later on though they want to re-write it all in C#. Unfortunately the code base wasn’t as high quality as the management thought so we had a lot of overhead, time wise, to understand what really happened and why stuff didn’t work correctly. The idea of the project was that you had a huge database with people and businesses with their e-mail addresses; pretty much as the yellow pages for e-mail addresses. The addresses was never displayed on the site though, you first had to initiate contact over the website by creating an account and sending a message through our system. The person on the other end could then decide if they wanted to respond or not.
As you might imagine their idea didn’t really work out but as the management was filled with entrepreneurs they had other ideas that later on took up their time. So far throughout my life I’ve been surrounded by entrepreneurs that want to change the world.
My system was still running on its own and gaining customers but I was in need of fast money so I decided to sell the system, luckily enough I found a partner that wanted to invest in the idea and put his full time programmers on adding features, unfortunately they didn’t give it as much time as it needed so once I let go of the ball the system slowly faded away and they lost all their customers.
One of my favorite food when I studied was Pizza, frankly it still is. However I really hated that I had do drive down to the pizza place and I knew that a lot of other people in the building wanted pizza as well and this means that we could co-ordinate a pizza delivery. I got an idea that I wanted to create a website that collected the menus from all the pizza places in the town and then you could add/remove stuff on your pizza. Then you could simply place the order and decide who gets it or if the pizza place had a home deliver for larger orders.
As I worked way too much already this was put on the side; which ended up being a dumb, dumb idea. A couple of years ago a website called “Online Pizza” was created and they recently sold their system for about $50 000 000. A little advice is: if you have an idea – go for it!
I Love Teaching
In 2006 I wrote my first tutorial it was about how to create a linked list in PHP. Of course as I shared this on IRC I got a lot of heat; IRC is full of haters. Looking back at the tutorial now though, I’d probably flame it a bit as well or maybe I’d be more constructive and give some pointers on how to improve it. Teacher others followed me along the way though, when I learned a new concept I wanted to tell everyone about it no matter if it was my co-workers at the various jobs that I had or my parents who probably though I was high on something for trying to teach them programming.
Something interesting happened in 2008 though, I was asked by the institute where I was studying for my bachelor degree if I had an interest in becoming an amanuensis. This means that I was a student teaching fellow students. Of course I told them that I’d love to, who doesn’t want to take an opportunity like that? Over the years in college I got more and more comfortable with standing in front of larger groups of people; I still didn’t prefer though.
We started to plan the courses that I could be a part of and I helped in preparing material for courses in Java, Databases, C++ and Network programming which was in its own a blast. Then I got to stand in front of a group of students teaching them about the concepts that I love using the material that I helped create; this was truly something magical. I can remember how much energy I had when talking about some of the very interesting concepts and seeing the students inspired was just magical. I still had a year or two left on my studies for my bachelor degree but I figured that this was an opportunity that I just couldn’t resist. Gaming had faded away from my life as programming took over both my day, night and my sleep.
Trying more than programming
On the summers though when I didn’t study and a lot of the customers were on their vacations I had to find other things to do so I applied for a job at a factory that makes high voltage cables; ABB. This was truly something different, I was a part of some really interesting things and got to learn a lot about the high voltage cables that deliver electricity to hour homes. Did you for instance know that there are built in fiber optic cables in some of these high voltage cables so that they can diagnose them?
I’ve always tried to learn more than just programming as this can help see potential ideas and customers.
Quitting school to work or staying in school?
By the time that I started my last year of college I got an offer, an offer that I really wanted to take. The job was to become a full time teacher at a high school for a programming class with a pretty good salary as well. I remember spending days and nights trying to decide if I should take this or not; I ended up not taking it though.
I still had USA in my thoughts, even if all the work and school had cluttered up my brain with other things, it was still there. I decided to stay in school and finish my courses, even if by the time I moved from Ronneby I had not finished them all. It took a couple of months after my college time that I actually wrote the Calculus test again and passed it.
Schools out – now what?
When I had turned 22 my time at Blekinge Institute of Technology was over and I had to find something else to do. Fortunately for me I wasn’t alone on this journey as I had met my wonderful fiancée Sofie during my studies. However as you grow up plans you’ve done in life tend to change and even though I wanted to go to USA it wasn’t the right time to do so. We decided to head for Gothenburg in the hopes of getting a job. Both me and Sofie got our bachelor degrees at the same time; she in marketing and I in Software Engineering.
I went on a lot of interviews for positions both as senior C++ developer on a company that develops AntiVirus software and on companies focusing only on HTML. Somehow though I ended up working at a company delivering a system to what is considered the most Swedish company; IKEA. I didn’t work directly for IKEA but I was the lead developer on the system that we worked on. Basically we handled internal orders and their status among other things. We built this using Java as it was considered Enterprise and it sounded better in the customers’ ears. I had only done some algorithms and stuff in Java before so I had to learn both Java for Web (JSF, Web Services) and Oracle as that also was much more enterprise than suggesting MySQL or something similar. Fortunately for me I could work in C# as well as we had a desktop client which they also used, here it didn’t really matter what kind of technology we used so I decided that we could add C# to the mix.
This was my first “real” job as a full-time software engineer and I started off as a lead developer, in a small team but still making a lot of the interesting decisions. Prior to this I had only worked with my own business at the side of my studies which in many recruiters eyes made me look like a junior developer; maybe I was? I never considered myself a junior developer when I finished school though.