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.
-
Learn techniques and practices for effective software
project management, including Agile and Scrum.
-
Build communication skills through collaboration with
co-workers and open source contributors.
-
Learn to write effective documentation, specifications,
and bug reports.
-
Write, test, review, and deploy code using DevOps
best practices and tooling.
-
Expand technical skills on the job through pair
programming, code review, and research.
-
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
internships@nullmousepawmedia.com
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.