How am I spending my time?
As of November 2024, I'm:
- Working full-time at BlueDot Impact, an education non-profit where I focus on AI safety and alignment. I've recently been working on:
- Seconded part-time in the Department for Science, Innovation and Technology, to help advise on governing frontier AI systems. I'm also spending a week full-time there this month.
- Handling technology and governance at Raise, a charity that encourages students to think about effective giving. This month:
- handling changes to our trustee board
- preparing our annual report and accounts for submission to the Charity Commission
- looking after our open-source software
- Learning about:
- implementing AI evaluations with local LLMs, including making improvements to projects like inspect-ai, inspect-evals, llama-cpp-python
- agentic AI coding tools, particularly Cline, to figure out how to use them effectively, and to see how excited and/or scared I should be
- science of learning principles, from Stephen Kosslyn's books, so I can apply these to the courses at BlueDot and my blog writing
- Playing:
Things I would like to exist
- A free or cheap team password manager. My case is a non-profit with many volunteers, but I think this would likely improve password manager uptake generally which would significantly improve organizational cybersecurity. Thanks to someone for suggesting pass, including QtPass which might be pretty close and can be used by multiple people: I think I just need to figure out a way to make it super user friendly.
- An easy-to-use and free DMARC configuration tool, again to improve cybersecurity for organisations. NCSC offers this free checker which is a great step in the right direction, but isn't quite there yet.
- A todo-list like tool, where I can specify recurring tasks and have the system automatically follow up on things and escalate if necessary. For example, we need to prepare accounts for Raise each year and want to send a reminder to the treasurer - but if they don't acknowledge this then the trustees should be alerted. Someone suggested this might be close to a tickler file system, or a computerized maintenance management system.
Featured projects
- AWS Email Simulator: enables devs to test emails without AWS credentials, and work productively without internet. Downloaded over 210,000 times.
- YouTube thumbnail hider: browser extension with over 50,000 weekly active users and plenty of glowing 5-star reviews.
- Apply for a postal vote service: fully-working GOV.UK-style service. I think this is the first ever properly electronic version of this form.
- Serverless offline watcher: developer tool that enables extending the Serverless framework with arbitrary file or directory hooks.
- London cycle parking: find cycle parking quickly in London.
- ISA tracking tool: compatible with 4 brokers for read and write operations. Has reliably tracked my ISA performance every day for the last 3 years.
- PDF scanner: add a scanned look, more convincingly than existing services.
- RSA SecurID library: reverse-engineered security token generator, derived from a C library. Also available as an easy-to-use browser extension.
- TypeScript i18n library: A lightweight, flexible, and fully type-safe translation framework for websites, native apps and servers.
- Google Doc to LaTeX: Converter that makes writing LaTeX a piece of cake.
- Discord reminder bot template: send reminders from GitHub. 2 min setup.
- Day visualiser: ever felt you needed more existential dread in your life? See how fast the day is slipping away from you.
- Media: I publish free-cultural works on places like Wikimedia Commons (where I also helped build the Android app). They've ended up in US state forestry manuals, South African national textbooks, papers on language models, and YouTube videos with millions of views.
Most of these have their source code availabile on my GitHub. You can contribute to support their development.
Communicating with me
From you to me:
- Please bias towards overcommunicating with me. Leave pauses or occasionally check so I can interrupt you if you're telling me stuff I don't think is relevant.
- State your uncertainties and where you've made assumptions.
- Give me feedback. Prefer unpolished timely feedback to no or late feedback. Bonus points if you can be specific or provide examples.
- Enjoys working in public
- Prefers asynchronous communication. Dislikes surprise phone calls.
- Exception: use synchronous communication if we are colleagues and something is blocking you from completing work.
- Asynchronous:
- Use Slack if we have a workspace in common relevant to the topic, you know I check that workspace, and it's something short.
- Use WhatsApp, Messenger or Telegram for personal stuff (no formal work comms).
- Exception: If we're working somewhere that doesn't have a communication tool, you can send work comms here.
- Use Google Docs or similar for anything longer or that needs collaboration.
- Use email for everything else, or where you're not sure.
- I think it's fine for you to send me asynchronous communications while sitting next to me.
- If you need me to do or answer something, make it obvious.
- Add '[Action required]' to the subject.
- Prefix tasks with 'Action required:' and bold them.
- State any relevant timelines upfront.
- If I need to read it, use the email 'to' line or tag my Slack handle.
- When writing something with multiple parts, give them unique numbers. This helps us refer back to them.
- Don't inline reply to emails. It's hard to see what's been added, muddies email history, and causes difficult-to-resolve forks.
- Don't just say hello.
- Where relevant, communicate widely (e.g. Slack channels/email distros, not DMs) so others can learn from our conversation later.
- Synchronous: In person, or Google Meet. Hates Webex and Lync.
- If you're asking me for a review, see my review guide.
From me to you:
- Will try to follow your communication preferences. If I'm not aware of them, I'll generally assume the same for you I have requested above.
- I try to triage comms within 48 hours, and respond within 1 week. Slower when I'm extra busy. I don't usually send acknowledgement messages.
- Assume misunderstanding, not malice. In particular:
- If you think I'm going in the wrong direction, tell me early.
- I err on the side of overcommunicating to ensure we're aligned. This can lead to overexplaining: if this is the case let me know!
- If I am slow to respond, I'm likely just a bit overloaded with other stuff.
- I will send you asynchronous communications for non-blocking issues while sitting next to you, unless you ask me not to. This is to avoid interrupting you, and so that you can instead address comments at a time that is convenient to you.
- 👀 is 'looking', ✅ is 'done', 👍 is 'acknowledged' (not meant passive aggressively), ➕ is 'agreed', 🙌 or 🎉 is 'yay'