I read a piece this week that gave language to something I had been circling for a while. Nilay Patel’s The People Do Not Yearn for Automation 
 makes the case that the tech industry has what he calls software brain — a way of seeing the world as a series of databases that can be controlled with structured code. He argues that AI has not earned the public’s trust because people are…
I recently wrote about rebuilding my personal website from scratch 
 — new framework, new design, bilingual content, accessibility-first architecture. Since then I have kept building. This is about an experiment: a chatbot that lets visitors explore my work through conversation instead of navigation. 
 
 Portfolio sites have always been information architecture problems. You organize…
After rebuilding my personal site, translating it into two languages, adding accessibility features, and shipping a text-to-speech player, I realized I had no way of knowing if any of it still worked. This is about adding tests — and about a way of thinking that starts with the end in mind. 
 
 I have always been lazy about writing tests. Not philosophically opposed — just lazy. The site…
I recently wrote a five-part series 
 about rebuilding my personal website — migrating from Jekyll to Hugo, redesigning the layout, translating everything into Spanish, optimizing for mobile, and shipping it all. This writing is about a feature I added afterward: a text-to-speech player that lets you listen to any writing on this site. 
 
 Text-to-speech is, first and foremost, an…
In 1999, David Bowie sat across from Jeremy Paxman on BBC Newsnight 
 and told him the internet was going to change everything. Paxman pushed back — it was just a tool, he said. Bowie shook his head. “No. It’s an alien life form.” He talked about the wall between artist and audience breaking down, about how the interplay between the user and the provider would crush our idea…
For twenty years, the question was: how do I rank on Google? 
 That question is changing. It is not gone — search engines still matter. But a new layer has appeared on top of them. People are asking ChatGPT 
, Perplexity 
, Google AI Overviews 
, and Claude 
 for answers instead of typing keywords into a search bar. Gartner estimates 
 that traditional search engine volume…
Accessibility is not a feature you bolt on at the end. It is the foundation you build on from the start. This is how I approached it when I rebuilt my personal site. 
 
 Every interactive element on this site has a visible focus indicator 
. A 2-pixel solid outline in the accent color, offset by 2 pixels so it does not crowd the element. Buttons, links, navigation items, the language…
This is the fifth and final entry in a series of writings about the updates I am making to my personal website. Part 1 
 covered the migration from Jekyll to Hugo. Part 2 
 covered the design overhaul. Part 3 
 covered translating the site into Spanish. Part 4 
 covered building for mobile. Part 5 is about deployment, performance, and getting the whole thing live. 
 
…
This is the fourth in a series of five writings about the updates I am making to my personal website. Part 1 
 covered the migration from Jekyll to Hugo. Part 2 
 covered the design overhaul. Part 3 
 covered translating the site into Spanish. Part 4 is about building a mobile experience that feels native. 
 
 Ground control to Major Tom. 
 Most personal sites treat mobile…
This is the third in a series of five writings about the updates I am making to my personal website. Part 1 
 covered the migration from Jekyll to Hugo. Part 2 
 covered the design overhaul. Part 3 is about translating the entire site into Spanish. 
 
 We can be heroes, just for one day. 
 When Bowie recorded “Heroes” in 1977, he did not stop at the English version.…
This is the second in a series of five writings about the updates I am making to my personal website. Part 1 
 covered the migration from Jekyll to Hugo. Part 2 is about the design overhaul — the visual and interaction decisions that gave the site its current shape. 
 
 Modern love walks beside me. Modern love walks on by. 
 Once Hugo was in place, the code was clean, but the site…
This is the first in a series of five writings about the updates I am making to my personal website — from migrating the framework, to redesigning the layout, to translating the entire site into Spanish, and more. I am working alongside Claude Code 
, running Anthropic’s Opus 4.6 locally, to make these changes. Part 1 covers the framework migration itself. 
 
…
It was early summer 2011 and the dog needed a walk. I got my things together, strapped on my walking shoes and headed out for the usual loop through the neighborhood. 
 I was about halfway through the loop when a young man coming from the opposite direction ran past me. I remember thinking to myself, “I really should start running again,” and continued on my stroll with the dog.…
I recently watched the film mid90s 
. And it got me thinking a lot about skating… and coding… and how the two relate to each other in my life. 
 Skating was how I spent part of my Kansas high school summers. My friends and I would spend all day (and sometimes night), heading to different spots around town to skate. We all seemed to have a lot of freedom, with little to no…

 Image source: @SwiftOnSecurity 
 
 The practice of delivering online products and services is ever evolving. We are forced to move alongside the shifting tides of technology. In this changing of the tides, new features are created and implemented. How do these changes impact the security and privacy of users? This question brings up something I’d like to call “security…

 In March 2015, I went to New York City to co-work with my new colleagues at the then-budding 18F NYC location (also referred to as “the beige”). We went out for lunch and talked about all our ideas for transforming government digital services and planting the seeds of change. 
 I started my tenure at 18F by designing and building the infrastructure for two projects I’m…

 While I am not a prolific writer on this site of mine, it’s been quite a while since I’ve written something. In fact, it’s been almost exactly six months since my last post 
 and needless to say, I’ve been busy. So, I thought I’d write up what I’ve been up to in that time. 
 One of the many exciting things that has been going on was joining the…

	 Unless our conception of patriotism is progressive, it cannot hope to embody the real affection and the real interest of the nation. 
	 
		— Jane Addams
	 
 
 As mentioned at the end of my last writing 
, I spent my time off speaking with several colleagues and employers about working with them. Today I am proud to finally announce that I have…

 In my writing titled “ pressing pause 
”, I talked about taking some time off for myself. It’s been good to be able to take time for myself, my family and take into consideration what I want to do in my life. 
 While during my time off I’ve been pretty quiet, I have also been really busy. I thought I’d do one of those “What I’ve Been Up…

 In my journey into teaching, I learned many things about the craft and its role in education, primarily in the programming realm. The challenges I encountered as a teacher are beyond many of the challenges I faced as even as a programmer. In the past year or so, I have been thinking of new ways to teach and bring new awareness to students. Here are a few things I have learned and would like…

Mary Cassatt, Breakfast In Bed , 1897, oil on canvas 
 This week, my daughter starts her first week of Kindergarten. I cannot believe she is already heading off to school or how quickly the time has passed. It seems like yesterday I was nuzzling this little baby under my chin, doing the hokey pokey at story time and figuring out the secrets of potty training. 
 This week has also been…
Last week I had the honor of helping graduate the very first cohort of students from The Iron Yard in Durham, NC. The entire day was filled with gratitude, kind words, thoughts and a brilliant showcase of the amazing work the students created during their intensive twelve weeks of training. 
 During the after-party on Demo Day this past Friday, I kept getting told things like “You must…
This past March I had the privilege to be a mentor for Pearl Hacks 
, a hackathon for college and high-school aged women at UNC-CH. It was an inspiring event for me and I really enjoyed seeing all of the amazing things that the students came up with! I had the opportunity to teach some of the attendees about Django 
 and the fundamentals of starting their first Django project. It was very…
The original post is listed on the O’Reilly Radar blog: http://radar.oreilly.com/2014/04/simplifying-django.html 
 
 Despite Django’s popularity and maturity, some developers believe that it is an outdated web framework made primarily for “content-heavy” applications. Since the majority of modern web applications and services tend not to be rich in their content,…
It has been a year since Django core contributor Malcolm Tredinnick 
 suddenly passed away. It was a shock and a major blow to the community to lose him, as described in multiple posts 
 around the web. I never took a chance to contribute my own thoughts on his passing and want to take this occasion to share my own perspective and experiences with him. 
 I first met Malcolm while…
This past weekend I had the unique opportunity to speak at a first time conference PyTennessee 2014 
 in Nashville, TN. I gave a talk called “To the Moon and Back: Taking the Leap in Solving Big Problems.” It’s a talk I had given at SecondConf 2013 
 and am very happy to have been given the opportunity to bring this talk to the Python community. 
 During my talk, I…
For the past four weeks, I have been helping to lead a rebranding effort for Coursefork 
. It has been an interesting journey for our team and I wanted to share how we came up with our new brand. 
 Coursefork wasn’t working 
 As an edtech startup, it is important for us to have a brand that resonates with educators. The name “Coursefork” was just not working,…

	 
		I am my own worst critic. It helps you keep searching. Trying to expand. Trying to grow. And not settling into something that is familiar....[ ]
	 
	 I want to keep moving and keep learning. And not know everything. 
	 
		— Michael Stipe
	 
 
 Throughout my career I have always worked at places where I was passionate…
Earlier this month, I had the honor of being invited to attend the 2013 Mozilla Summit 
 in Brussels, Belgium. It was an amazing experience and I wanted to share some of the highlights from my trip. 
 What is the Mozilla Summit? 
 Mozilla hosts triennial meetings in which Mozillians from all over the world come together. The 2013 Mozilla Summit was hosted in three cities: Brussels,…
As some of you may already know 
, last week I had the honor and privilege to help organize the 2013 Teen Tech Camp in Durham, North Carolina. The event was extremely challenging, fun and one of the most rewarding things I have ever been a part of. 
 the idea 
 The idea for the camp came from my experience at the Teen Tech Camp in 2012. Refresh the Triangle 
, a community made up…
FOR IMMEDIATE RELEASE 
 Local Teens Learn Computer Programming Using Raspberry Pi Microcomputers 
 Durham, NC – Refresh the Triangle 
 is proud to announce Teen Tech Camp 2013, a one-day event to teach computer programming to area youth. The camp is the second to be hosted by Refresh the Triangle, in partnership with Durham County Library 
. 
 This year, students will learn…
So. It’s been a while since I wrote a post. Mostly because… well… I’ve been busy. 
 First off, I am proud to announce that I have joined Girl Develop It RDU as one of their new co-leader’s. It’s been a lot of fun organizing events, classes and engaging with other tech-minded women around the Triangle. I’ve already met some amazing women in my…
Over the past few months, my colleague Caleb 
 and I had been developing a game using pygame 
. We had worked on it from time to time, figuring out the game mechanics, writing code, sketching out ideas and creating game assets. 
 Last week the company I work for, Caktus Consulting Group 
, hosted our second Ship It Day 
. It’s a wonderful perk of working there and a great…
Setting up local development environment is par for the course when programming. We’ve all had to do it at one time or another in our careers and shared in the pain points it brings with it. 
 My battle this week? Dun, dun, dun…installing pygame 
 on OSX Mountain Lion. 
 Yes yes, I know. I just received this awesome Raspberry Pi 
 which has the Raspian distribution of…
Yesterday, I wrote a post about the awesome time I had at PyCon 2013 
. What I failed to mention in that post, was what the community has been doing to ensure that there is awesomeness for all. 
 Let’s crunch some numbers! 
 
 20% of the attendees at PyCon were women 
 40+ kids, ages 13 to 16 years old, attended the Young Coders tutorials 
 Over 2500 attendees came to…
Here I am again, sitting in an airport waiting to board my flight away from PyCon. And what a conference it has been! Where do I even begin… 
 The experience this year was one of inspiration for me. After arriving at SFO, I headed straight to Santa Clara to help out with the Young Coders 
 tutorials, a free Python tutorial geared towards kids. It was amazing. I walked into a room…
Many folks have been asking the following question: how to get more women involved in various programming communities? This questioning has led to great discussions about subsidized childcare at tech conferences 
 and more focus on diversity in programming. 
 My answer: Teach women to program. 
 Last night, I had the pleasure of teaching my first class for Girl Develop It…
I find that most projects are created out of need. You either look for something that does what you need, come up with an idea, find something that almost does what you want or both. That is how I created a new filter: anora. 
 I started out by looking for a template tag or filter that would determine whether or not to us “an” or “a” based on the contextual value of a…
I’ve been fairly silent over the past few weeks. Some of that has been personal time and some for work. Working on something that I hope will be helpful to those of us who are at a loss about the issue of sexual harassment in the tech community. What can we really do and where do we start? 
 Paul Smith 
 contacted me shortly after my post with an idea his wife, Michelle, had. Why…