- 2023
Ok, right, so, the year is over. Time to write one of those notes that I write each year. This year, we drove down to Universal Studios for President’s Day. We’d never been before and hadn’t realised that the Super Mario Land was opening that weekend, so we were lucky to get to...
- GraphQL types
When I first joined Frec one of my big questions was why they'd chosen a GraphQL API. At Twitter we'd migrated to GraphQL and while it was a huge improvement over the existing JSON API, I felt that was probably because the existing JSON API was completely undocumented, and the...
- A day in the life, 2023
The boy (6yo) wakes up five minutes before my alarm goes off at seven. He's always early. Sometimes 30 mins, sometimes only three. He shouts for Daddy, or Mummy, as the mood takes him, but Mummy went out to walk the dog and get a coffee at six thirty, so I'm usually the one...
- 2022
This February I switched jobs, from Twitter to Frec. I had joined Twitter as employee three hundred and something, and saw it grow to an infeasibly large seven thousand and something. Frec is something of a change - there's about a dozen of us. Some time I'll organize my thoughts...
- CSS Perspective
After a decade at Twitter, I decided to dedicate the next year to learning new things. It’s not that you can’t learn things at a large corporation, but your primary role is to get stuff done with what you have. As such, I’m something of an expert in wrangling small changes into...
- Experiments, part 2
Yesterday we talked about a/b testing at large companies like Twitter, and we ran through a simple example. Today, I wanted to talk about more complex examples, and the problems associated with them. So let's pick a more complex example. Back in 2014, we made a significant update...
- Experiments
One of the great perks of working at a place like Twitter is the ability to run a/b tests against a large userbase. Such experimentation is one of our core functions: every change is tested with a small subset of users before it's launched to everyone. I thought it would be...
- 2021
Well shit, the COVID pandemic didn't end with the vaccines. It took a mighty effort to distribute them, but it wasn't enough, the virus mutated and we had a spike in the summer. Now somehow it's December again, there's Omicron everywhere, I've had three shots, Agnieszka's had...
- 2020
2020 was the pandemic year. The first real pandemic year. The year of COVID-19. The news was talking about it from the start of the year, in Wuhan. We weren't too concerned because there have been a few diseases starting over in Asia that haven't translated into big problems...
- Autoplay
Occasionally, someone will complain that “Twitter keeps resetting my autoplay setting” on the website, and they’ll usually imply that we’re doing it for ads or other nefarious purpose. Truth: we don’t do it for ads or any other nefarious purpose. If anything, there might be a...
- Well this is weird
Well this is weird. It's April 20th. I've been working from home for about seven weeks now. Jack's been off school for five weeks. The whole world is on lockdown, is social distancing, is staying at home, is wearing masks, is only doing essential trips, is only working essential...
- 2019: What I did this year
My annual review of the past year. This year I tried to take a week off each quarter, rather than saving for a big trip like last year. I kicked off the year with JSConf Hawai’i. It was a bit weird going there without the kids, but also freeing to get a break. I ran every day,...
- Cookie banners
In the EU, there's a requirement that users are warned about the cookies that a site uses. It's a bizarre quirk that resulted from well-meaning legislation that appeared before GDPR. However, it suggests that users know what a cookie is and what it might be used for, which they...
- Taking notes
There are different kinds of note-takers. Some people record everything: every word. They might or might not share them. Others will write down important points or action items. I tend to note down my own action items and let others fend for themselves. Others take no...
- Identity and Endorsement
Verification is a feature common to Facebook, Twitter and several other social media networks. The problem it was created to solve was to differentiate between Jan Smith the famous actor and Jan Smith, the absolute nobody who wants to build social capital off the reputation of...
- Losing control
Twitter added a new control to the home timeline recently: "latest tweets". It's a toggle that let's you switch between "Home" (ranked or algorithmic timeline) and "Latest" (reverse-chronological list). The algorithmic timeline has always been...
- Shipping
After months and maybe years of stress, meeting, late nights, bug reports, dogfooding, requirements changes, dependency changes, management changes, user testing and actual coding, you're ready to ship your significant rebuild. What happens next? There's often some kind of...
- Removing cookies
Cookies are hard to manage. As you'll know, the cookie API is ... painful. You can set a cookie like so: > document.cookie='name=value; Path=/; Domain=kenneth.kufluk.com; Max-Age=1'; When a cookie is set by the server, it uses a similar format, in the "set-cookie"...
- CSRF stories
I think I first learned about CSRF at an "@media" conference talk in 2008 given by Simon Willison (Twitter). In the middle of a Django presentation, he explained how it's possible to make a form that will post across to a different website, and that when you do so, the...
- 2018: What I did this year
My annual review of the past year. One thing I said I needed to do last year was work on my shoulders. I get a lot of pain in my shoulders when I sleep. I can’t sleep on my right side because my right shoulder just starts hurting, I can’t sleep on my left side because my right...
- Granny
The first time my mother-in-law came to stay with us, she was sleeping on the floor. It was awful. Not just on the floor, but on the living room floor. We were living in a small one-bedroom flat in San Francisco, we hadn’t been there long, and the move had cost us most of our...
- A day in the life, January 2018
Five thirty. The baby is making noises. My wife murmurs something I can’t hear while I stretch. It’s my turn. I get up and go to the cot. He sees me and instantly turns away. He wanted mummy not daddy. After five minutes of trying to sleep, he realises he’s awake. I pick him up,...
- 2017
The end of the year once again. Last year, I vaguely remember feeling quite upbeat. Although I apparently had a cold, and yes, Trump had been elected and Brexit had been voted for and yadda yadda yadda. From a personal perspective, I was a new dad, I’d just had a huge break from...
- The last great-grandparent
When Jack was born, he had five great-grandparents. That's five more than I had. But by the time Max was born, only one was still with us. And now, he too has passed away. Hamish was probably my favourite. He was a sailor, a conscientious objector, a dancer and a fool. He taught...
- 2016
Ok, it’s the end of the year. I’ve got a cold. I hate having colds - they attack me particularly badly, and I get all gross and covered in tissues and snot, and all I want to do is sit around and eat ice-cream and… Hang on. … Ok. Ice cream. Better. So, 2016. One of those years...
- What I love about working at Twitter
I've never been the one with the fancy words and clever insights. My writing is either hastily-scribbled thoughts to myself, or simple language and simple meaning to convey a message. If you're looking for the poetic literature on this subject, I recommend my colleague Jeremy's...
- 2015: This year I have ...
Every year I scribble down a list of things I've done in the past 12 months. This year, I ran a marathon (kind of - there was a lot of walking involved), we holidayed in Hawaii (twice) at the Disney Aulani, we flew home for the first London family Christmas since 2009, and we met...
- 2014: This year I have …
My annual End of Year update. Last year, I made a long list of things I wouldn't do this year. I only broke my promise on one thing: I bought a new car. Well, not a car - a truck. A big, beautiful, red, four-wheel drive, leather trimmed, all-american truck. I was happy with...
- 2013: This year I have …
My annual End of Year update. This year, we survived. Yes, I know I said that last year. But it's also how we feel. Exhausted. Things are getting better. Our son is growing, learning new words every day. We might not have the sleeping situation sorted, but it's still a fantastic...
- Flying with a toddler
Catherine Webb recently pointed me to her outstanding 2008 post "Baby Holiday: SWAT Team special". I felt it needed a little updating for the modern era. Here are our experiences from the summer. Not with a baby, but with a toddler. If your toddler is under two, the...
- 2012: This year I have...
My annual End of Year update. This year we have: Survived. Last year I said I’d take it easy this year. That's not so simple with a baby. But I think we're slowly getting on top of things. I have also worked solidly on twitter.com, making it faster and more robust. I'm giving...
- Tpyos
I have a problem with spelling. It's a bit like anti-dyslexia. I've seen friends stare at a page of text, totally unable to see the glaring errors in front of them. I don't have that. I get the opposite. When I look at a page of text, errors jump out at me. They're distracting....
- Ten Excuses
Ten reasons your wife should get up to shush the baby tonight: You've had a hard day at the office today You've got a hard day at the office tomorrow You did it last time She's better at it You've had a beer The baby is closer to her side of the bed The noise bothers her more...
- I miss running
I haven't been running for a long time - since my baby was born. There's just not enough time and energy for it these days. We wake up for the second or third time that night at about six am, pull the little one out of bed and try to soothe as best we can. By the time we're all...
- Step lightly
At the centre of my childhood home was a staircase. Not one of the elaborate kind, just a brown, carpet-covered, twelve step staircase, with a hallway on each end. We'd play on it for hours. Jumping off higher and higher points. My older brother could leap the entire distance - I...
- 2011: This year I have...
My annual End of Year update. Last year I said I'd: Run another marathon. Write some more. Enjoy my new job and life in SF. Well, I'll score that a two out of three. Yes, I ran the marathon, but I stopped halfway (oh, the hills!); I didn't really blog any more; but yes I...
- Big News
I'm happy to announce the release of a project we've been working on for a while now: a new little human. This project has turned out to be far more complicated than I ever imagined it could be, and so during development, my wife and I agreed to keep our news offline until the...
- Living in America
We have been here for nearly six months now. This is what we've learned: Eggs American eggs are white. This may seem odd, but they break more easily into two halves, and just look nicer. It is surprisingly difficult to find free-range eggs though, and this is sad. Grids I'm...
- 2010: This year I have...
My annual End of Year update. This year had ups and downs. The downs are no fun, so let's focus on the ups. This year I have: Built a Formula1 website for some pirates, and won an award. Passed my Driving Test Got stuck in the Canary Islands for four extra days, due to volcanic...
- Going to California...
Unless you've been stuck in a cave somewhere, held hostage by extremists, fallen deep into a coma, been discovered living on arsenic, or, worst of all, not been following me online, you'll know that we've up and moved to San Francisco, California, so that I can go to work for...
- Vietnam - Burning boat
Ok, so there's a few days left to your trip around the world. You're looking for an easy life, maybe a last top-up to the tan marks. How about a relaxing boat trip? If only. Here is our tour guide on the phone. Inside, where we've just been having lunch, you may see some...