I'm in the process of updating my resume and preparing for a job change. I'm interested in pursuing a software engineering position, and I'm wondering about listing libraries on my resume.

I developed a suite of tools (written in Python) that automates much of the team's workflow. These tools involve the use of Python libraries such as gspread, matplotlib, and Pandas. For these libraries, I only used what was needed for my application, which involved researching and figuring out how to apply them to particular use cases.

I heard that such libraries can be listed in the skills section of the resume. However, my knowledge about those libraries are limited to how I applied them to my particular use cases. Should I also include proficiency levels for each library? Like "Pandas (Basic)", "Matplotlib (Intermediate)", "gspread (Advanced)".

Each library has a vast amount of features and functionality, which means loads of documentation. If this was on the job, I would go straight to the documentation and figure out how to apply the library to the particular use case. Depending on the position, how much are you typically expected to know about that library on the spot? For example, if I get asked to implement something using Pandas or Matplotlib during an interview, but I haven't used or studied that part of the documentation (prior use cases), or unsure of the exact syntax?

I've found some standard questions (below) for these libraries that are asked in an interview. Should I study those questions like how I would practice algorithm questions on Leetcode? For SWE positions, in addition to the usual Leetcode-style questions, how likely are library specific questions, like the ones in the links below?

Or would you typically get asked how you applied the listed libraries to your particular use case(s)? Like "Used matplotlib to generate weekly data visualizations (plots, charts) for stakeholders"

3 Answers 3


Should I also include proficiency levels for each library? Like "Pandas (Basic)", "Matplotlib (Intermediate)", "gspread (Advanced)".

Yes. That sounds like a good idea.

Also, if you list anything on your resume, be prepared to answer some questions about that during the interview.

So, it is a good idea to understand the common usages of these libraries (as you normally do for your daily tasks) to prepare for the interviews.

It's unlikely that the interviewers would expect you to memorize 100% of everything in those 3 libraries. However, they may ask you more challenging questions on the libraries that you say you have "advanced proficiency" on.

  • 1
    While I agree with listing library proficiency, make sure to do so only for the main ones that are actually complex enough for one to have "proficiency" in them. It would be absurd to say "numpy (intermediate)" as it is a fairly basic library with pretty straightforward usage. This, however, would be okay for, say, matplotlib or tensorflow as those libraries are much detailed and actually have content for one to be "proficient" on. Commented Apr 19 at 15:47
  • @SyedM.Sannan funnily I always thought matplotlib is way easier: you just follow the cookbook/documentation and look up things. While numpy required much more skill to optimize & work with (ie: how to get lazy interaction that other library expect working with numpy, or integrating database connections with numpy data where the dataset is larger than a single query/memory).
    – paul23
    Commented Apr 22 at 12:15

If you list an array of keywords of libraries and technologies on your CV, as is quite common, then I wouldn't worry about also adding a self-chosen grading.

At the tail end of such a list, there may be things which you've applied only once, but at the beginning of the list you'd expect to be the things which are commensurate with your years of experience.

Obviously if you hype your expertise in one area then can't answer a basic question in the interview, then you will be in trouble, but even experts rarely have every detail at their fingertips.

Also, what interviewers will do or ask is a completely random welter of practices - many of them completely absurd, either because the interviewer is incompetent or because they have decided to entertain themselves.

It is rarely worthwhile deviating from your own natural or commonsense behaviour, unless you actually know from experience or inference that something specific should or shouldn't be done in an interview.

This is because many employers are radically oversupplied with candidates, and you really will get rejected at one place for not balancing on your left leg, and rejected at the next for not balancing on your right. The solution to these casino games is simply to sit more interviews, it doesn't have a strategy that can be optimised.

  • "This is because many employers are radically oversupplied with candidates" I think that's country specific. In my country there is a big shortage. Commented Apr 19 at 10:35
  • @MarkRotteveel, they always say there's a shortage whenever they can't get 5 expert professionals in the market at once, to apply to a minimum wage job.
    – Steve
    Commented Apr 19 at 14:54

Background context: I used to be a software engineering manager.

I would not put your proficiency level for any language, let alone a framework library - unless you have a formal certificate stating that you are that level.

For frameworks, the information is almost useless if the employer doesn't use that framework. The question it raises (at least in my head), is "who is judging this proficiency?" Put the frameworks you have used, sure, but don't worry about stating proficiency within them.

Since you're looking to change careers, I presume you'd be applying for a junior role. At that end of the pay scale, I only ever cared about three things:

  • Do they know the basics of the language(s) that we use?
  • Can they learn (even with mentoring/guidance)?
  • How quickly do they admit to not knowing something (see above point)?

That is pretty easy to figure out inside of 30mins, so no-ones time is wasted. I used to give two code samples, one "find the bugs" (spoiler, it was a syntax error) and the other is "find the bugs and optimise" (this challenge was impossible unless you had a good maths degree and had worked as a developer for years - designed to get you to admit you don't know how to do it - and if you do know, I would question why someone was applying for a junior role).

The rest of the interview for a junior role is "will the team get on with this person?"

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .