Every year, for the past 10+ years, I have looked back at the year that passed and summed up the major changes in my life and any particular achievements. There have been career shifts, getting married and giving birth, climbing mountains, moving from one country to another, learning new technologies, taking up new hobbies etc.

This year I look back and I can’t point to anything memorable that I have achieved, learned, or experienced. I do useful work, but nothing I do is remarkable either from the company’s point of view or for me personally. I cannot say that I have moved forward from where I was standing the same time last year. And last year was equally dull careerwise, but at least there was the birth of Adrian to remember.

Something has to change in 2012.

I spent a good chunk of this afternoon crafting a job ad. We’re now officially in the market for a fourth developer for our team. We’re looking for an experienced developer who knows web development and particularly likes databases.

The company I work for has no outside financing, and all growth is self-funded. This has its pluses and minuses. We like the stability and the lack of pressure to expand, but it does put limits on our pace. Now finally it’s been judged that we have the financial headroom to grow our team. I’m really looking forward to another pair of hands – there is so much we want to do and so few hours to do it!

This was my day yesterday. A reasonably typical day for us, except for the content of my work. Normally I would spend most of my day on a larger feature but on Fridays we focus on fixing bugs. Compare and contrast this to last year’s post.


5:30 Nurse Adrian, semi-awake. Check his nappy (we use disposables at night) and of course it has leaked again and there is a big wet patch on his pyjamas. Rouse myself enough to strip off his wet pyjamas and nappy and put on a clean nappy. Can’t be bothered to go downstairs for dry pyjamas so I take him in under my blanket. Both quickly fall asleep again.
6:30 Woken by Adrian who is now clearly awake for the day. We nurse.
6:40 Get up and go downstairs with Adrian so we don’t wake the others. Change Adrian into his cloth nappy and put some clothes on him. Groggily potter around and cuddle with Adrian. Bring toys for him to the bathroom.
7:00 Take a shower while Adrian plays on the bathroom floor.
7:10 Pack my lunch for the day. Brush breadcrumbs from around the edges of the kitchen floor. Get the porridge going. (2 dl mixed grains, mostly oats; half a finely diced apple; 4.5 dl water; a chunk of butter.)
7:20 Go upstairs. Pull up the blackout blinds so that Eric and Ingrid can start waking. Get dressed.
7:25 Go downstairs. Take the porridge from the stove. Set the table for myself, Adrian and Ingrid, who will all be eating the porridge.
7:30 Eat breakfast. Help Adrian eat by loading the spoon for him. Adrian is not very interested in breakfast and would rather nurse some more, and pick with the groceries in our temporary pantry.
7:45 Brush teeth. Notice that I have a few minutes to spare before I have to leave so I photograph our newly painted bird feeder and our Halloween pumpkin which is still looking pretty fresh. Put on my coat and hat and gloves.
7:50 Leave for work.
8:00 Get to the train station, arriving at the platform just as the train rolls in. Get on the train. Read the most recent issue of the Economist.
8:10 The train stops at a red light just before Karlberg. The driver announces that due to a fracture in a rail, there is a queue of trains in to Stockholm Central and we will be going slowly. I continue reading.
8:30 Finally reach Stockholm C, 15 minutes late. Unlock bike, cycle to the office just off Östermalms torg.
8:45 At my desk. Check our support inbox, archive yesterday’s email conversations with customers.
Email our server host about problems with our outgoing mail (which is getting blocked as spam by one major US internet provider) and ask them to get their mail server removed from the blacklist.
Notice that the nightly regression tests have come up red with an error message that we have sporadically seen before; set the regression tests to run again. (They come up green 20 minutes later.)
9:00 Continue where I left off on Thursday: working on our tool which analyses our application’s translation files for unused translation strings. Improve the parallel processing code in the tool; fix some bugs in it; go through the results and remove unused translation strings.
11:11 Note that it is 11-11-11 11:11. Text message arrives from Eric, saying the same.
11:30 Break for lunch. Go upstairs to our shared kitchen, heat up the packed lunch, eat. (Jasmine rice, vegetables in satay sauce, blueberry muffin baked by Ingrid and Eric.) Chat to colleagues while eating.
12:00 Back at my desk. Fridays are bug report days which means I am free to choose which bugs or minor improvements I want to work on. I decide to improve a feature in our test runs module (which will update test runs with any changes that have been made to the test cases it contains).
12:45 The code works but the user interface is not updating as expected. Take a break, spend some time answering customer support emails.
13:00 Investigate why the user interface is not refreshing. Discover weird caching code. Fix it so the cache is invalidated when appropriate.
13:30 Remove some unrelated code that I noticed during that work, and remembered it is no longer needed. (We used to validate VAT numbers entered by our customers against a web service provided by some EU agency, but the web service is so unreliable we’ve been forced to give up on this.)
13:45 Fix a bug: a link from our login page needs to be updated because the URLs in our public web site will change as of the next release.
14:00 Fix a bug: on certain pages, the navigation menu does not remember its state. The reason turns out to be a different ClientIdMode setting on those pages.
14:45 Talk to colleagues about some planned changes to our public web site.
15:00 Fix a bug: a particular value in a special field is not sorted correctly in the charts in our application.
15:15 Fix a bug: a certain user setting should be saved in the database instead of cookie, to match the behaviour of other related user settings. Notice that the code could do with some refactoring first. Refactor.
15:40 Start working on the actual bug.
15:55 Pack up and leave.
16:00 Cycle to Stockholm C.
16:10 At station.
16:13 Train leaves.
16:25 Train arrives in Spånga.
16:35 At home. Ingrid is playing with a friend and in their game I immediately get the role of grandmother. Luckily I am not expected to do much more than talk a bit. Adrian throws himself at me. Go upstairs to get changed. We nurse. A quick trip to the basement to fetch my winter coat – the weather has turned cold almost overnight.
17:00 Eric starts making pancakes. Dinner will be half an hour earlier than usual (17:30 instead of 18:00) because Ingrid’s friend E tires earlier than Ingrid and will be going home just after 18:00. Adrian and I hang around in the kitchen. I can’t do anything productive because Adrian won’t let go of me.
17:15 Adrian looks very hungry so I put him in his highchair and give him a pancake.
17:20 The girls come to the kitchen asking for pancakes. We set the table, get out all the accessories, and start eating the pancakes just about as quickly as Eric can make them. I alternate between eating and serving more pancakes to the children. Adrian squirms out of his highchair and comes to sit in my lap.
17:45 The girls are done eating. I continue. Adrian also decides to eat some more.
18:00 All done. Start cleaning up the kitchen while Eric finishes eating.
18:15 Friend E’s father J arrives. They and Ingrid hunt for E’s clothes – for some reason she and most of Ingrid’s other friends change into Ingrid’s clothes when they’re here. They go home.
18:30 Continue cleaning up and other minor household tasks.
18:40 Adrian looks ready to go to bed. Change him into disposable nappy and pyjamas. Brush his teeth. Take him upstairs.
18:55 Nurse.
19:05 Adrian tosses and turns and sits up and lies down and does his best to wind down.
19:15 Adrian falls asleep and so do I.
19:45 Wake. Get downstairs. Check email.
19:55 Play Ludo with Ingrid.
20:20 Ingrid is getting too tired to sit still and focus on the game so we pack up. Eric prepares Ingrid for bed while I read some blog posts.
20:30 Go upstairs with Ingrid. Read a story. Sit by her bed and read blogs while she goes to sleep. She has difficulty falling asleep so this takes quite a bit longer than usual.
21:15 Go downstairs. Talk to Eric.
21:25 Work on a Christmas felt applique/embroidery project.
22:40 Adrian wakes and “calls” for me. Quickly brush teeth. Go upstairs. Nurse. Fall asleep.

On this my tenth day at work I broke my run of codeless days and wrote about three lines of javascript and three lines of C# (both surrounded by lots of boilerplate so it looked like I’d done more work than I did). And a teeny little html page. All this I sent off to a team of developers somewhere to whom we’ve outsourced the development of the next version of our web site, as an example of how we expect the web site to integrate with our product.

But most of my limited hours at work I spent in meetings or with Outlook, discussing and organizing. Activities like this used take up less than half of my time. Now that (a) work has piled up while I was gone and (b) various one-off things are happening, such as us hiring new staff and offshoring web work and (c) I only work half days, they take up all of my time. Not much to be done about it, I guess.

On the home front, Adrian is happier than he’s ever been. And I, too, feel better than I’ve done in weeks. Everybody is feeling good. And the reason is simple: we all have time for each other. Each afternoon the whole family is at home. Everybody gets the attention they need and want.

I spent the last weeks (or maybe even months) of my time at home in a near-constant state of low-level stress. Alone in charge of one to two kids for about eleven hours every weekday, with Eric at home for an hour in the morning and another hour in the evening. Each afternoon was a three-hour juggling session, trying to get dinner on the table while offering some love and attention to both kids.

The stress sort of crept up on me, so while I noticed it, I wasn’t fully aware of its weight on me. I was irritable much of the time, true. And I wasn’t sleeping very well. And each evening after the kids went to bed I was so exhausted mentally that I couldn’t even find the energy to read a book. But it somehow came to feel normal. Not good, but normal.

Having a stressed-out, irritable mum affected the kids, too, especially Adrian. I think we were both mirroring each other’s frustration, which is why he was mildly dissatisfied so much of the time. Now that I’m feeling better, he is, too.

I suppose that this is as good as everyday life can get (for the foreseeable future). Soon I will work longer days – probably not full load but I will at least get back to my previous 80% – because this is financially untenable in the long run. That still gets me home by 4.30 or so, well in time before someone needs to start cooking dinner, so it will reduce but not totally take away the time we can now spend with the kids in the afternoons. But then in January Eric also goes back to work, full time, and Adrian starts at nursery, and our evenings will again have lots of hurrying and little time for just being with each other.

I will savour this as much as I possibly can, while it lasts.

At work today I got started with handing over the responsibility for customer support to our new employee. This included some admin work around e-mail inboxes, aliases, logins, access rights etc., and looking for helpdesk software. JIRA, Zendesk, HelpSpot, Tender… too many options!

It is becoming a sport for me to see how many days I can do useful work – things that I do actually need to do, and now rather than in a month’s time – without writing any actual code. Today I resolved a few customer support issues, brought some of our stats and metrics files up to date, and looked through unprocessed bug reports in our backlog. The number of open bug reports that we hope to fix at some point (as opposed to those we close because fixing them would be too much work for too little benefit) has increased by 16% while I was away. That doesn’t surprise me at all. The number always goes up, as soon as we stop focusing on it. Now that we have a chart to look at again, hopefully we can get it back down again.

It was my sixth day at work and I did not touch any code today either. Instead I followed up and checked various statistics and went through bug reports, and held an almost two-hour intro to our product for a new employee, and then joined the team for a welcome lunch for the new employee, and then prepared for a customer meeting I am to have tomorrow. And that meeting is scheduled to last 4 hours so there won’t be any coding done tomorrow, either.

The new joiner, by the way, is going to be in charge of customer support, help files, and other such stuff. Handing over the responsibility for customer support from the developer team to a dedicated support person will be such a good thing. Getting her up and running will take a lot of my time but the potential gain in productivity over a longer time is huge.

At work: more software installations. Visual Studio, Resharper, SQL Server Management Studio, TortoiseSVN, AnkhSVN, CCTray, Notepad++, Office, Filezilla, and probably some that I’ve forgotten already.

During the afternoon I replanted the three tomato plants I bought 10 days ago, and cleaned out all the paper junk that’s accumulated in Ingrid’s room. Almost every day she brings paper home from nursery, sometimes with drawings, sometimes with scribbles, sometimes just folded up and wrapped up with sticky tape. Of course she wants to save them all, but then a few days later she forgets all about them. I plan to go through all her toys someday soon, too.

Adrian is still semi-ill, and eating and sleeping badly. I think I got about four hours of sleep this past night, in three separate pieces. But tonight he fell asleep on his own: we nursed, I turned him on his tummy, he twisted and tossed for a while, and then he was asleep.

Eric took him to his 8-month checkup and it was uneventful. He can sit unsupported, he is not cross-eyed, his babbling includes non-vowel sounds: check, check, check. 9.4 kg and 69.7 cm.

We had a lovely storm during dinner, with lightning and thunder and hail and pouring rain. Falling cherry petals filling the air made the storm look even more fierce.

My first day back at work. It wasn’t a good day for going back to work: Adrian’s teething cough transformed into a plain and simple cold during the weekend and he was feverish and unwell all day yesterday. Neither of us got much sleep during the night. And he was totally not interested in food and just wanted to nurse, so I left Eric and him with a bottle and a heavy heart – and hurried back as soon as I’d finished my half-day of work.

In the end they managed pretty well of course, and Adrian had accepted the bottle, but he was happy to nurse when I got home.

At work I spent most of the day getting my new computer up and running and installing Windows. Installing stuff is, I think, my least favourite task at work. I’d rather scrub the kitchen than battle with network card drivers or look for the right download files on MSDN. A gazillion flavours of Windows 7, all of them with long names that look almost identical at a glance, so finding the right one is a real chore.

By the time I left the office my lower back hurt. Even though I only worked a half-day, and I do not sit still when sitting in front of a computer. I am just not used to this much sitting any more.

I had also forgotten that it is a good idea to bring something to read on the train.

I’m in Gothenburg for two days for ScanDevConf 2010. With a long train ride yesterday, and an evening in a hotel room today, you’d think I’d finally have time to blog… but no. I spent my hours on the train reading China Miéville’s The City and the City, and this evening at a bar/pub almost-watching football (yes, football) with some fellow developers I met at the conference.

I was also expecting to blog about the conference during the day. But access to power outlets was less than generous, so I couldn’t type my notes during the sessions themselves, meaning I’ll have to process them before they’re in a bloggable state. A real blog post will be coming soon.