This blog entry is long overdue. Now I am benched until the contract with my next client is finalized. So this time is as good as ever to finally pin this down…
The last 11 years took me, then my family, over two continents and three countries in search of job and home. It was an interesting journey and will continue to be so I suspect.
After 11 years and a few different jobs I have made some conclusions, mental notes that I figured was worth mentioning, at least to my self. Maybe in writing it down I will get some clarity in all of this. A lot of times that is how I work. In telling someone else, or just writing it down the pieces just fall into place.
And yes this blog is kind of longish. It is an entry actually written for myself. You are not intruding if you are reading it – but it is long and rambling so beware if you continue to read it. You might get bored. Also this story is completely egocentric – after all it is my story.
In fact I suggest you do something else with your time. If you really want to read interesting blogs then I suggest you check out Steve Yegge a blog virtuoso who is stealing way too much of my spare time since I discovered him last week
If I have any points to make apart from memory reminiscing they will probably be scattered in hard to find places, or not at all, so this is a good time to stop reading before you have lost too much of your own personal time.
Still reading? Do not say I did not warn you.
I graduated from the Lulea University of Technology in early 2001. I was all green, eager to understand what working was all about. I mean working with CS. All my previous work experience had mostly entailed manual labor. Some of my previous working experience was just silly hard,. and even mentioning it now will make you sneer and think I am being ludicrous.
Even so. I really got my first work experience during some winter weekends with my dad and brother Hedas. Our house in Alvik was heated with a huge (well I thought so then) incinerator. As the temperature crept down to -30C (-22 Fahrenheit), even touching – 40C sometimes, we needed a lot of firewood. My dad did this lumberjack-hobbyist-for-fun-and-for-necessity every winter weekend until we had enough firewood for the next season. It was manual work, chainsaw (for my dad, not for me), saw and axe. The cut down trees were stripped of branches until they were just timber. Then my brother and I took these logs and piled them. It was a lot of dragging, pulling, lifting. I always tried to take as big logs as my 2 year older brother. I probably did not succeed very often, but I tried. I was 7 when I started helping out in the forest.
I am not saying that my life was hard. I was happy, this was fun. I am just trying to build up some character here so you (I) understand why things happened later as it happened. Why I am the way I am.
At 13 I got my first summer job. I was slaving away, well at least working long days, with painting buildings, laying cement building foundations, cleaning pig stables, bringing in the hay and other pretty hard tasks for a 13 year old. I continued to work some summers at the pig farm. It totally sucked and the pay was low, the people there mostly made fun of the scrawny young kids that awkwardly tried to do grown-up jobs but finding a summer job was not so easy so this is what was available.
At 27 my past work experiences encompassed not only farm work but also working with no-safety sawmills ( I am so glad I did not loose any fingers), summer nights at a bakery doing the last touch on Danish pastry and surveing huge ovens and their outgoing bread lines., I did monotonic work in the assembly lines and technical fix-it support for a local healthcare company. At later years when I was at the university I also got some work at a day-care center and of course being the ice-cream truck man for Hemglass rocked (Hemglass is the Swedish version of the “Schwans truck”).
So back in 2001 I knew what manual labor type of work was all about. Unfortunately I knew absolutely zero about real software engineering. Just a year previous I really sucked, yes really sucked at programming. My lab partner Pär Hellström was then my constant programmer buddy. We collaborated about what do do, but when it came down to coding the loops, the ; and the if’s then else he was just so much faster than I was. Whenever I tried it was just too many forgotten ; or slow-to-look-up library calls that made it too staccato for our mutual enjoyment. Out of convenience for both of us Pär took charge of all the coding. It gave me good practice at reading code, following and pointing out improvements and thinking ahead for the what-to-do-next instructions but actually coding, really coding, was slow going for me.
Then during my way-too-long Master Thesis work for professor Roch Guerin at his lab at UPenn something happened. Maybe it was cracking away at OSPF server code, maybe it was failing miserably at becoming good at C++ templates or maybe it was seeing glimpses of what really good C++ object oriented server code could be in contrast to messy #ifdef cluttered C-code. Either way I got boosted. I realized I really liked programming. C++ was fun. Code and how it all made sense in a higher design and that source code could be beautiful in a way that I never even came close to glimpse during my university studies.
So when I handed in my Master’s Thesis (probably only a stumbling approach to be academic) it felt like a fundamental life-step. I was ready, eager and anticipating a change. A life change. Professional life change. I so badly wanted to work with my new found skills. To prove myself, to learn and do do something useful. Now all I had to do was to find my job.
… Not as easy as it sounds. For me it took almost 2 years before I reached what I was looking for.
2001 – A kindling fire
The job market in Luleå was just not for a young aspiring C++ programmer. I tried and tried and no one got back to me. All my sent out resumes and cold calls was just rewarded with the wall of silence. Not even a written rejection letter from the companies I contacted. .. Well maybe one or two letters. Hey, this is my story I can choose to forget, mix-up, misplace and distort – if that helps in getting it out, . .
… I reconsidered. Maybe the www tech had something to offer? I had dabbled with php at the University and applied for a web-editing job at the local newspaper, Kuriren. Out of over 300 applicants, a few got selected for an interview. I was one of the lucky few. All eager, all ready I was quickly shot downed, burned and rejected. All of the applicants had enough php experience – what the team really wanted was the applicant to be a good golfer and an ardent fly fisher. I was neither.
Someone, I do not remember who, told me to stop sending out my resume and just go to the companies and visit them in person. I looked over my list of companies that I had applied to. All had so far given me the silent treatment. I started to work down the list.
At my second try, at (Swedish: “Förenkla Din Tillvaro“) FDT I got to talk to the president. From behind his desk the CEO Kent Forss looked up at me and said
Kent: “Oh. So you are Kjell? I just deleted your CV from my inbox”
Silence. Awkward silence for an eternity.
I jumped-started my brain and manage to squeak out something about that
Me: “ it is a Good Thing I had another CV with me ...”
As Kent and I was talking the lead programmer Peter Joki walked by and got interested. It turned out the he was in dire need of more people and once the president talked to him I had in just 5 minutes landed my first job. Yeeaaay!
Months later and happy coding in Visual Basic 6, porting old code from Visual Basic 3, laying down the foundation and coding a whole new piece of software and playing with software design I did something unexpected. I quit my job. The job was fun, the company and the colleagues had fun together but in the end it was not for me. I wanted more, or at least I wanted something else.
I wanted to work with C++ and I wanted to learn on a whole different level than I could at FDT. I wanted to work with the best and the brightest. I am not saying that the develpers at FDT were not the best and brightest but it was too close to home, and it was not the cutting-edge, world changing software that I dreamed about. After 8+ months in the USA I wanted more of the world than Luleå. I wanted UPenn at a company-level. So I pondered and pondered. In Sweden the job market for Software Engineers seemed shot. Ericsson had already started to lay off engineers and in the two years that followed the company lay-offs basically killed the job market for newly graduated software wannabees. The repercussions of that we can still feel today. I blame (probably completely biased and wrongfully) Ericsson as the No.1 reason why computer science went from being popular at the universities to something obscure. I decided to leave the country.
In retrospective I think it was good that I tried to get away from Sweden. Judging from the reactions of friends and acquaintances I did something crazy, ballsy and utterly loco. I went to the bank, took out a loan of 100.000 SEK and went abroad. I had no security for the loan, no job but somehow I managed to persuade the banker of my golden opportunities.
After a short vacation in Spain I was back in Philadelphia. I was going to find a job in the USA. A potentially serious relationship waited there and I thought I could pull it off. My skunkwork agenda was to find a company that would sponsor my visa, then go back to Sweden and apply for the sponsored-visa. It was gutsy, not how normal people would have done it and in the end it came down hard on me. I learned a lot in the process and have never, ever, regretted it.
In the end the relationship went sour and I was just feeling miserable in Philadelphia. Sure enough feeling miserable does not improve anyone’s job hunting chances, but what really killed my chances was Mr terrorist, Bin Laden himself. On September 11th, 2001 I had my second, maybe final job interview for a company in the international bank market. My profile was perfect for them as they for their Operations department wanted someone European who also knew at least one Nordic language. I think I almost had the job. As we were discussing salary the interview got interrupted by the secretary. The towers were hit. You all know what happened after that… All my chances in the USA were killed that day, my relationship had already gone from sour to rancid and now the whole world, not only the USA was in turmoil.
A few weeks later I was back in Luleå. Most of my borrowed money spent and with a loan that demanded monthly payments I had to get creative quickly. Lots of luck and a mismatch of odd-jobs helped me. For almost a year I got by as a substitute teacher, on-and-off assignments for the vampire run StudentConsulting with everything from teaching Visual Studio IDE and Visual Basic programming to making small ActiveX components and attempts at www intranet hacking (hacking in the meaning of creating, not destroying).
My last odd-job was doing the dishes at a local Chinese/Pizzeria restaurant. Oddly enough I never considered that to be an all-time low. In fact I think I learned a lot from Waldorf and I think of that time as something profound where I finally could get some much needed mental meditation as I was cleaning up and washing cups, plates and fragile things that I tried not to break or chip.
October 2002. The Dawn of the Software Engineer
Lots and lots and lots of cold calls, company visits, job applications, travel to Stockholm and back to Luleå again, a few job interviews, loosing myself with loser childhood delinquent friends. Loosing the same friends. Loosing other friends. Gaining some friends.
It was a negative spiral only made slightly positive by my refusal to give up. I was desperately trying to learn about myself – and in the same time I involuntarily learned some about the beauty and cruelty of the world and the people in it. I tried to desperately understand and learn from my mistakes and was hoping and striving for a better tomorrow. A better me. That one year I spent was a year in clarifying and purifying turmoil. It was my personal inferno, my purgatory.
Then out of the blue it came. As I was vacuuming at the restaurant someone called me. Finally. A Company. A reply. Park Air Systems (PAS) in Horten, Norway. It was my dream. It was C++. It was something that mattered. They made a difference. I had a stumbling job interview over the phone. Norwegian and Swedish are supposed to be similar. For me it was not. To this day I cannot fathom how I made it past the first stumbling phone interview, but I did.
Some time later I was in Horten for my second and final job interview.The day before I had walked through the town all the way to the company location. I wanted to know exactly where it was. What the company looked like from the outside, how long time would it take me to walk from the hotel to PAS. In the afternoon I tried to grasp what the community of Horten was like and close to the end of the work day I remember that I called the secretary and asked about dress code. Good thing I did.
Me: “Should I wear a suit or be more casual dressed”.
The secretary told me with a laugh and with no room for misunderstanding
Her: “Hvis du ønsker jobben må du IKKE ha på deg en dress, du må komme uformell kledd” (If you want the job, DO NOT wear a suit, you must come dressed casual)
She was right. Just maybe I also had something to offer in addition to not wearing a suit? Either way I got the job as a Software Systems Engineer for Operations working with Air Traffic Surveillance. It was very exciting. Very important. And I was finally and officially an Engineer albeit a very junior one at that.
Park Air Systems (PAS) had basically only senior skilled-level engineers working at Operations and Development. After 4 years there I had worked as a junior developer, done my best as a Software Responsible for AMB Chile and Heathrow old and new tower. I was doing problem solving, system integration, performance and system tuning more than I was doing programming. I wanted to do more with software and I realized or at least felt that I would always be junior at PAS and always only do junior software developing assignments, if any. I was simply too good at being a Software Responsible in comparison to my skills as a relatively bleak (junior) software developer. There was no need or desire for the company to let me explore my software coding skills. In the end we, my wife and I (yes I managed to get married too, but that’s a whole other story) decided it was time to move back to Sweden.
In retrospective the Norwegian era was amazing. I had found a new belief in myself, managed to do some good work, whetted my appetite for coding and I got glimpses of how very good software could look like. My coding style is definitely colored by the experiences I made at PAS, by the C++ gurus I met. They helped to create the image of how I wanted to be as a software engineer.
After four years in Horten I could look back on that day in 2002 when I had gone to Norway with a hope of a software future, a woman that loved me, a job that was promising and a hint of martial art in the background. I am very grateful for my time in Norway and Horten, PAS and friends will always have a special place in my heart.
2006, kindred spirits and an appetite to learn
At HiQ-Stockholm I found kindred spirits. They had a passion for software that helped me exhume half-buried coding skills. It fed my desire to excel, to prove to myself that I had it in me. The whole company felt vibrant and positive. You could actually feel it at the company. It was in the atmosphere. It was felt from within, throughout from the core to its client-based consultants. Even today when I no longer work for HiQ I am amazed by what the CEO Lars Stugemo has achieved. I am convinced that his positive nature has created the HiQ company soul. The “If it is to be, it is up to me” motto we were using back in the days was not only an empty company value and vision but became very personal for me and many other employees.
I still try to live by that motto – if there is a change that I desire, that change should start with me. Be a doer, be active, to show by example, lots of guts and will was always in me but it really bloomed at HiQ. I owe a huge debt of gratitude from the software virtuosos and inspiring people that I met there.
At this time I really feel like dropping names. If nothing else then just for the reason that these guys are inspiring and should get some praise. I hope you don’t mind 🙂
Martin Vilcans who unknowingly inspired me, and probably many more, to teach at HiCollege.
Ivar Gaitan as another code and challenge seeker who had visions and shared them with me
And finally Manne Fagerlind who opened up the world of code quality and who showed us all that testing was inseparable to software development.
If you work in Sweden in the Stockholm area then maybe you will get lucky and come across these three. If you do, pay heed – you might just learn something!
OK I better stop now with the flattering or it will just be too much brown nosing. I only mention a few but seriously both at HiQ and at assignments I met so many ingenious people that all made huge impressions, inspired and taught me about software.
OK, after this Oscar-feel-nominee list it is time to continue… I am way off the subject, if there ever was one.
The Great Colleague Buddy Gurarantee
I learned some important lessons from my four years at HiQ. Apart from being able to immerse myself in C++, dabbling in other languages (Java, C#, Python), design principles, patterns, anti-patterns awareness, agile methodology and just having lot and lots of fun I had some very important recruiting experiences. From past experiences in Sweden I would say that normally the job-interviewing is a two step process.
- A manager and a team leader or engineer will meet you for an interview. If you pass you get to step
- Two managers meet you. This time some more exploratory questions and finally the salary discussion takes place. In the end it is the managers that not only is leading the whole interview process but also have the final say.
At HiQ it was also (usually) a two-or-three step process, but upside-down. First a group manager or two would meet the candidate. If the lucky candidate managed to get through the eye-of-the-needle then the most important step would come. The colleague evaluation!
It really is a simple concept. Only hire someone you would like to have as a colleague yourself. Not who the manager would like as a colleague, but who the other consultants would like to work with. From a number of interviews that I helped out with I can summarize it as following
Two consultants, potential colleagues, will sit down and talk with the nervous applicant. Sometimes testing his/her knowledge and sometimes only doing some relaxed talking about whatever,. but I think usually a mix of the two. In the end it is what the two potential colleagues thought of the applicant that mattered. Their decision was usually adhered to, and a no from them was always absolute. The colleagues had veto power and they used it carefully.
This is such an improvement from the manager-only–deciding interview process that I have seen at other companies. I believe that a lot of HiQ’s success is connected to their job-interview process and how it gives some kind of
Great Colleague Buddy Guarantee.
I think the order of steps is also important: step 1 manager, step 2 potential colleagues. The manager can weed out by experience. The consultant employees can use gut feeling, tests or whatever to grasp the what and who about the candidate. The manager(s) only let through the most promising applicants and only a few are selected for consultant interviewing. This made the consultants doing the second interview feel that it was important what they were doing. It was important of course. Doing the second and not the first interview also made it more interesting for the interviewers since anyone up for a second interview was bound to have skills, personality and a story … (well an interesting background). In short someone that would be nice to have as a colleague.
The bonus of this interview process is maybe already clear to you. Employees with a certain type of personality and passion for what they do will most likely pick candidates that have personalities that fit in and who share similar passion. They would also veto out the candidates that are not just felt the way they should feel, even if that candidate would have all the necessary know-how. Gut feeling, first impression and knowledge. These tools can build you an employee workforce that is unstoppable. They can achieve anything because they have vital strengths in common, they share a passion for what they do and they enjoy each others company.
This is also a risk of course. If you manage to build a formidable workforce like the one described above you will also risk that they at some point break away to form their own companies – maybe even persuading other people to join them as they leave. Then again, it might not be a bad thing. As these people leave they might just continue to be ambassadors and continue to talk well about the company.
Judging from what I just wrote above that is sure true of me.
Hmmm. “Gut feeling, first impression and knowledge”
Come to think of it, maybe in 2001 that was what stopped me from being a web developer,. then again if only fly fishing and golfing were the qualifying criteria then I was probably better off somewhere else
Hey. Did you apply to HiQ and did not get the job? Sorry if I bummed you out. If you have applied to HiQ and did not get hired then I am not saying that you do not have a passion for software. Or lack of a winning personality. Heck, you are probably a coder virtuoso that love code like Romeo loved Juliette, dream, sleep, eat and sh*t software like no one else. You probably have a personality and attitude that shine like the sun and would put all others to shame if we even compared us to you… Please know that just as with everything else there are false negatives that can stop the most suitable candidate. People will have off-days, the moon, girlfriend or too much lactose intake can affect a very human process.
Either way, from my personal experience, this is the best way I have come across to get the employees that are just awesome.
Or maybe this is just common practice everywhere? I think Google practices something similar in their rigorous 4-step hiring process. Although of course at Google you have to be exceptional not only with coding but with math, algorithm thinking in your veins and just Über at everything (including being humble, down-to-earth and not trying to show-off as über).
Sometimes a good thing will end
If I was professionally married to HiQ I think I started to fall out of love with the company. Some middle-management mishaps that affected me personally did its part and 2 hours commuting every day did not help either. I am just not a jammed-traffic-waiting-to-avoid-next-crazy-driver kind of guy. I will probably never fall down, all D-Fens style but driving all those hours in my loud Jazz was wearing me down. That much commuting, never knowing if I would be 1 hour, or more, delayed due to traffic is not for me. Especially not with a kid that soon would start preschool and demanded regular drop and pick-up times.
So once more it was time for a change…
2010, Critical and Preventive care with Medical Technology
I wanted to make a difference also. No more military spy planes for Pakistan. Seriously.
Let me say that again. I would like to make a personal statement now:
No more military technology assignments for me!
Hey. I am not saying it is bad. I am saying I am done with it. After the mandatory 15+ months as a 2nd Lieutenant and some 3+ years developing military technology I have done my part in this area. Especially since I feel that my karma took a big hit working with military technology… But who am I kidding really? I might have a preference but in the end it all comes down to paying the bills. At least it felt nice making that statement 🙂
I decided medical technology was my tech field of choice for the next adventure. After a long search I decided that Prevas was the right choice for me. Of all the consultant companies in Uppsala they seemed to have the strongest focus on the Uppsala market. Uppsala is where I live at the moment so that was important to me. Limiting commuting time was a must. Today I do not really know how I managed to get hired by them. What made them decide to hire me? Lots of luck and maybe a beneficial job market?
In my attempt to keep up my salary (which was likely to be significantly lower than before), to prove that I was good at consulting I believe I came off as arrogant, egocentric and not a person I would hire myself following the previous mentioned
Great Colleague Buddy Guarantee. God, that just sounded terrible. I hope it was not that bad. Either way here I am. Prevas – in all its glory, from within its core it shows (to me) the very essence of the Swedish Software Engineer. All competent, all experienced, many senior level engineers. I look forward to getting to know Prevas and its soul and learning more about creating great software, and maybe also about myself in the process.
2011, paternal leave for two months in the USA did wonders
I feel rejuvenated and am boosting with energy and inspiration. My agony, obsession, emptiness and pleasure all mixed together after publishing the G2log article at codeproject is finally behind me.
Now, back in Sweden again I look back on weeks with my in-laws when I could ponder, meditate, changing diapers and just hang out with my kids. All those hour long stroller walks while trying to get my daughter to take her post-lunch nap were great. All of these everyday life events while not messing around (much) with C++11, concurrency intricate designs or g2log were good. I decided to write this blog entry for once,. maybe more personal than I usually write. But that is what I really write the blog for anyway: for myself, personal record keeping and whomever else that might be reading it.
If I am lucky then maybe my war stories can help someone. Not giving up, trying harder, doing it differently, are all good life rules, at least for me and maybe also for you.
To be continued for sure …