I was born in 1983, lived 20 years in Adana and I have been living in Istanbul since 2004. I started Sakarya University Computer Engineering in 2003 and graduated at 2007 as the highest ranking student of the department.
After working 8 years as professional software developer, architect and team leader, I left my job at 31th July 2015 and established my own company: Volosoft.
I have been programming since I was 14 (since 1997). I started with Turbo Pascal 7.0 and worked on many languages, platforms and technologies so far. Here, there is a list of my current skills and interests.
- C#.NET: Working on C# and .NET platform in my work. I’ve excellent knowlegde on .NET Framework and C#.
- Entity Framework, NHibernate: Using EF since version 4 and have a good skill. Also, I’ve good knowledge on NHibernate. I’m actively using both of them in my projects.
- Castle Windsor: I’m developing my projects using DI for a few years. Used Ninject first, but now using Castle Windsor. I’ve a Codeproject artice on it.
- WPF: Good knowledge. I am developing Windows based interfaces using WPF.
- WCF: Good knowledge. I developed many services using WCF.
- XUnit/NUnit: I’m using XUnit as unit test framework in some of my projects. I used NUnit before XUnit.
- Others: Using Log4Net for logging, Automapper for object-to-object mapping.
- ASP.NET MVC: I shifted to ASP.NET MVC and using it since 2011. Developed projects using it and have a very good knowledge and deep understanding. I’ve an open source boilerplate framework for MVC projects.
- ASP.NET Web API: I’m building JSON based services with Web API from a while.
- ASP.NET Web Forms: I’ve been working since classical ASP since 2001 and have a good knowledge. But working with ASP.NET MVC since 2011 and never think to return back.
- AngularJs: I’m actively using it in my current job and in my ASP.NET Boilerplate framework as SPA framework. I’ve a Codeproject artice on it.
- jQuery, jQueryUI: I’m working with jQuery, jQueryUI and many plugins. I also developed one open source jQuery plugin: See jTable.
- ExtJs: I developed and maintaining a big enterprise project using Sencha ExtJs and Ext.Net.
- Durandaljs: I used durandal as SPA framework before AngularJs.
- Knockout.js: Used it with Durandal as MVVM framework before AngularJs.
- HTML/CSS: I’ve good knowledge on HTML and CSS since 2000. Also learning and using HTML5 and CSS3 features.
- Others: I worked on Java and C++ in university. I coded my final term project in Java but not used Java or C++ in my work.
- SQL Server: Using it since Sql Server 2000 and now using SQL Server 2012. I’ve worked on many projects using .NET on SQL Server. I’ve excellent knowledge on database design, normalization, optimization, stored procedures, indexes… etc.
- MySQL: I’ve been working with MySQL since 2007 and have a good knowledge.
- NoSQL: Currently working to learn NoSQL concept, databases, techniques and tools.
- Others: I know basics of SQLite and MongoDB and used in some small experimental projects.
I especially like developing multithreaded and distributed software systems, application frameworks and open source projects. Also,
- Best Practices: I investigate, read, learn, try and use best practices on every area that I’m working on.
- Domain Driven Design: As a sofware archirect, I’m trying to be better on DDD by reading books and developing applications.
- Design Patterns: I’ve personal interest in Design Patterns, using patterns in my work and personal projects. I had a course on GoF design patterns. I also read books on Design Patterns and Enterprise Integration Patterns.
- Multi threading: I’ve excellent skill on multi thread programming in .NET. I’ve developed many applications and services runs in a multithreaded manner. I know and using common design patterns on multithreading.
- TCP/IP Networking: I’ve excellent skill on TCP/IP networking. My final term project was “TCP/IP stack implementation in Java” and I implemented ARP, IP and TCP protocols. I’ve a complete framework for TCP/IP based server/client communication in C#.
- Messaging: I’ve good research on message oriented middlewares (MOM) and message brokers as ActiveMQ, MSMQ, RabbitMQ… etc. I also developed a message queue system named DotNetMQ that is entirely built with C#.
- Inter-Process Communication (IPC): I also have a special interest in communication of applications on same or different machines. I developed communicating applications using Web services, WCF, TCP, UDP, HTTP, Named Pipes and Shared Memory (Memory Mapped Files).
Hobbies / Other Interests
I like to develop open source projects. I use github. See my githubpage: https://github.com/hikalkan
I also like to share my knowledge by writing articles. I generally write on Codeproject.com. See my articles on Codeproject.
Beside computers, I like reading books, especially science, science-fiction, psychology and detective books. I like to play chess and Turkish checkers.
My Computer Life
I met with computer at 13 years old and started programming at 14 (year 1997) with Turbo Pascal 7.0. First motivation that takes me into programming was to code my own games. My computer was not running good games. It was an old computer that has Intel 286 CPU and MSDOS 6.22 operating system. Norton Commander 5.0 was my best friend. I built many small games and DOS applications with Pascal. I learned Pascal from a Turkish book and self help menu of Turbo Pascal editor. I was looking at all standard library functions from help reference and trying them…
I interested in web technologies (Frontpage 98 and a little HTML) through a handbook from PcWorld ad but I have not a PC that I can built web sites. By the time I obtained an Pentium 133 PC (It was also an old PC relative to it’s time) with Windows 95 OS in the year2000. I built my first static HTML web site and published to a freeweb host in an internet cafe.
In 2001, I started to Cukurova University Textile Engineering. I continued programming as an hobby. At the second year I decided to give up Textile, prepared university exams again and won the Sakarya University Computer Engineering. Since I love computers and programming, my lectures was pretty good and I graduated as the highest ranking student of the department (3.55 of 4.00).
In university first class, I learned C and Visual Basic.NET andASP.NET. In the second year I entered to IT department of university to build a completely new Student Relations Automation System. I worked there for one year, finished project and learnedVisual Basic.NET (With Visual Studio 2003) and SQL Server 2000 deeply.
In the third year of university (year 2005) I learned C++ from the ultimate book of Robert Lafore: Object Oriented Programming in C++. This was my first introducing with object oriented programming. I was impressed! After C++, it was really easy to learn C# (since I was already familiar with .NET through I know VB.NET).
At the second half of third class, I joined the Erasmus program and studied in Thessaly University of Greece. It was my first abroad experience and was very helpful for me.
At the fourth class of university I get my final project as “TCP/IP stack implementation in Java“. I was not a good knowledge onJava or TCP/IP. In the first term, I deeply learned Java (From the book “Java, The Complete Reference” by Herbert Schildt) and researched on TCP/IP protocol suite. In the last term I implementedARP, IP and TCP (TCP is not finished completely because of time restriction). I accomplished to build an application that communucates over internet not using default Windows TCP/IP stack (sockets) but using my own TCP/IP stack. I also have written an article and developed an application over ARP spoofing. I also improved my skills on multithread and asynchronous programming.
After graduating university in 2007, I worked two different companies and finally working for my own company. I developed many windows and web based applications/services using primarly C# and .NET platform. In the business life I learned many other technologies and methods. You can look at the top of this page to see my complete skills on software development.
I especially like to develop good designed, object oriented, multithreaded and distributed software systems. As like a computer without internet is not useful and powerful, I think that an application is not powerful without communicating to other applications and systems.