Specialized software developer

I have over 13 years of professional experience in IT. During this time, I was a Systems Administrator, Data Center Technical Support, Software Developer, Development Manager. I dealt with different technologies, was working on the web, mobile apps, data processing. In my opinion, all these positions gave me very broad experience in many areas, which I can now use in my job as a Software Developer or consultant. Today, I would like to confront my history with another, very popular, view that it’s better to stick to one technology and master it.

Try to learn something about everything and everything about something.

Thomas Huxley

  1. My story
  2. Was it the right path?
  3. Another way - specialised developer
  4. Broaden your horizons
  5. DSP 2017
  6. Summary

My story

My first contact with IT was when I first saw the computer my dad bought. It was ZX Spectrum 48k. The one with the rubber keyboard (I still have it!). I was 5 back then. At first, I was obviously using it for games, but after 2-3 years, my dad showed me how to program it in Basic. We created a game for school to check the multiplication table (it was drawing nice big numbers instead of just typing them on screen). I was hooked. I went for IT studies and obviously chose to specialise in computer programming.

When the studies were coming to an end, I thought it’s time to get a first, real job. At the time I was doing some websites, an e-shop (still online!) etc. I also had a server, which was hosting these websites. I looked through the job offers and applied for a few. One of them was for a sysadmin for a local web hosting provider. I went to interviews and funnily enough, I got the job as a sysadmin. I didn’t have experience, but managed to survive and helped the company to transform from a server back in the closet to few powerful machines in a Data Center.

When I was moving servers to this Data Center I made new connections and went to work there as a Technical support. After a year, I thought it’s not for me and decided it’s time to get back to programming. I contacted a friend I met during the studies who was working in a startup in my hometown asking if he doesn’t know someone looking for devs. He replied they are hiring and invited me for an interview. Next month I was there as a Web Developer.

This was the company I spent nearly 10 years in. After half of a year, I became a Team Leader, then a Development Manager. I was doing web and mobile. Applications, which processed lots of data. Was working on app architecture and leading a team.

Last year, I decided it was time to part our ways and right now I am working again as a Software Developer on a big solution for a customer. I am responsible for a whole project - from architecture, through selecting technology, implementation, deployments - everything.

My next project is an iOS application with the whole infrastructure - also single-handedly.

Was it the right path?

Yes! I have definitely no regrets. Let’s take it step by step:

  1. Before getting the first real job, I was building some PCs - this taught me how they work. Then I started doing websites. I used PHP and designed databases for a shop and few other products.
  2. Then I got a job as a System Administrator - I was configuring services, tuning databases, learned how the whole internet stack works. HTTP, DNS, SMTP, POP3… Had to deal with performance problems of various websites.
  3. Then there was a Data Center job. I saw it all in a bigger scale.
  4. Next, coming back to programming. Starting with web development, but on a much bigger project, with bigger problems and performance challenges. With big database…
  5. Then, team management.
  6. Development in various technologies, platforms. Working on different problems, designing systems.

As you see, during all these years I touched many different topics. It was always going around the web, but the whole of it. Thanks to this, I can now easily solve problems in many areas of the web. I know how DNS works, can configure a web server, design database, which will perform, implement a site, an API, mobile app.

Now, let’s take a look, how I could have done it differently.

Another way - specialised developer

Few times, especially in last 3-4 years, I’ve had arguments with few people, what’s better. Specialising in one thing, or getting a broad knowledge. Let’s be honest, I know definitely less about JS, .NET or Java than someone who specialised in one of these technologies. If we call such person a JS Developer or a .NET Developer, then I would call myself Software Developer. With the experience I have, I am sure, I can now take any technology and quite quickly learn it to the level, which will allow me to work in it. I am more flexible.

Now, let’s look, how the IT world looks currently. You have a new framework coming out every week. Things are changing quicker than they ever did. I can’t see it going to change any soon. We live in crazy times. Because of that, I wouldn’t bet everything on one technology. We have to be agile and learn to adapt. It’s much easier to adapt if you have broad horizons.

Broaden your horizons

There are many ways to do it. If you’re early in your career, you can try to follow my path and take different tasks or even jobs. Learn new things. If your work life is more stable, have a pet project in some new technology. Go to a conference about something you don’t know. Simply do something :) Don’t focus on one thing only.

DSP 2017

If you’re from Poland, there is going to be a great chance for you to do something new. Maciej Aniserowicz will launch a new edition of the “Daj Się Poznać” contest I took part in last year. You are reading this blog because of this contest. Its goal is to work on a pet project on GitHub and blog about it for 10 weeks between March and May. I highly recommend it! As I said in my summary of 2016, it was my best career move ever.

Summary

I will repeat the quote from the beginning of this post as I think it says it all:

Try to learn something about everything and everything about something.

Thomas Huxley

In my opinion, one can’t call himself a professional developer if he just knows everything about something. You don’t have to be able to configure a router in the data center, but home router - yes! Be a Software Developer - not [put some tech here] developer.

Comments

Michał Dymel's Picture

About Michał Dymel

Passionate software developer interested in Web Development, .NET, Angular2, Architecture and security. Currently doing remote consulting.

Szczecin, Poland https://devblog.dymel.pl
Web Analytics