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#. Some of the tools I used in the past or using currently: Entity Framework, NHibernate, Castle Windsor, WPF, WCF, XUnit, NUnit, Log4Net, Automapper…
- ASP.NET: Starting from classic ASP I worked with every version of the platform: ASP.NET Core, ASP.NET MVC, Web API and Web Forms.
- HTML/CSS: I’ve good knowledge on HTML and CSS since 2000.
- Databases: SQL Server, MySQL, SQLite, MongoDB.
- 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.
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).
- Micro Services: Currently focused on microservice architectures.
- Containers: Learning and working on Docker.
Hobbies / Other Interests
I like to develop open source projects. I use github. See my github page: 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.