Daniel Khalil

Hi, I'm Daniel Khalil

I'm a freelancing full-stack developer. I work with Elixir, Javascript and PHP.

My recent projects

Portfolio

Rolfs Flyg & Buss

Responsible for implementation of new frontend for swedish travel company Rolfsbuss.

Used technologies:

  • Nuxt.js

Stephen Wilkes' portfolio website

Co-developed new instance of Stephen Wilkes' portfolio website.

Used technologies:

  • Wordpress
  • Vue.js

News-site for München 1860

Ongoing maintenance and development of new features.

Used technologies:

  • Elixir and Phoenix (backend)
  • CoffeeScript (legacy features)
  • Vue.js (new features)

Two notable new features are the playerprofiles and a fantasy football game. In both cases I was responsible for all programming work and adaptation of the screen-design.

Client-side encrypted accounting application

Programming, design and documenting the development as a blog series.

Used technologies:

  • PHP and Knockout.js (first iteration)
  • Elixir, Phoenix and VueJS (second iteration)

What I work with

Expertise

Mentoring

I'm offering my services as a mentor, helping out other freelancers and students with their work or school projects. I'm actively offering my services here and through Codementor.

Vue.js

Vue.js is my JavaScript framework of choice for new frontend projects, where more complex interactions are required. I implemented projects with various approaches: smaller vue.js scripts, whole pages with Nuxt.js and mobile applications with Nativescript. I developed and released a Vue.js course taking my pupils on a development journey through four different projects: https://www.packtpub.com/web-development/real-world-projects-vuejs-video

Elixir

I rebooted my biggest project with Elixir as the backend language: a client-side encrypted accounting application. Why? Elixir is a (more) readable Erlang, which integrates failure states as an essential part of its architecture. Any critical error simply results in a crash and process reboot. But quite honestly, it's the piping operator and integrated pattern matching that really made me fall in love with it.

JavaScript

Since most of my projects are web applications, it is impossible to get around JavaScript. The projects started to get really interesting with Knockout.js a few years back. Developing more complex client-side applications has since only become more feasible and interesting, with frameworks like React and Vue - of which VueJS has become my focus.

PHP

PHP was the first language I worked with professionally, and the one I have the most experience with. Developed my own small framework (BaconPHP), to aid the development of my projects, and to learn about the development of frameworks in general.

Testing

The best thing TDD has helped me achieve was more clarity in thinking. Having the comfort of a testable architecture, and an integrated testing system, that you know will scream at you as soon as a change breaks something, is just priceless. I am not the biggest fan of just blindly following any methodology, but would rather apply it as is sensible. That means sometimes I will write the tests after I have written the code (gasp!), because sometimes you simply don't know what it is exactly that you are working towards.