It is time for a new challenge

Posted by Filip Ekberg on May 2 2013 4 Comments

This post is in a more personal manner than what you might be used to from this blog so if you’re just interested in lines of code you can stop reading now.

In 2006 I had my eyes on working abroad and thus I figured that in order to do this I needed to at least have a bachelor degree in Software Engineering. Now 7 years later I’ve had my bachelor degree for a while and I’ve gathered a lot of experience along the way; but what I have not done so far is work abroad.

While there are a lot of interesting things happening in my professional life and in my personal life with my lovely fiancée Sofie, there’s still something that I feel I want to do.

If you’ve missed it, I was recently accepted as a Pluralsight author and my first course is in the works and is going to be about MSIL for the C# Developer. I’m truly honored to do this and I’m really looking forward to getting this out there to all of you.

However, over the years a lot of things have changed. I met my better half and the things that I had previously prioritized changed and the dreams about working abroad were put aside. Now both I and Sofie are in a place in life where we feel that we want to try something completely different. I’m really happy to announce that Sofie and I will share the dream that I once had, which was the fundament of me studying for my bachelor degree; we’re moving to Sydney.

I was offered a position as a senior developer at Readify in Australia and the company is completely in line with what I value and they work exactly as I want. It’s going to be a great experience and I hope that I will meet a lot of new friends and get a lot of new knowledge.

We are both really excited about this opportunity and we are certain this is going to be a blast.

Vote on HN

Want a free copy of C# Smorgasbord?

Posted by Filip Ekberg on January 18 2013 32 Comments

Filip Ekberg showing C# SmorgasbordC# Smorgasbord has been out for about 6 months and as you might have seen previously on this blog and on my twitter, the book has gotten great feedback!

I’m very happy that so many people have decided to buy the book and that some of you have taken the time to review it.

To give something back to the community for all the support during my writing process and after (self-)publishing the book, I had a give-away after about 3 months and now I want to give away one (or maybe more!) copies of the book!

I want to win a free copy!

Unfortunately I can’t give everyone a copy of the book so if you want to win a free copy of C# Smorgasbord, all you need to do is follow the two steps below:

  1. Leave a comment down below with the reason as to why you should be the lucky winner. It’s a bonus if you include why you like to read this blog.
  2. Share this post with your friends on twitter:

The best motivation wins and the winner will be notified via e-mail, so be sure to leave your e-mail address when you’re commenting below. You’re e-mail address will never be visible to anyone else than me!

That’s it! Good Luck to you all!

The draw ends February 1 (6pm CET) and all comments will be published once they’ve been received

What’s C# Smorgasbord?

C# Smorgasbord covers a vast variety of different technologies, patterns and best practices that any C# developer should master.

Looking at everything from testing strategies to compilation as a service and how to do really advance things in runtime; you get a great sense of what you as a developer can do. By taking his personal views and his personal experience, Filip digs into each subject with a personal touch and by having real world problems at hand; we can look at how these problems could be tackled.

No matter if you are an experienced .NET developer, or a beginner, you will most certainly find a lot of interesting things in this book. The book covers important patterns and technologies that any developer would benefit from mastering.

Is there a digital version(ebook)?
Yes there is! Everyone that purchases the printed copy will get the ebook for free. Instructions for how to receive the ebook is inside the printed book.

Table of Contents

  1. Introduction to Parallel Extensions
  2. Productivity and Quality with Unit Testing
  3. Is upgrading your code a productive step?
  4. Creating a challenge out of the trivial tasks
  5. Asynchronous programming with async and await
  6. Dynamic programming
  7. Increase readability with anonymous types and methods
  8. Exploring Reflection
  9. Creating things at runtime
  10. Introducing Roslyn
  11. Adapting to Inversion of Control
  12. Are you Mocking me?

Who this book is for
This book is for those developers that find themselves wanting to explore C# but do not know how or where to start looking. Each chapter contains hands on code examples that can be compiled and tested on your machine.

Although each chapter has code samples, you do not need to use a computer to appreciate the content of this book. The code samples are divided into smaller portions of code, so that you can follow each example and the thoughts around it in an easy way.

No matter if you are an experienced .NET developer or a beginner, you will most certainly find a lot of interesting things in this book. The book covers important patterns and technologies that any developer would benefit from mastering.

It is not required that you have worked with C# before but being familiar to the fundamentals in any of the .NET programming languages will help you on the way.

If you are just now starting to learn C#, this can be a great way for you to learn about different techniques, best practices, patterns and how to think in certain scenarios. But if you have worked with C# development for many years, this book can give you a refreshing view on how to always improve and challenge yourself into becoming a better software engineer.

I can’t wait and want to buy it now!

Thanks for the support! Below is a link to Amazon where you can buy the book. It’s available on all Amazon regions.

There’s also an ebook bundle available here.

Vote on HN

2012 was an amazing year, here’s a summary!

Posted by Filip Ekberg on January 8 2013 1 Comment

Saying that a lot happened in 2012 is probably an understatement. At least both on this blog and in my personal life, a bunch of amazing things have happened. I really hope that your previous year was good and let’s hope for an even better 2013. To start this year off I want to summarize all the great posts that were shared on this blog in 2012.

Personally the two biggest achievements of last year was me getting engaged to my lovely Sofie and publishing my book C# Smorgasbord. As you might have seen already this year has already started very good as I have been awarded Microsoft MVP in Visual C#!

Let me know what you found most interesting on this blog from the collection of posts below! Here is the 2012 summary!

Architecture

Tips & Tricks

Screencasts

Software & Tool information

Windows 8, Windows RT, WinRT and Surface

C# Smorgasbord and Self-publishing

Other

I hope you found this collection of posts useful and that you’ve learnt a lot in 2012! Enjoy 2013 and let me know what you think of the posts! Before we take part for this time, I want to share with you an image that describes the feeling I got when I held the first printed copy of C# Smorgasbord:

Vote on HN

Congratulations 2013 Microsoft MVP!

Posted by Filip Ekberg on January 1 2013 3 Comments

2012 has been an amazing year, don’t worry there’s a summary post coming! One of my greatest achievements was finishing and publishing my book C# Smorgasbord. Between all the writing and marketing I’ve had the pleasure to do screencasts, user group presentations and of course a lot of fun blog posts!

All these contributions has been noticed and 2013 could not have started better, I just received this e-mail from Microsoft:

Congratulations! We are pleased to present you with the 2013 Microsoft® MVP Award! This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others. We appreciate your outstanding contributions in Visual C# technical communities during the past year.

It is a great honor and I look forward to all the amazing things we will discover together in 2013!

Thank you all for making this possible!

Vote on HN

Questions for a Software Engineer

Posted by Filip Ekberg on November 30 2012 2 Comments

A couple of weeks ago I visited my old upper high school. This is where you take your last three years of high school in Sweden and focus on a certain area. I focused on IT and Programming and now a couple of weeks ago I was invited to come back and talk to the current students. My initial idea was to talk about programming and inspire these young people (16-20 years old) to continue studying in the field of software engineering. But when I found out that more than half of the attendees actually studied something else such as economics or entrepreneurship, I had to change focus of the presentation. The new focus on the presentation was entrepreneurship and how to become awesome at selling yourself.

I recorded this presentation, but since it’s in Swedish I will not bother embedding it into this post; it’s available on my YouTube channel for anyone that wants to have a look at it!

The questions for a Software Engineer

The students had put together a list of questions, 19 questions to be precise and most of the questions were aimed at me and my career. But I think that many of these questions are among the commonly asked ones, I’d like to share the questions and the answers with you all. So here goes, have an awesome Friday and enjoy the Q&A! If you have additional questions for me or any comments on the answers that I gave, please leave a comment!

When you started upper high school, how good were you at programming?

I was somewhere between 10 and 12 years old when I first saw programming in action. Back then we didn’t have fancy computers, of course they were fancy at the time but not as todays computers. I remember my best friend back then showed me QBasic and how to do basic input, conditions and output. So I just wrote some basic programs in QBasic that asked me a question over and over again until I gave it a certain answer.

This was fun and all, but it kind of stopped there. I didn’t have my own computer until I was 12 years old and at this time my friend had learned VB which I gave a try but never really got into it. I was young and my focus at that time wasn’t to become a programmer. I liked computers and I liked exploring them but the games on my computer was calling out to me.

As I was born 1987, being 12 years old puts us in 1999. We had no high speed internet at this time and some of the operators in Sweden actually charged per megabyte that you downloaded. So googling for video tutorials wasn’t really an option.

So let’s speed it up a bit, when I was 16 years old I started upper high school. I had chosen to become an electrician just as my father. But after 1-2 weeks I felt that something was missing, so I actually changed schools, mainly because the programming kids got their own laptops at the school. Up until now I had actually played a lot with computers so I wasn’t a completely newbie on that area. But my programming skills wasn’t that good and fortunately for me, they didn’t expect that in high school either.

This means that the short answer is, I wasn’t any good at programming at all when I started high school. I had tried some when I was younger, but that wasn’t enough. Eventually we started looking at HTML and this being static and all, I wanted some dynamic behavior in my web pages so I bought books and learned PHP. In the final years of high school we were doing C# and I were de-compiling the teacher’s examples and changing stuff and then re-compiling them.

Programming had by then became a part of what identified me and who I wanted to be.

What was the hardest part about writing/releasing your own book?

There were a lot of bumps in the road when writing the book. I’ve written about the writing process and what decisions that I made along the way.

But if I need to choose one of the most hard parts about writing the book. That would probably be: handling all the input from proof readers.

The hardest part about releasing the book has been all the rules and tax stuff. Since I use CreateSpace which is a USA based company there are a lot of different rules regarding taxes that are very hard to get your mind around. I’ve spent countless of hours trying to figure all that out.

How did you experience studying in Blekinge (the county where I studied for my BCs in Software Engineering)?

This county is in the southern of Sweden and the town that I studied in is called Ronneby. It’s hard to compare this to any other cities that you might have heard about. This town (if you can even call it that) is so small that when you go out to buy something, you know Everyone and everyone knows you.

Ronneby changed my life, if I would have never met my wonderful girlfriend if I hadn’t moved to Ronneby.

The school itself is awesome, we had the highest number of researchers in the field of Software Engineering in Sweden.

Have you earned any money off the book, if so how much?

It depends on how you look at it. If you take all the time that I’ve put down on writing the content and then multiply that with whatever my time is worth. It would be so much that this book would have to sell as good as Harry Potter before I can say that I earned money from it.

The royalties are much better when self-publishing, but a lot of that money needs to go on additional marketing if you want to sell more books.

I didn’t write the book for money, I wrote it because I love what I do and I want to share this with everyone.

Why did you write a book?

There are so many different things that inspired me to write the book. A lot of the great authors that I met at NDC in 2011 and a lot of people that I’ve met in my career prior to that.

But the definitive moment that changed everything was when I applied for a job that I didn’t get. For some reason there wasn’t enough “evidence” that I was a good enough programmer for that position. This inspired me to write a lot more in my blog. I’ve focused my energy on other things before and I’ve always enjoyed talking and writing about programming and technology.

So I started writing my blog because I was inspired, sort of by myself, because I wanted to do more for the community and I wanted to share my experience and knowledge.

As I wrote before, there were a lot of reasons to why I started writing this book. Mostly inspiring has been all the people around me and the developers that I look up to.

How are the sales of the book going?

It’s going great! I’ve been selling around 70-100 books per month since it was released and all feedback that I’ve gotten has been very positive!

How do you sell the book and how do you market it?

I sell the book through CreateSpace. CreateSpace is a print-on-demand company that sells the book through different channels such as Amazon. It’s also available on Kindle and as an ebook bundle!

My girlfriend has bachelor degree in marketing, so I try to get as much help from her as possible on this. Lots of the marketing that I’ve done so far is the discounts that I’ve handed out and the books that I’ve raffled away.

Most importantly: Word of mouth.

Who read the manuscript during the writing process?

At one point I had 8 people that wanted to dedicate their time to read and proof the book. This was all during the writing process and after I had finished writing.

I’ve thanked all these amazing people in the Acknowledgement section in my book, be sure to check that out when you buy my book!

Do you have your own business, if so what type of business is it?

Yes, I’ve got a sole proprietorship.

When you started your own business, did you make an initial budget?

No. I should have made one though. A couple of years after I started my sole proprietorship I found out that it would have been better to actually know what money comes in and comes out in the long run. Everything worked out for the best though!

I really recommend you to do a budget and a business plan if you’re thinking about starting up something.

What kind of system do you use to keep track of all invoices and papers in your company?

I wrote my own system to create invoices. I was 18 years old when I started my sole proprietorship and I didn’t really want to buy a system for this since I could write one myself.

What is the best way to learn programming?

This is way too subjective to give one answer to. I learn best by being inspired by someone. It can be watching a video on Channel9 or maybe attending a conference where there’s all these amazing people talking about new and fun technology and how to use it.

If you like reading buy books. If you like listening watch screencasts. Nowadays there are ways for everyone!

What is the hardest part about programming?

Understanding the system requirements. The customer or whoever you talk about the system you are going to build with have one way of expressing what they want, when they really want something else. One of the biggest problems that is actually fundamental in domain driven design is that you need to speak the same language!

Why C#?

Why not?

Seriously though, C# is a living language as I call it. There’s a lot of changes happening to the language and how you work with it. If you look back at .NET 1.1 and compare the C# code from then to code from today, both of them are understandable and similar. But there are so much more help in the newer versions of C# that helps you write even cleaner, faster and easier to understand code.

Another important thing, at least for me is that I’ve always loved Microsoft. I’ve got a hard time staying away and not preaching their stuff.

What other programming languages do you know?

I started off with PHP when I was 16 and then I learned Java. From there I’ve learned to love some of the following: C#, C++, ASM (MIPS+X86), Python.

Probably forgot one or two languages but those are the ones that I would be comfortable doing projects in. I would probably have to do some reading up if someone threw a MIPS project in my face.

Do you have a role model?

There’s too many people that I look up to. My parents and my family has always been what drives me to do greater things.

In the profession there’s also a lot of great people that I look up to such as Bill Gates, Steve Ballmer, Eric Lippert, Steve Jobs, Scott Hanselman, Scott Guthrie, Jon Skeet and many more.

To be honest, I look up to everyone that loves what they do and do everything to share that passion.

How long did it take to write your own book?

If I include the time it took to prepare all the raw content, I think it lands somewhere around 2000 hours.

Do you also work as a Software Engineer or are you just an author?

I work as a full time Software Engineer at Star Republic in Gothenburg meanwhile as I have my own sole proprietorship and doing all the work with the book.

I’m a man with many hats and I like to have many projects in the pipe!

Will there be a sequel to the book?

Depends on who you ask. If you ask my girlfriend the answer is no.

All joking aside, she supports me in writing another one but currently I am focusing on C# Smorgasbord and everything that is needed to be done after a release of a book.

I’ve got plans for more books, but time will have to tell what happens.

End of Q&A

I really hope you enjoyed reading these Q&A’s, I sure did writing them!

Vote on HN

C# Smorgasbord will soon be available!

Posted by Filip Ekberg on July 21 2012 1 Comment

UPDATE: C# Smorgasbord is now available!

Since the fall 2011 I have been working on a book called C# Smorgasbord. The book is inspired by all the interesting topics that I’ve touched in this blog.

I’m proud to announce that the book will soon be available for purchase on Amazon and CreateSpace! You will also be able to purchase digital copies on the website for C# Smorgasbord.

It will be available for purchase August, 2012.

The cover

The cover is produced by a very talented art directory, Christoffer Saltelid and looks like this:

C# Smorgasbord Cover

3D-view of the book

A little bit about the book

Looking at everything from testing strategies to compilation as a service and how to do really advanced things in runtime; you get a great sense of what you as a developer can do. By taking his personal views and his personal experience, Filip digs into each subject with a personal touch and by having real world problems at hand, we can look at how these problems could be tackled.

No matter if you are an experienced .NET developer, or a beginner, you will most certainly find a lot of interesting things in this book. The book covers important patterns and technologies that any developer would benefit from mastering.

Table of Contents

This is the top-level Table of Contents for C# Smorgasbord:

  • Introduction to Parallel Extensions
  • Productivity and Quality with Unit Testing
  • Is upgrading your code a productive step?
  • Creating a challenge out of the trivial tasks
  • Asynchronous programming with async and await
  • Dynamic programming
  • Increase readability with anonymous types and methods
  • Exploring Reflection
  • Creating things at runtime
  • Introducing Roslyn
  • Adapting to Inversion of Control
  • Are you Mocking me?

If you head over to books.filipekberg.se you can pre-order a digital copy today.

Vote on HN