Hi! I'm Karen Rustad Tölva. I design and build joyful, useable applications.

  • ★★★★★ HTML/CSS
    • ★★★★☆ Less
    • ★☆☆☆☆ SASS
  • ★★★★☆ JS
    • ★★☆☆☆ Angular
    • ★★★★☆ React
    • ★★★☆☆ Flux/Redux
    • ★☆☆☆☆ Electron
    • ★☆☆☆☆ TypeScript
  • ★★★★☆ Python
    • ★★★★☆ Django
    • ★★★☆☆ Flask
    • ★★☆☆☆ Pyramid
  • ★★★★☆ UX design
    • ★★★★☆ Paper prototyping
    • ★★★★☆ Minimum viable products
    • ★★★☆☆ Heuristic evaluation
    • ★★★☆☆ Interaction design
    • ★★★☆☆ Information architecture
    • ★☆☆☆☆ Qualitative research
  • ★★★★☆ Graphic design
    • ★★★☆☆ Logos & branding
    • ★★★☆☆ Promotional materials
    • ★★★★★ Cartoons & illustrations

What I'm looking for

★ I'm interested in full-time frontend development roles, ideally with some design component.

I have the advantage of being able to pinch hit on backend Python code, but I am happiest spending most of my time on user-facing JS apps. The ability to contribute design and even artwork sometimes, even if it's not my main job, is important to me.

★ I want to work for a supportive, sane company that promotes learning, transparency, and collaboration.

I don't want to be stuck hacking alone in a corner, unsure if anyone else in the world cares if I ship or not. Your team leads should have read and understood Managing Humans and at least a few Model View Culture articles. Most of my teammates should possess above-average levels of emotional intelligence and self-awareness. This is more important to me than fancy hardware or seaweed chips. Though seaweed chips are pretty great.

★ I love sketches and prototyping.

On paper, on whiteboards, in code, I'm all for it. I consider pixel-perfect comps a waste of everyone's time.

★ I'm not a quant.

I like putting concepts in front of users and getting quick and dirty feedback, but full-blown quantitative user experience research is not my cup of tea.

★ I am accustomed to working with engineers and free software geeks.

I'm a second-generation coder and grew up with TokenRing horror stories at the dinner table. Translating between code, design, and product is something I'm extremely comfortable doing.

★ I'm a recovering (?) free culture and civil liberties activist.

The ethical, social, and policy implications of the tech I work on matter to me. Not all my work has to save the world, but at least it shouldn't be making it worse.

★ I'm currently based in Redwood City.

I'm up for remote work, but not a long commute. Unless you're literally next to 4th and King, San Francisco is too far.

★ Want to work together? Here's my resume. Or, if you prefer, my LinkedIn. Also my Github profile.

Back to top

I designed custom printed paper invitations for my wedding in March 2015.

My now-husband and I printed the invitations ourselves and cut out the fogbank edge and ampersand using a Cricut die cutter.

The vast majority of my work up until this point had been digital; this was one of the first times I had had to design exclusively for a paper artifact.

The geometric yet naturalistic motif in blue and gold was found throughout the wedding decor. The foggy mountain depicted on the invitation is Mount Tamalpais, where the wedding and reception took place.

In December 2014, I designed Ferris the Rustacean, semi-official mascot for the Rust community.

Using Teespring, I got multiple runs of rustacean t-shirts printed.

The proceeds from the t-shirts covered the cost of printing rustacean stickers, which I gave out to Rust user groups as part of the celebration for Rust hitting 1.0 in May 2015!

Ferris the crab now appears frequently in Rust language talks as well as /r/rust/.

Summer 2011: Geek Corps

During my Google Summer of Code-sponsored internship at Code for America in the summer of 2011, I designed and helped build a prototype Ruby on Rails application then called "Geek Corps".

The application was a documentation repository and collaboration platform to help volunteers hack on and redeploy Code for America's civic apps in non-CfA client cities.

Geek Corps was the initial attempt to solve the problem of how Code for America could expand the number of people involved in modernizing civic technology without making their fellowship program unmanageably large. Before this application, when interested potential volunteers contacted Code for America and asked how they could help, Code for America did not have a place to point them to--there were no resources for wrangling volunteers. With only thirty fellowship slots for over five hundred applicants for the 2012 fellowship class, there was far more interest in improving city technology and civic hacking than Code for America's tiny staff could handle. By creating a clear entry point and resources for new volunteers, Geek Corps was meant to be a whole new channel for Code for America to pursue its mission of making local governments more accountable, transparent, efficient, and agile.

Fall 2011: CfA Everywhere

After the summer ended, I continued work on the project in my fall 2011 Information Systems and Service Design (ISSD) class. There, instead of focusing on technical development of the application, the rest of my five-person group and I stepped back and analyzed the application's stakeholders, requirements, and use cases for the Geek Corps application.

Through stakeholder and user interviews, analysis of Code for America artifacts including Twitter follower data, and research into related technologies and services, we discovered several key findings that had not been present in the Geek Corps iteration of the project.

First, our research suggested that the focus of the application ought to be on all sorts of volunteers, not just (or even especially) volunteer coders. Second, rather than being a sterile coordinating tool for volunteer labor, the application needed to nurture the development of local civic technology communities by enabling not just the deployment of existing apps but events, brainstorms, and hackathons for creating apps for local needs. Finally, we found that the main assets Code for America could provide were not task-focused project management resources but rather a brand name with momentum and credibility and experience and advice in collaborating meaningfully with government for local groups that ask for it.

Based on these findings, we developed a list of requirements and a static prototype for the service, now called "Code for America Everywhere."

Data Liberator User Empath UX Master Source God Community Evangelist

As part of this, I designed a custom set of icons for the five roles or tasks associated with getting an app up and running: data, research, design, code, and deployment.

At the end of the semester, we compiled our research into a final presentation and report for classmates, friends of the I School, and Code for America staff members.

2012: CfA Brigade

A week after my group's final ISSD presentation, Code for America received a $1.5 million Google grant for continued work on CfA Everywhere, renamed "Code for America Brigade" for the final time.

Based on my group's recommendations and designs, group member Kari McGlynn and Code for America staff members built a new volunteer-coordinating application over a few short months. CfA Brigade was launched at Code for America founder and CEO Jennifer Pahlka's keynote address at SXSW in March 2012.

anniedoc is a prototype for annotating any text-based document inline via the web. It uses Shakespeare's Hamlet as its sample document. The project attempted to balance encouraging viewer engagement and collaboration with providing a calm, focused, uncluttered reading environment.

I designed and built anniedoc as a solo team in less than 18 hours as part of DevelopHer 2013, winning second place.

On the left side of the document, a fixed progress bar succinctly shows the reader how far they are in the document, as well as where the various acts, scenes, and posted annotations are. Hovering over an act or scene icon shows the name of the act or scene; clicking a point in the progress bar will take the reader to that place in the document.

Clicking to read or add an annotation shows the annotation UI and highlights and narrows the width of just that line of the document.

The color scheme of the page–meant to be calming yet unique–was inspired by a photograph of the real-life Elsinore Castle I took from a ferry from Helsingør.

In July 2012, Least Authority Enterprises got in contact with me about improving their website and branding prior to their flagship storage product launch the next month.

I revamped the site layout and rewrote their copy to better communicate the advantages of their product and be easier to read. After some brainstorming, Least Authority changed the name of the product from the extremely literal "Tahoe-LAFS-on-S3" to "S4". Least Authority is a distributed team, so I solicited daily feedback and iterated via meetings in IRC and Google Hangouts.

I refreshed Least Authority's logo and created a brand new logo for S4.

I added graphics and icons to the site.

Finally, I designed t-shirts for Least Authority to give away at DefCon.

Pulse, a classroom feedback mobile application, was my group final project for my UI Design and Development class in spring 2011.

Pulse was a mobile application meant to address student issues in large lecture courses such as students feeling afraid to ask questions in front of a large group when they're confused, classes being unconducive to asking questions, and lack of feedback for professors.

To develop this application, over the course of the semester my four-person group followed a formal user experience design process from stakeholder analysis to low and high fidelity prototypes.

We interviewed students and professors and observed large lecture classes at UC Berkeley.

From that data, we created culture, sequence, and flow model diagrams of classroom processes and power dynamics.

We created five personas–three students (Tessa Schmitt, Justin Brough, and Hye-Seong Park) and two professors (Dr. Erik Olufsen and Dr. Alvin Crumplebottom, Sr.).

We created paper and digital (Balsamiq) prototypes, performing both in-person user "think-alouds" and heuristic-based evaluations to find UX bugs and make improvements.

I created a set of custom emotion icons for use in our later prototypes.

Finally, we tested a working Android-based prototype qualitatively and quantitatively with students. We presented our experimental results and final report to our class and showed our application poster at the UC Berkeley computer science department's May 2011 UI Design Tradeshow.

OpenHatch began as a web startup founded in May 2009 by three alumni of the free culture and free software movements as part of startup incubator Shotput Ventures' inaugural class. OpenHatch built online tools to demonstrate and broaden open source developers’ experience and expertise.

I joined OpenHatch six weeks after the company was founded. My initial duties were mainly research and writing related; later I became responsible for the site's graphics, design, and user experience.

I created OpenHatch's ‘mascot’: Sufjan the baby penguin.

All of the header cartoons and illustrations on OpenHatch's website are my work.

I created three personas for OpenHatch users, which informed both our interface design and our prioritization of features.

An early feature whose interface design we iterated on extensively was the automatic experience importer.

During this process I drew whiteboard and paper sketches, made Photoshop mockups, and solicited user feedback.

At the end of the summer, I outlined, prepared the slide deck for, and delivered part of OpenHatch's pitch at Shotput Ventures' Demo Day event.

I revamped the original design for OpenHatch's Django-based website twice.

Though we decided not to implement them in OpenHatch, I wrote a white paper and series of blog posts on applied game mechanics in web applications.

I served as the volunteer art director for the 2013 MIT Mystery Hunt. The Hunt was heist-themed that year.

In my role as leader of the writing team's art team, over several months I managed a group of volunteers in completing art-related tasks for the MIT Mystery Hunt. I also completed a number of crucial art tasks myself, including:

Logo and brand identity for the fictional Hunt bank.

The 2013 Hunt coin design. (Finding the coin is the objective of the Hunt. Each year's coin design is unique and each member of the winning team receives one.)

The Hunt t-shirt design.


I also designed and coded a majority of the front end for the Python/Flask-based Hunt website, working closely with the tech team.


On the hunt homepage, as each round unlocked, a silhouette of the heist team member would appear; when the round was solved, the silhouette would fill in.


Each round sub-site had its own theme.

The MIT Mystery Hunt is one of the oldest, most complex, and highest production value puzzle hunts in the world.

I designed and wrote the page for OpenHatch's 2013 end-of-year fundraising campaign.

I also helped blog and promote the campaign.

Design for OpenHatch's special edition 2012 t-shirt, sold as a fundraiser.

OpenHatch's primary shirt design. There were also stickers.

Close-up of the shirt's front side.

The fundraising drive raised over $25,000 in a little over three weeks–the most OpenHatch had ever managed to raise from individual donors!

Logo I created for Noah Kantrowitz's upcoming devops best practices project, Poise.

I also developed a basic style guide for the project.

Sean Lip asked me for help with the look and feel of Oppia.org, an open source education tool.

In about 48 hours, I redesigned the site and rewrote much of its copy prior to its launch.

I made original art for Oppia.org's front page.

Postcard art for my 2013 Christmas letter.