Skip to content

Libraries’ tech pipeline problem

“We’ve got a pipeline problem, so let’s build a better pipeline.” –Bess Sadler, Code4Lib 2014 Conference (the link goes to the video)

I’ve been thinking hard (for two years, judging by the draft date on this post) about how to grow as a programmer, when one is also a librarian. I’m talking not so much about teaching/learning the basics of coding, which is something a lot of people are working really hard on, but more about getting from “OK, I finished yet another Python/Rails/JavaScript/whatever workshop” or “OK, I’ve been through all of Code Academy/edX/whatever”—or from where I am, “OK, I can Do Interesting Things™ with code, but there are huge gaps in my tech knowledge and vocabulary”—to the point where one could get a full-time librarian-coder position.

I should add, right here: I’m no longer trying to get a librarian-coder position*. This post isn’t about me, although it is, of course, from my perspective and informed by my experiences. This post is about a field I love, which is currently shooting itself in the foot, which frustrates me.

Bess is right: libraries need 1) more developers and 2) more diversity among them. Libraries are hamstrung by expensive, insufficient vendor “solutions.” (I’m not hating on the vendors, here; libraries’ problems are complex, and fragmentation and a number of other issues make it difficult for vendors to provide really good solutions.) Libraries and librarians could be so much more effective if we had good software, with interoperable APIs, designed specifically to fill modern libraries’ needs.

Please, don’t get me wrong: I know some libraries are working on this. But they’re too few, and their developers’ demographics do not represent the demographics of libraries at large, let alone our patron bases. I argue that the dearth and the demographic skew will continue and probably worsen, unless we make a radical change to our hiring practices and training options for technical talent.

Building technical skills among librarians

The biggest issue I see is that we offer a fair number of very basic learn-to-code workshops, but we don’t offer a realistic path from there to writing code as a job. To put a finer point on it, we do not offer “junior developer” positions in libraries; we write job ads asking for unicorns, with expert- or near-expert-level skills in at least two areas (I’ve seen ones that wanted strong skills in development, user experience, and devops, for instance).

This is unfortunate, because developing real fluency with any skill, including coding, requires practicing it regularly. In the case of software development, there are things you can really only learn on the job, working with other developers (ask me about Git, sometime); only, nobody seems willing to hire for that. And, yes, I understand that there are lots of single-person teams in libraries—far more than there should be—but many open source software projects can fill in a lot of that group learning and mentoring experience, if a lone developer is allowed to participate in them on work time. (OSS is how I am planning to fill in those skills, myself.)

From what I can tell, if you’re a librarian who wants to learn to code, you generally have two really bad options: 1) learn in your spare time, somehow; or 2) quit libraries and work somewhere else until your skills are built up. I’ve been down both of those roads, and as a result I no longer have “be a [paid] librarian-developer” on my goals list.

Option one: Learn in your spare time

This option is clown shoes. It isn’t sustainable for anybody, really, but it’s especially not sustainable for people in caretaker roles (e.g. single parents), people with certain disabilities (who have less energy and free time to start with), people who need to work more than one job, etc.—that is, people from marginalized groups. Frankly, it’s oppressive, and it’s absolutely a contributing factor to libtech’s largely male, white, middle to upper-middle class, able-bodied demographics—in contrast to the demographics of the field at large (which is also most of those things, but certainly not predominantly male).

“I’ve never bought this ‘do it in your spare time’ stuff. And it turns out that doing it in your spare time is terribly discriminatory, because … a prominent aspect of oppression is that you have more to do in less spare time.” – Valerie Aurora, during her keynote interview for Code4Lib 2014 (the link goes to the video)

“It’s become the norm in many technology shops to expect that people will take care of skills upgrading on their own time. But that’s just not a sustainable model. Even people who adore late night, just-for-fun hacking sessions during the legendary ‘larval phase’ of discovering software development can come to feel differently in a later part of their lives.” – Bess Sadler, same talk as above

I tried to make it work, in my last library job, by taking one day off every other week** to work on my development skills. I did make some headway—a lot, arguably—but one day every two weeks is not enough to build real fluency, just as fiddling around alone did not help me build the skills that a project with a team would have. Not only do most people not have the privilege of dropping to 90% of their work time, but even if you do, that’s not an effective route to learning enough!

And, here, you might think of the coding bootcamps (at more than $10k per) or the (free, but you have to live in NYC) Recurse Center (which sits on my bucket list, unvisited), but, again: most people can’t afford to take three months away from work, like that. And the Recurse Center isn’t so much a school (hence the name change away from “Hacker School”) as it is a place to get away from the pressures of daily life and just code; realistically, you have to be at a certain level to get in. My point, though, is that the people for whom these are realistic options tend to be among the least marginalized in other ways. So, I argue that they are not solutions and not something we should expect people to do.

Option two: go work in tech

If you can’t get the training you need within libraries or in your spare time, it kind of makes sense to go find a job with some tech company, work there for a few years, build up your skills, and then come back. I thought so, anyway. It turns out, this plan was clown shoes, too.

Every woman I’ve talked to who has taken this approach has had a terrible experience. (I also know of a few women who’ve tried this approach and haven’t reported back, at least to me. So my data is incomplete, here. Still, tech’s horror stories are numerous, so go with me here.) I have a theory that library vendors are a safer bet and may be open to hiring newer developers than libraries currently are, but I don’t have enough data (or anecdata) to back it up, so I’m going to talk about tech-tech.

Frankly, if we expect members of any marginalized group to go work in tech in order to build up the skills necessary for a librarian-developer job, we are throwing them to the wolves. In tech, even able-bodied straight cisgender middle class white women are a badly marginalized group, and heaven help you if you’re on any other axis of oppression.

And, sure, yeah. Not all tech. I’ll agree that there are non-terrible jobs for people from marginalized groups in tech, but you have to be skilled enough to get to be that choosy, which people in the scenario we’re discussing are not. I think my story is a pretty good illustration of how even a promising-looking tech job can still turn out horrible. (TLDR: I found a company that could talk about basic inclusivity and diversity in a knowledgeable way and seemed to want to build a healthy culture. It did not have a healthy culture.)

We just can’t outsource that skill-building period to non-library tech. It isn’t right. We stand to lose good people that way.

We need to develop our own techies—I’m talking code, here, because it’s what I know, but most of my argument expands to all of libtech and possibly even to library leadership—or continue offering our patrons sub-par software built within vendor silos and patched together by a small, privileged subset of our field. I don’t have to tell you what that looks like; we live with it, already.

What to do?

I’m going to focus on what you, as an individual organization, or leader within an organization, can do to help; I acknowledge that there are some systemic issues at play, beyond what my relatively small suggestions can reach, and I hope this post gets people talking and thinking about them (and not just to wave their hands and sigh and complain that “there isn’t enough money,” because doomsaying is boring and not helpful).

First of all, when you’re looking at adding to the tech talent in your organization, look within your organization. Is there a cataloger who knows some scripting and might want to learn more? (Ask around! Find out!) What about your web content manager, UX person, etc.? (Offer!) You’ll probably be tempted to look at men, first, because society has programmed us all in evil ways (seriously), so acknowledge that impulse and look harder. The same goes for race and disability and having the MLIS, which is too often a stand-in for socioeconomic class; actively resist those biases (and we all have those biases).

If you need tech talent and can’t grow it from within your organization, sit down and figure out what you really need, on day one, versus what might be nice to have, but could realistically wait. Don’t put a single nice-to-have on your requirements list, and don’t you dare lose sight of what is and isn’t necessary when evaluating candidates.

Recruit in diverse and non-traditional spaces for tech folks — dashing off an email to Code4Lib is not good enough (although, sure, do that too; they’re nice folks). LibTechWomen is an obvious choice, as are the Spectrum Scholars, but you might also look at the cataloging listservs or the UX listservs, just to name two options. Maybe see who tweets about #libtechgender and #critlib (and possibly #lismicroaggressions?), and invite those folks to apply and to share your linted job opening with their networks.

Don’t use whiteboard interviews! They are useless and unnecessarily intimidating! They screen for “confidence,” not technical ability. Pair-programming exercises, with actual taking turns and pairing, are a good alternative. Talking through scenarios is also a good alternative.

Don’t give candidates technology vocabulary tests. Not only is it nearly useless as an evaluation tool (and a little insulting); it actively discriminates against people without formal CS education (or, cough, people with CS minors from more than a decade ago). You want to know that they can approach a problem in an organized manner, not that they can define a term that’s easily Googled.

Do some reading about impostor syndrome, stereotype threat, and responsible tech hiring. Model View Culture’s a good place to start; here is their hiring issue.

(I have a whole slew of comments about hiring, and I’ll make those—and probably repeat the list above—in another post.)

Once you have someone in a position, or (better) you’re growing someone into a position, be sure to set reasonable expectations and deadlines. There will be some training time for any tech person; you want this, because something built with enough forethought and research will be better than something hurriedly duct-taped (figuratively, you hope) together.

Give people access to mentorship, in whatever form you can. If you can’t give them access to a team within your organization, give them dedicated time to contribute to relevant OSS projects. Send them to—just to name two really inclusive and helpful conferences/communities—Code4Lib (which has regional meetings, too) and/or Open Source Bridge.


So… that’s what I’ve got. What have I missed? What else should we be doing to help fix this gap?


* In truth, as excited as I am about starting my own business, I wouldn’t turn down an interview for a librarian-coder position local to Pittsburgh, but 1) it doesn’t feel like the wind is blowing that way, here, and 2) I’m in the midst of a whole slew of posts that may make me unemployable, anyway ;) (back to the text)

** To be fair, I did get to do some development on the clock, there. Unfortunately, because I wore so many hats, and other hats grew more quickly, it was not a large part of my work. Still, I got most of my PHP experience there, and I’m glad I had the opportunity. (back to the text)


Published in#libtechgenderdisabilitydiversitygenderhiring and employmentinterviewinglibrarianshipnew developerprogrammingtechnology


  1. When I interviewed people for my latest Library Technology Report (, I asked questions about managerial support; there’s a chapter or two in there with examples of workplace support people have provided or received for developing their coding skills. Easily the gold standard for managerial support in there was Evviva Lajoie, then at Oregon State, so I’d recommend any managers with sufficient resources just do what she did :) But there are options in there at a variety of time/money costs.

  2. Erik Carlson

    I’m doing an experiment directly relevant to this post so I figured I’d chime in with what I’m trying to see if it has been effective for anyone reading this before.

    I’m just taking the time out of work time to learn the things I need to know for work. I am in an “institutional repository coordinator” type position (you know, the kind that The Loon tells you to run screaming from) and it seems to me like this can be either a nightmare or the coolest thing ever depending on how management treats the position. After a brief stint viewing it as a nightmare (Things need done! No one is doing them! I don’t know how!/Don’t have access!) , I’ve decided to treat it like the greatest thing since sliced bread.

    Initially it was assumed that the technical side of the IR would be handled by other stakeholders, however, their engagement has been somewhat lacking (in all fairness, due to them having most of their time reallocated to other projects) and as such it looks like I’m it for customization and development on our DSpace instance after they complete the upgrade they’re working on now.

    Since my workload (faculty status and a Dean that paints in broad strokes helps with this approach) assigns me broad responsibility for the success of the project I’ve decided it makes sense to spend significant amounts of work time coming up to speed on how every piece of the stack works. So I’m taking it. Sure, it’s a lot of forums, and self taught, and EdX, and calling you in a panic to talk me off a cliff back into a reasonable learning process (thanks, btw) but it also seems to be the only way forward that doesn’t involve working really hard at outreach and content acquisition and having it potentially not matter because the technology side is out to lunch.

    We’ll see how well this is received (I’ll get feedback on my first activity report in January) but I think this is the best option some (smaller, geographically isolated) libraries have to grow their own talent. Taking someone with the interest and ability to learn, pointing them at a problem, and (this last part is the big leap of faith) give them the time and space to figure it out.

    I had a Big Conversation with my partner a while back in which the takeaway was that I needed to trust that my Dean trusted me and then learn what I needed to learn to make the project work. This is a HUGE leap of faith for me, but it also seems to be the difference between a breakdown-level stressful work situation that seemed destined to fail and one where I genuinely look forward to the next day’s challenges. I’m learning a lot, and trusting my organization to see the value in that. If not, I suppose I’ll be unemployed and know a lot about DSpace, Tomcat, CentOS, and PostgreSQL this time next year.

  3. I really like this. I’m in the same place as you, where I know a lot about programming, have taken online courses, do a lot of self-study – but am still unqualified for any jobs.

    Is this different from any other field, I wonder? Studying something rarely teaches you about how to actually function in the industry. If I got a coding job, I’d already know how to code – but I’d have to learn stuff like collaborating, using Git in a team, what the best practices are for delivering a professional product and so on. I also sew and make clothes, but those skills wouldn’t be enough to get a real sewing job because I don’t know how to use an industrial machine, say.

    I also think it’s part of a broader problem of professionalisation. I am also a librarian – but an unqualified one. I’ve worked in libraries for four years, but can’t get a head librarian job without going back to school for 2 years. This is absurd. But not as absurd as things like cleaning diplomas they give out now. The whole point of cleaning is that it’s a job that essentially anyone can get – if you now need the time and money to study for an award, then you’ve just made a bunch of people way more disadvantaged. A certificate is an easy shortcut for employers.

    Personally, I’m a big fan of on-the-job learning – at the end of the day, no one *wants* my ideosyncratic, clever code, or the added value I have as a programmer because I learnt BASIC at uni and can write machine code in binary. They want someone who can work in a team and deliver a functional program on time. To me, that would suggest industry should get *more* out of an unqualified employee who can learn company standards as they go, rather than the other way around.

    Also. Library software. Yes. Oh my god. It’s awful. A constant battle of “I know you record this data, so why can’t I sort by it? Why can’t I output a report of this? Why am I doing this job affecting 4000 records manually, one at a time?”. They just seem designed for clunkiness and obfuscation. I’m currently writing a program to turn the data outputted from Accelerated Reader as a pdf (?????whyyyyyyyy) into a csv that I can actually use. I think what I’m trying to say is, if you were starting an Open Source Library Management Program project and wanted a wingperson, then you have my sword.

  4. Laura

    Amen to all of this.

    I’d also like to add that libraries don’t do themselves any favors when they go to hire talent outside and write the most ludicrous job ads. Talk about unicorns…I’ve seen so many libraries that not only want to hire unicorns, they want to pay them at unbelievably low rates. They seem to assume they can get said unicorn at the same rate as an entry-level librarian. If they’re lucky enough to hire someone for those wages, they virtually never stay for long, because they quickly realize the library job is simply resume filler until they find a “real” job. It has bewildered me for years that libraries fail to factor in the cost of hiring and training, and then go through a series of techs. I’d think they were almost certainly losing money.

    Overall, I think the scenarios you mention, and ongoing lack of realistic wages, is a failure on the part of libraries to understand the need to invest in infrastructure.

    Great piece–thank you for writing it.

Leave a Reply

Your email address will not be published. Required fields are marked *