Attention Employers: Please verify graduates from our program on the Alumni List.


Programming Internships

Whether you're interested in game development, language processing, algorithms and efficiency, multimedia, GUI, or software design, an internship at MousePaw Media will stretch your limits and offer a chance to grow as a programmer.

We are currently accepting applications for the next cohort of this internship! Check out the details below, and then tap the << button at far right to learn how to apply. see the sidebar for instructions on how to apply.

Learning Goals

The purpose of the MousePaw Media Programming Internship is to cultivate the career and communication skills required to thrive as a professional in the computer industry.

  1. Learn techniques and practices for effective software project management, including Agile and Scrum.
  2. Build communication skills through collaboration with co-workers and open source contributors.
  3. Learn to write effective documentation, specifications, and bug reports.
  4. Write, test, review, and deploy code using DevOps best practices and tooling.
  5. Expand technical skills on the job through pair programming, code review, and research.
  6. Learn principles of software architecture to limit technical debt and design user-oriented software.

Requirements

In addition to the general requirements, applicants should be able to meet the following criteria:

  • Working proficiency with one or more programming languages.
  • Fluency with fundamental computer programming principles (variables, conditionals, etc.)
  • Familiar with the fundamentals of at least ONE of the following:
    • Object Oriented Programming
    • Generic Programming
    • Functional Programming

Programming Internship Questions

(Click a question to view the answer.)

What will I be coding?

It depends on your specific talents and interests as a programmer. Our primary focus is on building our open source game engine, which includes graphics rendering, audio playback, and a scripting language.

What languages do you use?

We do most of our programming in C++ and Python, with some C and Bash. We also use HTML, CSS, and ReStructuredText.

Will you consider me if I use [INSERT LANGUAGE]?

Yes, as long as you're willing to learn something new. Most of our interns had never used C++ before this.

What technology do you use?

All our work takes place on Ubuntu. We use the Clang compiler for C and C++. Our technology stack and tools are all 100% open source software. You can find a complete list of technologies here.

What kind of computer and equipment do I need?

Programming interns must have private, administrator access to a computer with the following minimum specifications.

  • Ubuntu 20.04 or later, or alternatively another Debian-based Linux. We can help with setup.
  • RAM: 4GB minimum, 8GB or more recommended.
  • Processor: 2GHz speed or better.
  • Hard Drive: 250GB free space minimum (or 200GB minimum after Linux installation.)
  • Display: 1024x768 minimum.
  • Reliable high-speed internet connection.
  • Webcam.
  • Microphone.

I don't like Linux. Can I just use [INSERT OS]?

No. We have many reasons for using Linux as our development environment, compatibility being a big one. It is also a vital industry skill to be able to use Linux. In short, it is mandatory.

Why don't we use [insert technology here]?

We have carefully selected each of our technologies, based on multiple criteria. While we are not closed to suggestions, be aware that we've already considered most popular technological options.

What if I don't know programming yet?

There are a lot of fantastic books and online courses to teach you the basics of programming, and thousands of open source projects with which to get your feet wet! Once you have the basics down, come talk to us.

The Joel Test

(Click a question to view the answer.)

Do you use source control?

Yes. We have a full Git repository system, with pre- and post-commit code review tools and linters via a platform called Phabricator.

Can you make a build in one step?

Yes. Our code projects use CMake and Makefiles to allow building with one command.

Do you make daily builds?

Yes. Every time code is committed for the mandatory pre-commit review, it is automatically built by Jenkins.

Do you have a bug database?

Yes. Our task list has an integrated bug database, and that in turn links to all the code review tools. It's a beautiful thing.

Do you fix bugs before writing new code?

Yes, as much as is sane. There is no such thing as "perfect code," but it has to be stable and work well before we add to it.

Do you have an up-to-date schedule?

Yes. We employ Agile Scrum to plan our work, monitor our progress, and adapt to changes.

Do you have a spec?

Yes. We have a wiki that hosts as our specs, which means that we can continually revise as we learn. Our specs are living documents - as we garner the necessary information to make informed decisions, we update and expand.

Do programmers have quiet working conditions?

Yes, in that everyone works from home.

Do you use the best tools money can buy?

Yes. We carefully selected the best that open-source software has to offer for development, including Git, Phabricator, Jenkins, and Mattermost.

Do you have testers?

Yes. First, we have a carefully curated test system. Jenkins automatically runs many tests on code sent for pre-commit review. Further tests can be run manually by developers. In addition, our games go through rigorous testing before final release.

Do new candidates write code during their interview?

Yes. You will complete a short coding challenge, which you have a week to complete at your own pace — it takes about two hours — and with your favorite tools and languages, so you can show us your current skills. You will also do live coding in the final interview. (Don't worry; we know how to account for both nerves and inexperience.)

We do not use "fizz-buzz" or whiteboarding challenges. Our coding challenges are practical and original to us. We also NEVER use code from the interview process in any of our projects.

Do you do hallway usability testing?

Yes. We use our own code in production, and test each other's code as part of the review process!

More questions?

We're here to help! Contact us at and we'll happily answer any questions you have.

Ready To Apply?

We are currently accepting applications for this internship! Tap the << button at far right to learn how to apply. See the sidebar for instructions on how to apply.