August Lilleaas

August er opptatt av enkle løsninger og gode brukeropplevelser, og er glad i å bli utfordret. Han er like erfaren på backend som på frontend, og jobber med webapplikasjoner, sanntidssystemer og mobilapplikasjoner. På fritiden driver han med alt fra testrammeverk til operativsystemer, og er sulten på å lære alt om det meste.

Favoritter for tiden: Datomic og React
Bruker på jobben: React, React Native, Kotlin, Android, PostgreSQL og Microsoft Azure
Vil lære mer: C og Haskell

Augusts anbefalinger

Simple Made Easy

Rich Hickey, oppfinneren av Clojure og Datomic, snakker om forskjellene på «Simple» og «Easy». Det er stor forskjell på «vanskelig», som er subjektivt (Russisk er vanskelig fordi du ikke kan det), og «simpelt», som er objektivt (spagetti-kode er vanskelig å lese fordi det er sammenvevd). Denne presentasjonen har allerede rukket å bli rene Woodstock-legenden, og forklarer godt hovedpoengene med Clojure uten en eneste linje kode. Se foredraget

Fun with Relational Interpreters in miniKanren

Spol til 0:45:00. Sannsynligvis det villeste du noen gang har sett. Generere alle programmer som returnerer tallet 6? Lett! Hva med å generere et program som returnerer et program som returnerer seg selv når det kalles? Naturligvis. Alt dette med Scheme og miniKanren, en logikkmotor av William Byrd & Daniel Friedman Se foredraget

Locked doors, headaches, and intellectual need

Mitt anbefalte monad-tutorial. Her lærer du å fiske, i stedet for å få monad-burritoen servert, og får forklart hvorfor du og jeg ikke klarer å forstå monads. Les bloggposten

Snakker gjerne om

Brasiliansk Jiu-Jitsu

Kampsportens sjakk, som handler mere om strategi og posisjonering enn noe annet. Og kanskje den aller beste kampsporten for selvforsvar.

Augusts bloggposter

Datomic: The most innovative DB you've never heard of

Alt for få utviklere kjenner til Datomic, som på en måte er bedre enn man har kapasitet til å forestille seg før man har prøvd den litt selv. Les posten

JDK8 + Facebook React: Rendering single page apps on the server

En proof-of-concept på å gjenbruke React-komponenter til å få single page apps til å funke både på server og klient, uten at du trenger å gjøre noe særlig for å tilpasse JS-koden din. Les posten

An immutable operating system

Hjerne-dump av tankene mine om et operativsystem jeg lenge har hatt lyst til å lage (og nå har begynt å hacke på). Til tross for svært lite tabloid stil fikk den en del oppmerksomhet, og endte opp på forsiden til Hacker News. Les posten

Augusts foredrag

The imminent revolution of functional append-only databases

I de fleste domener har gammel data høy verdi. Det bør ikke være ditt ansvar å løse dette manuelt med tradisjonelle muterbare databaser. Få en introduksjon til ny grensesprengende database-teknologi som løser dette problemet for deg. Se video

Datomic - a functional database

Datomic is more than just nosql. The server only does writes, not queries. Reads from data and index happens via storage services, which can be mysql, riak, dynamo, and others. The queries happen on the client itself. The database is represented as an immutable data structure. You can at any point in time get your database as of e.g 2 weeks ago. This talk will explain how all of the above works, what "functional database" means, and which tradeoffs and benefits Datomic has chosen when compared to other database paradigms. Some experience in database concepts (ex: MVCC, dynamo style high write availability) and a general urge to know what happens under the hood is expected of the listener. Se video

You probably don't know how the internet actually works

En slags kjapp intro til hvordan internett egentlig funker. Halvparten om routing og slikt, resten om krypto. Se video

WTF is Datomic?

Introduksjon til hvordan i alle dager en immutable database kan funke, og hvorfor det er bra greier. Se video

Open source

Java

Utviklet Path Travel Agent. Bibliotek til Java for path-matching (f.eks URL-er i HTTP) som er typesikkert, og har O(log N) ytelse

JavaScript

  • Utviklet Buster.JS. Ambisiøst test-toolkit for JavaScript.
  • Utviklet HALT. Ambisiøst operativsystem-prosjekt.

Ruby

Gradle

Utviklet gradle-warlike-plugin. Plugin til byggesystemet Gradle for å emulere en WAR-container i et lokalt utviklingsmiljø, slik at du enkelt kan utvikle lokalt med hot-reloading og deploye til en WAR-fil uten noe ekstra jobb.

HTML

Utviklet HTML5-epubleser. Proof of concept lesing av EPUB i nettleseren. Alt skjer på klienten, selv lesing av fil fra disk lokalt, via FileReader-APIet.

AWS S3

Utviklet Show Leopard upload to S3. Automator Action for å laste opp filer til Amazon S3 via høyreklikk.

C

Har bidratt til Linux.

Prosjekter

Bring

Glow - verktøyet for Bring Express sin pakkelevering. Dette inkluderer ruteplanlegging, administrasjon av utsendelse av pakker for utsenderne, mobil-app for sjåførene som plukker opp og leverer pakkene, og grensesnittet til mottagerene av pakkene (pakkesporing, osv).

NSB

Status Tiltak - verktøyet til planlegging og bestilling av alternativ transport ved oppståtte avvik. Brukes av NSB sin driftsoperative sentral (DROPS). Rolle: Full-stack webutvikler, devops, eneste utvikler på prosjektet Implementerte av avansert GUI med React og websockets, for at flere brukere i sanntid kan jobbe med tiltaksplan for samme tog.

NSB

Status - verktøyet til trafikkinformatør-rollen i NSB sin driftsoperative sentral (DROPS). Rolle: Full-stack webutvikler, devops Innførte reaktiv meldingsbasert arkitektur, hvor en status enkodes som en JSON-blob som sendes til ActiveMQ. Hver tjeneste som lytter har sin egen kø via ActiveMQ virtual topics. Implementerte abonnements-modul, hvor man i GUI kan sette opp spørringer og tilhørende mottakere, som fører til utsendelse av e-post og sms når det skjer endringer i Status Skrev om hoved-GUI for å jobbe med statuser fra jQuery til AngularJS Implementerte tjeneste som lytter på togbevegelser i sanntid og kverner frem hvilke tog som er berørt av hvilke infrastrukturbrudd, og når de kommer til å kjøre inn i bruddet. Brukes til å informere både kunder og personell. Innførte Ansible for automatisert oppsett av servere og deploying av nye versjoner av applikasjonen. Innførte Liquibase for automatiserte og deterministiske databasemigreringer i produksjonsmiljøet Innførte React og skrev om de delene av Angular.JS-appen som egnet seg dårlig til Angular, kodemessig og ytelsesmessig.

Oiiku 2012-2013

Oiiku, internt prosjekt i Kodemaker sammen med Onkel Estrup. Oiiku er et event-system for proff-brukere (eventbyråer o.l). Implementerte en første prototype i Ruby on Rails og CouchDB, med monolitt-arkitektur. Designet en tjeneste-oppdelt arkitektur med et sentralt API, SSO for innlogging, og hvert sub-system delt opp i frittstående komponenter. Implementerte det sentrale API-et med all business-logikk og databehandlign av eventer og deltakere. Første versjon brukte MongoDB, skrev om til Datomic. Laget støtte for fulltekst-søk på deltakere, støttet av elsticsearch. Implementerte ett av sub-systemene, GUI-et for å jobbe med deltakere. Excel-aktig tabell for redigering, GUI for å definere hvilke attributter en deltaker kan ha, import og eksport av deltakere via excel ved bruk av Apache POI.

Husleieproffen 2012-2013

Utvikling av hele applikasjonen for Husleieproffen, både backend og frontend. Implementerte en prototype med Ruby on Rails som endte opp som produksjonssystem et par måneder. Skrev om prototypen til tjenestebasert arkitektur med Clojure. Tilpasset eksisterende Ruby on Rails-app til å bli en frittstående Ruby-app,, for å unngå å måtte skrive om eksisterende PDF-genereringslogikk.

Internt 2007-2011

Full-stack webutvikler på websiden vår, shortcut.no. All programmering av back-end og front-end. Websiden har senere blitt relansert, eksempel fra archive.org: https://web.archive.org/web/20131101203810/http://shortcut.no/ruterreise

Internt 2007-2011

Shortcut Publish. CMS som ikke er en CMS. Brukes til alle websider laget av Shortcut. Består av en samling gjenbrukbare Rails-komponenter (login, CRUD, oppsett av admin-skjemaer, mm) pakket inn i en Ruby Gem.

Internt 2011

Internt system for utsending av push-meldinger for iOS-apper.

Internt 2011

Webapp for oversetting av iOS-apper. CLI skrevet i Ruby genererer lokaliserings-metadata og laster opp til web-app. Ruby 1.9 brukes både på klient og server for full kontroll over enkoding i alle ledd. Web-appen har et enkelt grensesnitt for oversettelse til flere språk. Dette brukes av kunder av Shortcut. Lettere å forholde seg til en webside enn en utf16-enkoded .strings-fil fra Xcode.

Internt 2011

Internt system for automatisert bygging av iOS-apper. Samling av scripts + webapp for enkel bygging av iOS-apper. Bygger, tar vare på symbol-filer, mm. Kan automatiseres på server, i motsetning til Xcode.

Securitas 2011

Securitas 24 timer iPhone-app Programmerte hele iPhone-appen. Skrev gjenbrukbare rutiner for å generere HTTP multipart-enkodede requests for opplasting av bilder. Appen har transaksjonsbasert multi-kontekst Core Data-oppsett, for datasynkronisering på bakgrunnstråder. CMS i Rails. Data serveres som binary plist, for at minst mulig CPU-tid skal brukes til parsing på device. Mobil webside for å rendre selve artiklene i appen. CSS og grafikk som fungerer på vanlig skjerm og retinaskjerm på iPhone.

Forbrukerrådet 2011

Forbrukerrådet Hormonsjekk iPhone-app All programmering av iOS-app. Designet server-API. Implementerte strekkodelesing med zbar. All data i appen er online fra server, caches lokalt med Core Data. Appen vant en pris i Gullblyanten 2011.

Adecco 2011

Adecco Job Finder for iPhone Kodet HTML/CSS for UIWebView-visning av annonser (2008). Forbedret ytelse 8x fra forrige versjon. Push notifications når nye relevante jobber legges til. Henting av nye data mens man bruker appen, i stedet for modal loading-skjerm. Multitråding etc for å få til dette.

Hjemmet Mortensen 2010

Prototype iPad-app for ymse magasiner. Prototypen viste hvordan dynamisk innhold kunne typesettes og layoutes automatisk og bli like fint som manuelt typesatt tekst. Fikk XML inn, Core Text og hjemmelaget layout-system bruktes til å rendre fine artikkelsider, innholdsfortegnelser, bildesamlinger, mm.

Tandberg/Cisco 2009-2010

Tandberg/Cisco Callway. Abonnementsbaserte videotjenester, alternativ til in-house drifting av servere. Frontend-artikekt på portal for ordrer, fakturering, abonnementer, mm. Backend var et REST-API (ekte REST, ikke bare et HTTP-API). Server serverte statisk HTML og JavaScript. All websidebygging skjedde i klienten. Avansert brukergrensesnitt for rask og effektiv administrasjon av systemet. Laget også HTML-grensesnitt til Java-applet for nettverkstesting. Oppdaterte Java-kode for å tilby JavaScript-API. Bygget opp UI real-time med JavaScript/HTML/CSS mens tester kjørte i Java-appleten.

Tryg Forsikring 2009

Backend og frontend for livboye.no, «photoshop accurate» implementasjon av UI.

Eniro 2009

Frontend for komponentet nettverkssøk på proff.no, eksempel.

Gitorious 2009

Gitorious Virtual Appliance. Arkitektur og løsning for disbribusjon av vmdk-image for enkel installasjon av Gitorious bak brannmuren. Speccet og satt opp hardware lokalt for testing mot VMWare ESXI (nå vSphere).

Norrøna 2008-2009

norrona.no. All programmering, både backend og frontend. Brukte imagemagic på backend for dynamisk multispråk-rendring av grafikk fra databasen, for tekst i overskrifter og menyelementer. I dag har siden blitt byttet ut.

Edda media/Tinde 2007-2008

tinde.no Rails-artikekt, frontend-aritkekt. Opplæring til fast ansatte uten Rails- og Ruby-kompetanse. Implementasjon og programmering av nye features. Databasemigreringer.

Web Totalservice AS 2007

Jobbet med et stort antall websider for små og mellomstore bedrifter, og organisasjoner. Hadde eneansvar for serveropppsett og systemadministrasjon av LAMP-servere. Jobbet som hovedtekniker på Joomla-oppsett og installasjon, databaseoppsett, og konfigurering og tweaking av PHP. Jobbet som eneste frontendutvikler for implementering av Joomla-templates, javascripts, osv.

Nettstedfabrikken 2006

Laget websider ved bruk av Joomla (CMS). Samarbeidet med kunden med design-arbeid, satt opp server, konfigurerte og tweaket Joomla, og implementerte templates/HTML.

Se flere prosjekter i Augusts CV


August Lilleaas

Systemutvikler
+47 915 28 701
august@kodemaker.no