00. About

Fredrik Johansson

Developer, photographer, nerd. Malmö, Sweden.

I've been making computers do things since getting a Commodore 64 at ten. This has got somewhat out of hand.

01. The real education

1984 → 1996

Teenage bedroom & family TV

My parents were smart/unsmart enough to get me a Commodore 64 when I was ten. Quickly discovered you could actually program the thing, which led to monopolizing the family TV for unreasonable amounts of time. BBSes became my second home in my early teens — learning to navigate the digital underground before it was cool (or legal, depending on which BBS). Used some of Sweden's first private/semi-commercial internet gateways in the early '90s, building raw HTML for Lynx browsers and hunting down information via Gopher because Google wouldn't exist for another few years. Turns out getting a C64 at age ten is the most effective tech education you can have, even if your parents didn't realize they were creating a monster.

Sorry, Mom and Dad.

1984
Commodore 64
1989
BBSes
1993
HTML / Lynx
1994
Gopher
1998
IE4 vs Netscape
2006
AJAX
2013
Containers
2015
Cloud everything
2020s
Back to self-hosting

Full circle, apparently.

02. When I'm not breaking computers
Photography

Nikon, mostly. The results end up on /photos

LEGO

Mostly Formula 1 cars. Gotta collect them all.

Video games

Playing them badly. Occasionally making them, over on Projects

Beer

Planning to brew some this year. Will probably explode something.

Formula 1

Watching cars go around in circles with unreasonable enthusiasm — see also Pitwall

03. Entirely scientific statistics
~2
Coffees per bug
Spaces
Tabs vs spaces
Fight me.
418
Favourite HTTP status
I'm a teapot.
64KB
Starting RAM
2am
Optimal debugging time
Unfortunately.
04. Career stats
Production fires extinguished Weekly occurrence
Legacy systems rescued 12+
Bugs fixed at 2am More than I'd like
Friday deployments 0
Functions named "temp" Still hunting them down

* methodology unavailable for peer review

05. Technologies I've survived

The tech that shaped me into the cautious, paranoid developer I am today. Survived and (mostly) recovered.

  • Internet Explorer 6 — Five years of CSS hacks, conditional comments, and wondering why nothing worked. Still have nightmares about hasLayout and z-index bugs.
  • Flash / ActionScript — Built entire applications in Flash before HTML5 killed it. RIP to the “Skip Intro” button era.
  • VBScript / Classic ASP — Server-side scripting in the late ’90s. Learned to love angle brackets and Response.Write() statements everywhere.
  • jQuery plugins circa 2010 — Downloaded 47 different carousel libraries, each breaking different browsers. Eventually wrote my own (because that’s what you did back then).
  • PHP 4 / register_globals — Shipped more of this than I care to admit. When security was optional and every variable magically appeared in global scope. Developed a lasting allergy.
  • Ruby on Rails — Convention over configuration sounded great until you needed to do something unconventional. Fun idea that never quite reached production maturity and eventually faded into the background. Made a lot of developers very excited for about five years.
  • FTP deployments — Before CI/CD, we uploaded files one by one via FTP. Sometimes remembered to upload all of them.
06. Projects I've successfully avoided
Yet another todo app tutorial

The world has 47,000 of these already. It doesn't need mine.

WordPress plugin development

Learned my lesson the first time. Once was enough.

Cryptocurrency trading bot

If I understood the market, I wouldn't need to build a bot.

"It'll only take a weekend" projects

Narrator: It did not, in fact, take only a weekend.

Predatory gambling sites or lootbox-driven mobile games

Or game studios employing a psychologist to maximize addictiveness. I prefer software that doesn't weaponize dopamine. (And yet, I've spent time gamifying this website. Don't ask.)

Now → Projects → Failures →