You seem to have Javascript disabled. That is no problem - this site does not require Javascript at all!

Jussi Hämäläinen

Full-stack Web Developer


What do I do with my life

I currently view myself as a Node.js Developer. I love Javascript. It is very versatile and flexible piece of geniousity, and I think it'll gradually eat up most of the other general programming languages. Currently its preying on helpless ones like Python and Ruby, but some day soon it'll overpower monstrous, pure-evil beasts like those from Java/Scala/whatnot -family.

Erlang and its sibling Elixir are my secret passions. I still have very little experience using them, but I've already hoarded bunch of programming books and generated hundreds (literally) pages of notes from studying these two languages and their paradigms.

All in all, Erlang/Elixir programming model seems like a great fit for many soft real-time distributed systems. That is exactly the type of systems I want to be building up in the future.

PHP is the language I originally started programming with four-and-half years ago. I think it offers unbeatable value for building typical database-centric web sites/apps; PHP sites are easy to develop, deploy and maintain. Typical low-scale web app (PHP backend + HTML frontend) can be launched / maintained with very little costs (especially with services like this!), and can be done on shared hosts. I have heavily invested time learning PHP framework Laravel. What the hell, lets be clear here: I love Laravel. When they legalize human-framework marriages I'll be right there on the doorstep of local magistrate.

Excellent Skills

Currently in heavy use

  • Javascript (browser, Node.js)
  • LAMP-stack, especially PHP
  • AWS-stack
  • Laravel and its ecosystem
  • Software Architecture + Design Patterns

Emerging Skills

Great interest towards, some experience

  • Distributed Systems
  • Artificial Intelligence
  • C++11
  • Erlang/Elixir

Neglected Skills

Some experience, not currently using and no interest towards

  • Prolog
  • Python
  • Scheme and other lips... lisps
  • Joomla CMS

If you are reading this, congrats - this is not supposed to be visible during normal browsing.

My view on future of web programming

Huge-scale Javascript single-page applications. This shift is surely on its way, but still... nowhere near where I'd like to see it. Most JS SPAs are really small, simple and constrained. Of course we have stuff like Gmail etc., but the real breakthrough will come when it makes sense to develop giant office program (like MS Powerpoint) as a Javascript SPA instead of typical desktop program. Browsers are running Javascript quicker and quicker every day, and its pretty much catching native speed soon. The tools around JS must step up for this to happen, but I'll bet on this.

Web apps utilizing full power of GPUs. Too many tasks are passed to CPUs, and GPUs mostly yawn half-asleep while CPU sweats itself out. There is something like WebCL already on existence. I have no experience with it, but maybe it is a start of a wonderful journey.

Event sourcing systems. This is one of those more guaranteed bets, I think. Multicore systems hate typical SQL databases on typical disks. So solution may be simple; just keep current system state on main memory, and save incoming events to some more trustworthy place. If system crashes, build it up from event log. This has understandably huge upsides on scalability, with one serious downside - where to store ridiculous amounts of event data. However, the cost of large-scale data storage is pretty much sinking straight through the seafloor. Event sourcing is bound to become #1 storage model for high-traffic web apps.

Grid computing through browsers. Seti@Home did it. It did it already in late '90s, I think. Even I downloaded their desktop app and tuned in for aliens. But people hate downloading and installing stuff; most iOS developers can barely afford medium-sized lattes for lunch. No, it has to be automatic. Browser is the perfect place for massively distributed computing; while surfing on the web, CPU is usually in for a easy ride. Why not make it do something worthwhile? Computation can be started easily, and the program code silently brought in from the server along with all other stuff. Now that the Javascript is running on powerups (asm.js), this is bound to happen on large-scale. Think DNA sequencing by all frigging fifteen billion users who simultaneously share their pet goldfish photos on Facebook. They could even each decide on what computing project they wish to donate their CPUs cycles. This is the future - enslaving those home-computers for good!