Juha Komulainen

I have programmed as a hobby for over 30 years and it is one of my great passions along music and mathematics. During my 20+ year professional career I have worked as a lead developer in projects, performed architecture audits and held several training sessions.

Work experience

Evident Solutions Ltd

Software Architect
2011–

Toimin projekteissa pääsuunnittelijana sekä ohjaan ja tutoroin muita kehittäjiä.

Finnish National Library: Kuvatalkoot

Lead Developer

2013
Toteutimme Kansalliskirjaston digitaalisiin arkistoihin uusia joukkoistus-ominaisuuksia, joilla palvelun käyttäjät voivat merkata artikkeleita ja leikkeitä arkistoidusta materiaalista ja jakaa niitä sosiaalisessa mediassa.

HTML, Spring MVC, Java, Oracle, JPA, jQuery, AngularJS, Facebook-integraatio, Twitter-integraatio, Google-integraatio, OAuth

Tukes: VARO registry

Lead Developer

2012
Toteutimme Tukesille onnettomuuksien sekä vaaratilanteiden valvonta- ja seurantarekisterin. Toteutus sisälsi sekä Tukesin tarkastajien käyttämän sisäisen järjestelmän että julkisen, tapausten hakemiseen tarkoitetun internet-sivuston.

C#, ASP.NET MVC, SQL Server, jQuery

Evident Solutions Ltd: CodeRemarks

Software Architect

2011
CodeRemarks on koodikatselmointia varten kehittämämme tuote.

Scala, jQuery, CSS, Google Appengine, SBT, Mercurial

Elisa: OmaElisa

Software Designer

2011
Toimin tiimissä, joka kehittää Elisan yritysasiakkaille suunnattua palvelua.

Solita Ltd

Software Designer
2001–2004

Software Architect
2004–2011

Toimin yli kolmessakymmenessä projektissa pääasiallisesti arkkitehdin tai pääsuunnittelijan tehtävissä. Suunnittelin ja toteutin monia Solitan käyttämiä sovelluskehyksiä sekä sisäisiä sovelluksia.

Olin aktiivisesti mukana Solitan sisäisessä kehityksessä ja määrittelin Solitan projekteissa yleisesti käytettyjä referenssiarkkitehtuurimalleja. Järjestin lukuisia Solitan sisäisiä sekä asiakkaille tehtyjä arkkitehtuuri- ja koodikatselmointeja, joissa evaluoitiin järjestelmien ylläpidettävyyttä ja kehitettiin projektiryhmälle sopivia keinoja laadun parantamiseen.

Luennoin monissa Solitan sisäisissä koulutuksissa, Tampereen Teknillisen Yliopiston vierailuluennoilla sekä asiakkaan teknisille osaajille järjestetyissä koulutuksissa. Koulutusten aiheet ovat vaihdelleet yksittäisistä teknologioista (esim.Spring, Hibernate, Java, C#) yleisempiin aiheisiin kuten strateginen arkkitehtuurisuunnittelu tai testausmenetelmät.

Olen ollut keskeisessä roolissa esimerkiksi seuraavissa projekteissa:

Association of Decentralized Information Management for Industry: SEFRAM

Lead Developer

2005–2010

Teollisuuden hajautetun tiedonhallinnan yhdistykselle sekä useille teollisuuden toimijoille tehdyssä kunnianhimoisessa projektissa suunnittelimme ja toteutimme järjestelmän, joka hallitsee ja jakaa laitossuunnittelutietoa monitoimittajaympäristössä.

Jatkoprojekteissa on suunniteltu ja tehty integraatioita toimittajien suunnittelu- ja simulaatiojärjestelmiin sekä laajennettu järjestelmää vastaamaan paremmin myös kunnossapidon tarpeisiin.

Telecommunication network element manufacturer: Realtime analysis of network traffic

Lead Developer

2002–2003

Toteutimme suurelle mobiiliverkkovalmistajalle järjestelmän, jolla operaattorit voivat tarkkailla verkon tilaa. Operaattorit voivat muodostaa kyselyiden pohjalta erilaisia graafeja, joiden tulokset päivittyvät reaaliajassa verkon liikenteen perusteella.

Massiivisesti hajautettu järjestelmä jakaa kyselyihin liittyvät laskutoimitukset verkon eri koneille, niin että siirrettävän datan määrä pysyy mahdollisimman pienenä ja latenssit saadaan minimoitua.

Sanoma WSOY: Oma Maailma

Lead Developer

2009
Toteutimme Helsingin Sanomien Oma Maailma -matkailupalvelun (nykyään HS.fi Matka). Liferay-portaalin päälle toteutettu Oma Maailma integroitiin niin Microsoftin Bing-karttapalveluun kuin eri matkatoimistojen järjestelmiinkin.

Network operator: Verkonhallinta

Software Designer

2001
Toteutimme suomalaiselle verkko-operaattorille järjestelmän kaistan myyntiin ja priorisointiin. Järjestelmä tuki erilaisia sääntöjä, jotka tukivat liikenteen priorisointia protokollien ja verkkojen mukaan. Sovelluksella operaattorit pystyivät rakentamaan asiakaskohtaisia sääntöpaketteja helposti. Järjestelmä konfiguroi näiden sääntöjen pohjalta operaattorin edge-reitittimet automaattisesti.

STT (a news agency): Mediabank

Lead Developer

2007

Mediapankki on STT: n nettiportaali, jonka kautta STT:n uutis-, kalenteri- ja listapalvelut ovat asiakkaiden tavoitettavissa yhden ja saman käyttöliittymän kautta.

Oleellinen Mediapankin tuoma lisä aiempaan on käyttöliittymän personointi siten, että käyttäjä voi luoda ja tallentaa itselleen hakuja juuri häntä itseään kiinnostavista asioista ja aihepiireistä. Käyttäjän on mahdollista myös määritellä omaan henkilökohtaiseen näkymäänsä automaattisesti päivittyviä hakuikkunoita itseään kiinnostavista aihepiireistä.

Alma Media: Mikko.fi

Lead Developer

2007
Mikko.fi on Alma Median palvelu, jossa käyttäjät käyvät kauppaa keskenään. Netissä olevien ilmoitusten lisäksi Mikon kautta voi jättää ilmoituksia myös Alma Median sanomalehtiin.

Edutech: Edugate

Lead Developer

2003
Toteutimme järjestelmän, jolla Edutech hallinnoi tarjoamiaan koulutuksiaan. Edugate mahdollistaa erilaisten koulutusohjelmien suunnittelun ja sisältää myös materiaalipankin koulutusmateriaalin hallintaan. Toisaalta Edugate tarjoaa myös kaikki työvälineet yksittäisen koulutuksen läpivientiin: osallistujien ja kalenterin hallinnan, harjoitustöiden hallinnan, arvosanojen antamisen jne.

IT Optimo / Finnish Post: Hintalaskuri

Lead Developer

2005
Hintalaskuri on kirjasto, jota Posti käyttää tuotteidensa hintojen laskentaan niin verkkosivuillaan kuin kassapäätteissäänkin. Projekti integroituu Postin SAP-järjestelmän kanssa ja toteuttaa eri hinnoittelumallien mukaiset laskentasäännöt.

Kesko: Useita EPiServer-sivustoja

Lead Developer

2009–2010
Olin pääsuunnittelijana toteuttamassa www.k-citymarker.fi, www.k-market.com ja www.yamaha-center.fi -sivustojen uudet versiot.Kaikki ratkaisut pohjautuivat EPiServer-alustaan.

Kesko: Reseptipankki

Lead Developer

2010
Toteutimme Keskolle järjestelmän reseptien tuottamiseen Keskon palveluihin (esim.Pirkka). Sovelluksella hallitaan reseptien koko elinkaarta aina raaka-aineiden hallinnasta ja koekeittiöstä julkaisuun asti.

Rautakirja Ltd Lehtipiste: ELMO ERP system

Architecture Consultant

2007–2010
Toimin arkkitehtuurikonsulttina projektissa, joka toteutti Lehtipisteen toiminnanohjausjärjestelmän.

KMY: S-Laku

Lead Developer

2003
Toteutin järjestelmän telakkatyössä tehtyjen aloitteiden, niiden jatkoseuraamusten ja niistä maksettujen palkkioiden hallintaan.

ICL

Trainee
1999

Toimin kolmen hengen tiimissä, joka suunnitteli ja toteutti usean tuhannen koneen Y2K -ja tietoturvapäivitykset ICL:n asiakkaalle.

Skills

General

Minulla on kokemusta muun muassa suurien käyttäjämäärien verkkopalveluista, tietoliikennejärjestelmistä, sisällönhallinnasta, prosessiteollisuudesta sekä sovelluskehysten toteutuksesta.

Seuraan aktiivisesti ohjelmointikielten sekä useiden sovelluskehysten ja kirjastojen kehitystä. Tutustun uusiin teknologioihin ja selvitän niiden soveltuvuutta eri käyttötarkoituksiin.

Vapaa-ajallani olen toteuttanut lukuisia kääntäjiä, virtuaalikoneita, pelejä, verkkopalveluita, sovelluskehyksiä, apuohjelmia ym.

Lähimpänä sydäntäni ovat ohjelmointikielet, meta- ohjelmointi sekä domain-spesifiset kielet; uskon, että alalla on vielä paljon opittavaa, jotta löydämme tehokkaampia ja turvallisempia tapoja toteuttaa järjestelmiä.

Programming languages

Viime aikoina aktiivikäytössäni ovat Java, C#, JavaScript, Kotlin sekä Swift. Aiemmin aktiivisina kielinä ovat olleet lisäksi ainakin Haskell, Kotlin, Objective C, Scala, Python, Ruby, F#, Scheme, C, C++ ja Clojure. Yli tuhannen rivin ohjelmia olen toteuttanut näiden lisäksi ainakin kymmenellä eri kielellä ja pienempiä kenties viidelläkymmenellä.

Olen tutustunut useisiin eri paradigmoihin ja seuraan ohjelmointikielten tutkimusta, joten pystyn omaksumaan uudet kielet nopeasti.

Platforms and frameworks

Olen vuosien varrella käyttänyt kymmeniä erilaisia ympäristöjä ja sovelluskehyksiä, alla listattu muutamia jotka ovat relevantteja vielä nykyäänkin:

  • Web: AngularJS, Spring MVC, ASP.NET MVC, Wicket, EPiServer, Ruby on Rails, Django
  • Desktop: Swing, WPF, Cocoa
  • Mobiili: iOS, Android, HTML

Keywords

.NET, ASP.NET MVC, Agile, Angular, AngularJS, Ant, Apache Tomcat, BDD, C#, CORBA, CSS, CVS, Cocoa, Continuous Integration, DDD, EJB, EPiServer, Eclipse, FAST ESP, Facebook-integraatio, GIT, Google Appengine, Google-integraatio, Guice, HTML, Hibernate, Hudson, IoC, JDBC, JMX, JPA, JSP, JUnit, Java, JavaEE, Jetty, Liferay, Lucene, Maven, Mercurial, MySQL, NHibernate, OAuth, Open Source, OpenGL, Oracle, PostgreSQL, Relaatiotietokanta, Rest, Ruby on Rails, SBT, SOA, SOAP, SQL, SQL Server, SVN, Scala, Scrum, Sharepoint, Spring, Spring MVC, Struts, Swing, TDD, Twitter-integraatio, Wicket, XML, XP, XPath, XSD, XSLT, jQuery

Languages

Finnish Native
English Excellent
Swedish Basics
German Basics
Portuguese Basics