JR Programmer UJP 6.24
JR Programmer UJP 6.24
Junior Programmer
A junior programmer assists in the development of interactive applications and experiences using
real-time graphics technology. They work collaboratively with senior programmers, artists, quality
assurance (QA) team members, and designers to implement game mechanics, debug and optimize
code, and contribute to the overall development process. Their responsibilities may include scripting
interactive behaviors, solving technical issues, and continuously learning and adapting to the
evolving landscape of real-time 3D (RT3D) technologies.
Pay Range
Bug fixing and troubleshooting Midpoint
Help identify and fix bugs or issues in the codebase. $90,000
$67,500
$112,500
Documentation and code maintenance Note: These ranges are built using the Radford compensation
database. They are based on the 50th percentile of data for all
Contribute to documenting code and maintain clear and industries, company sizes, sectors and US locations. The minimum of
organized documentation for the project. the range is 25% lower than the 50th percentile (midpoint), and the
maximum of the range is 25% of the maximum. These ranges are not
reflective of Unity’s compensation ranges for the same or similar roles,
but are intended to be broad ranges to encompass all US geographies
and company types. This information is not to be shared with any
person as means to inform them about Unity’s compensation ranges or
philosophy.
Top three skills
Alternative Titles
Coding proficiency in at least one A junior programmer may also have the
scripting language following alternative titles:
Demonstrate the ability to use various APIs, use
Junior interactive developer
consistent code styles throughout your work, and
follow general coding best practices. Junior software developer
Junior software engineer
This job profile is in early access. Design and contents may change.
Table of contents
Job Details
Key traits and qualities of a Junior Programmer
Responsibilities
Skills required
Tools used
Resources for career development
Learning experiences
Position context and progression
Collaborative roles UJP Information & Contributions
Job progression Acknowledgements
Full industry list
About the Universal Job Profiles
The Application Process Contributing to the Universal Job Profiles
Application requirements
Changelog
Resume
Applicant Tracking Systems
Cover letters
Portfolio
Portfolio recommendations
Portfolio maintenance
Linkedin Profile
General tips for application preparation
Navigating job rejection
Preparing for an interview
Interview process
This job profile is in early access. Design and contents may change.
Job details
Clear communication and other soft skills are often more valued than deep
technical skills. The ability to express problem insights, suggest solutions, and
explain the reasoning behind them is a prized quality. A willingness to listen to
others and understand different perspectives fosters a collaborative
atmosphere. Being approachable and skilled in navigating team dynamics is
crucial for a junior programmer's success. Balancing technical skills and
teamwork, the ideal junior programmer isn't just good at coding, but is also a
great team player who communicates well.
Responsibilites
When junior programmers are first getting started, their
tasks will likely remain closely monitored by senior
programmers and team leads. The parts of a project they
will contribute to will remain small, but grow as they
increase their skills and gain a deeper understanding of the
project. Below are a sample of the most common
responsibilities that junior programmers are assigned, but
specific responsibilities will vary from company to company.
This job profile is in early access. Design and contents may change. Job details
Core Responsibilities
Most junior programmers will be assigned these responsibilities. All junior
programmers should be able to perform the following tasks:
Coding and development: Junior programmers are responsible for writing, modifying, and
maintaining code for real-time 3D applications. They implement mechanics, user
interfaces, or other interactive features based on design specifications and established
programming best practices with guidance from senior programmers.
Testing and quality assurance: Junior programmers may be involved in testing the
functionality and performance of the developed applications. They conduct unit testing,
assist in writing automated testing scripts, assist in user testing, and contribute to
ensuring the quality and stability of the software.
Bug fixing and troubleshooting: Junior programmers help identify and fix bugs or issues in
the codebase. They work closely with the development team to investigate and resolve
problems, whether they’re related to functionality, performance, or compatibility with
different platforms or devices.
This job profile is in early access. Design and contents may change. Job details
Secondary Responsibilities
These tasks are slightly more specialized, but it will greatly benefit junior
programmers to be familiar with these tasks should they be assigned.
Back end coding and development: With guidance from senior programmers, junior
programmers may design, modify, and maintain the underlying systems that drive the
application's functionality. This may include optimizing database queries, implementing
APIs, or ensuring seamless data flow.
API development: Junior programmers may be responsible for aiding in the creation of and
maintaining APIs that act as bridges between the front end and back end of an application.
These APIs facilitate communication and data exchange, enabling various components to
work together, from user interactions on the interface to data processing happening
behind the scenes.
Personal Responsibilities
Beyond day-to-day responsibilities, junior programmers should remain
focused on continuing to build their skills and knowledge base so that they can
eventually progress to more senior level roles.
Ongoing learning and development: In order to grow in their chosen field, junior
programmers should maintain a skills growth mindset, even once employed. They
should actively invest time in learning and implementing new programming languages,
frameworks, and stay up to date with the latest advances in RT3D.
This job profile is in early access. Design and contents may change. Job details
Required skills
The specific tasks assigned to a junior programmer can vary significantly
depending on the project they’re working on. A junior programmer in games may
develop aspects of a combat system, while a junior programmer working in
automotive might contribute to a driving simulation. The skills listed below are
generalized to be universally relevant no matter the project. These skills ensure
that a junior programmer is well rounded and can adapt themselves to any job.
This job profile is in early access. Design and contents may change. Required skills
Debugging and troubleshooting:
Implement unit tests to ensure that code functions as intended.
Diagnose and fix code that compiles but fails to perform as expected.
Troubleshoot runtime exceptions.
Debug applications on multiple platforms.
Profile and debug performance issues.
Team collaboration:
Receive and provide feedback in a positive and constructive manner.
Have familiarity with key performance indicators (KPIs) and objectives and key
results (OKRs) to comprehend their significance within the project context.
Use task tracking tools to keep a record of current tasks within a project.
Create and maintain documentation for code, processes, and other project-related
work.
Personal development:
Develop effective time management to balance work, personal life, and relaxation
for a well rounded lifestyle.
Build a strong professional network within the RT3D industry through forums,
conferences, and meetups to gain insight and support from peers and mentors.
This job profile is in early access. Design and contents may change. Required skills
Tools used
In the RT3D industry, junior programmers make use of a large variety of tools
that are specially designed for specific tasks. The following list highlights
important tool categories that are often required for day-to-day work. Junior
programmers should be proficient in at least one tool from each category.
Demonstrating an understanding of how and why a category of tools is used is
more important than knowing the specific programs a company uses.
This job profile is in early access. Design and contents may change. Tools used
Debugging and profiling tools: Debugging and profiling tools, such as Visual
Studio Debugger or Unity Profiler, help in identifying and troubleshooting issues
in code. These tools assist in understanding runtime behavior, performance
bottlenecks, and memory management.
Artificial intelligence (AI) tools: While still very new, AI tools such as ChatGPT,
TensorFlow, or PyTorch are already being integrated into production workflows
to assist with a wide array of programming tasks. These tools are able to
generate code snippets, provide code completion suggestions, and offer
solutions to coding issues.
This job profile is in early access. Design and contents may change. Tools used
Collaborative roles
Junior programmers typically work closely with various job roles on a day-to-day
basis, collaborating as part of a larger development team. The following list
includes common job roles that junior programmers may work with:
Technical artists: Technical artists bridge the gap between art and
programming. They help implement and optimize art assets, create
shaders, set up visual effects, and ensure the technical feasibility
of the artistic vision. Junior programmers may collaborate with
technical artists to incorporate their work into the overall
development process.
This job profile is in early access. Design and contents may change. Collaborative roles
Quality assurance testers: Junior programmers work closely with QA testers to
identify and fix bugs, ensure functionality, and optimize performance. They
collaborate to reproduce and understand reported issues and work together to
resolve them effectively.
Sound engineers: For projects involving audio, junior programmers collaborate with
sound engineers to integrate sound effects, music, or voice-over assets into the
application. They work together to synchronize audio cues with visual elements and
create an immersive auditory experience.
This job profile is in early access. Design and contents may change. Collaborative roles
Job progression
One of the best things about pursuing a junior programmer role is the large
variety of job opportunities that become available as more experience is gained.
While many programmers begin to specialize in specific areas of production as
they become more experienced, this isn’t a requirement for growth in a
professional career. There are many opportunities not only for specialization, but
also for broader production work, such as technical art or project management.
The following list is a small selection of potential paths junior programmers may
take as they grow their career:
This job profile is in early access. Design and contents may change. Job progression
Technical artist: Technical artists bridge the gap between art and programming. They
specialize in creating efficient pipelines, developing shaders, optimizing visual assets, and
implementing advanced graphics techniques. Junior programmers with an artistic inclination
can transition into technical artist roles by honing their skills in 3D modeling, animation, or
visual effects (VFX) production, and by creating tools extensions for RT3D software.
Tools/engine programmer: While many companies work with pre-built engines and tools,
some still prefer to create their own in-house solutions. Tools/engine programmers create
these systems according to team needs and project requirements. Junior programmers can
prepare for this role by actively engaging with and expanding on existing tools and engines,
creating their own, contributing to tool improvement initiatives, or gaining proficiency in
software architecture.
Systems engineer: Systems engineers are responsible for scoping, developing, and
supporting core gameplay systems. They often work in the low-level side of the engine
to create systems for game features, developer tooling, and optimization. This work
may touch a variety of different systems including streaming, SDKs, threading, memory
management, and platform and middleware abstractions. Junior programmers
interested in this role should participate in engine development projects and study
system architecture.
Graphics engineer: Graphics engineers create, maintain, and optimize rendering systems for
video games, and they require expertise in advanced mathematics, real-time computer
graphics, threading, memory management, and low-level programming. Junior programmers
interested in this role can prepare by building a strong foundation in mathematics, including
linear algebra, trigonometry, and calculus, exploring real-time graphics concepts, and gaining
proficiency in low-level programming languages, such as C++.
This job profile is in early access. Design and contents may change. Job progression
Industry list
A junior programmer’s skills put them in the unique position of being in demand
across a wide variety of industries that use RT3D tools. This offers more
opportunities when a junior programmer is first starting out, and excitingly, the
skills that they gain in one sector transfer to others without issue. Below is a list
of common industries that hire junior programmers:
This job profile is in early access. Design and contents may change. Industry List
The application process
After honing your skills to be a proficient junior programmer, it's time to head down
the next important pathway - finding your perfect job. Part two of this guide serves
as your roadmap, steering you through the challenging process of job applications
and interviews.
Standing out in this competitive field is not only about having the necessary coding
skills, but also about displaying your talents to potential employers. This section will
delve into composing impactful resumes and cover letters, assembling an engaging
portfolio reflective of your unique coding abilities, and optimizing your LinkedIn
profile to attract prospective employers. Additionally, it shares vital insights on how
to prepare for interviews and present yourself positively.
This job profile is in early access. Design and contents may change. The application process
Resume
A resume is a vital tool for anyone seeking employment in the RT3D industry. Even
when you’re starting out in the industry and have little experience to showcase, your
resume is an opportunity to highlight your skills and knowledge, and also serves as a
way to point employers to samples of your work. You will often be asked to provide
a resume in addition to filling out information about yourself in an application. Having
a resume already prepared will help save you time during your job search.
Name and contact information: This should be the full name you go by in a
professional setting. If you are concerned about your contact information
being publicly available, it’s okay to minimize the information you include.
However, you must have at least one contact method, such as an email,
through which an employer can contact you to arrange an interview.
Desired title: This should align with the job you’re applying for (in other words,
Junior Programmer).
Skills: List your technical skills, including specific scripting languages and
software packages, in bullet format.
Projects: Any projects you have worked on, and your specific role in them if on
a team. Projects that you worked on while in a training/academic program are
fine to list here. If you have any relevant work that has been published, be sure
to include it.
Links to your work: Relevant links to your LinkedIn, portfolio, github, or other
work samples
File name: Ensure that the file name of your resume is simple, descriptive, and
most importantly contains your full first and last name.
This job profile is in early access. Design and contents may change. Resume
Automated Tracking Systems (ATS)
An important aspect of resume preparation to keep in mind is that today most
employers make use of applicant tracking systems (ATS), which are a type of
software that help companies manage the recruitment process. An ATS automates
the process of sorting and filtering resumes to help identify likely candidates for a
human reviewer. While it might seem frustrating that a computer reviews your
resume before a person does, this enables recruiters and hiring managers to spend
more time on resumes and potential job candidates than they would be able to
otherwise. Because the first step of the application process is managed by
computers, it’s extremely important that you format your resume so that it’s
optimized for an ATS.
Keywords: Include relevant keywords in your resume that match the job
listing. ATS often scans for specific words or phrases to determine the
relevance of an application. For example, if the job listing is looking for
experience with Unreal Engine, and you know both Unity and Unreal, do not
list “various game engines”, but explicitly list the engines by name.
Formatting: Use a clean and simple format. Avoid complex layouts, images, or
graphics that may confuse the ATS. It’s a general best practice to avoid
including any images, especially a photo of yourself in your resume.
File format: Submit your application in a format that the ATS can easily read,
such as plain text or a common document format like .docx or .pdf. It’s a good
idea to have your resume ready in multiple formats ahead of time. Most word
processing programs allow you to export to multiple formats. When uploading
your resume to an application page, take special care to upload using the
recommended format.
Section headings: Clearly label sections of your resume (for example, "Work
Experience", "Education", "Skills", etc.) to help the ATS categorize information
accurately. Don’t use specialized terms or uncommon acronyms in headers.
Bullet points: Present information using bullet points for clarity. ATS systems
often prefer straightforward, concise content.
This job profile is in early access. Design and contents may change. Resume
Cover letters
While often considered one of the most time consuming aspects of applying for
a job, cover letters are the first chance you have to introduce yourself to a
company using your own words, and therefore represents an important
opportunity. While an ATS may scan your cover letter for keywords much in the
same way it does your resume, it’s far more likely that an actual person will be
reading your cover letter. It’s common for people just entering the industry to
create generic cover letters or even skip them entirely, so taking the time to
craft a meaningful cover letter will help the reader remember you, and this may
lead to an increased chance of getting an interview. Take care to make a
positive and meaningful first impression.
While you may be able to reuse some content between cover letters, such as a
personal introduction or an overview of your skills, most of a cover letter should
be written specifically for the company you’re sending it to. A cover letter should
express why you would be a good candidate for the role, what specifically drew
you to the job, and any interesting anecdotes or additional information that might
pique the reader’s interest.
This job profile is in early access. Design and contents may change. Cover letters
Portfolio
When preparing your portfolio to be reviewed with your application, be sure that
includes the following:
Your name and contact information: This should be included in case the
hiring manager reviewing your portfolio loses track of your resume. Ensure
you’re easy to contact from the portfolio itself. Consider including a link to your
LinkedIn profile or to your resume.
This job profile is in early access. Design and contents may change. Portfolio
Visual assets: Incorporate visual assets such as screenshots, videos, or
interactive demos to showcase the visual quality and functionality of your
projects. Visual elements provide a tangible representation of your work and
make it easier for employers to assess your skills.
Ease of navigation: When putting your portfolio together, consider the type
of content that you’ll be showcasing and select a platform that will best serve
that kind of content. If you choose to create your own custom website to
host your portfolio, ensure that viewers can easily find the full contents of
your portfolio with a minimum number of clicks.
Portfolio recommendations
As a junior programmer, always include code samples in your portfolio.
Employers hiring for programmer roles want to assess the quality of your work,
and this can’t be achieved if you only show a final project. Code samples not
only reveal your technical proficiency, but also provide valuable insights into
your thought process and problem-solving approach.
Standalone code samples: Include snippets of code that show your programming
skills. Focus on demonstrating clean and well-structured code, adherence to coding
standards, and problem-solving approaches. Be sure to include comments in the
code to provide context and explain your thought process. These code samples
don't need to be part of a complete project but should demonstrate your
knowledge or ability in a specified area, including how the code interacts with other
systems in the application.
This job profile is in early access. Design and contents may change. Portfolio
Depending on your specific area of interest, some other portfolio pieces might be:
Tool development: Design and implement a custom tool that enhances the
development process. This could be a utility for asset management, a debugging tool,
or any other tool that streamlines tasks for RT3D development.
Integration with external APIs: Showcase your ability to integrate external APIs into
your projects. This could involve incorporating weather data, geolocation services, or
other APIs relevant to your chosen project.
A note on art
Many programmers worry about including visual elements in their portfolio
because they think it will distract from the code that they’ve written. This is an
unnecessary concern. If you’re building a game and are using open source
assets, commissioned art, or even placeholder art (sometimes called
programmer art), simply use good quality project descriptions to define what
the viewer should be focusing on in the piece. Remember to appropriately
credit any assets that you use.
This job profile is in early access. Design and contents may change. Portfolio
Portfolio maintenance
A portfolio is an asset that you should regularly curate as your skills grow and
evolve. It is also a very good place to focus your efforts on as you wait for new
job opportunities to become available. Consider the following when
maintaining your portfolio:
Regularly remove outdated work: Ensure your portfolio always aligns with
your current skill level. Regularly review and eliminate pieces that no longer
reflect your expertise or current approach to work. This ensures that viewers
are able to accurately estimate your skill level.
Avoid unedited tutorial work: Early on, your portfolio may include tutorial or
assignment pieces. Improve these by adding variation or extra content for
uniqueness, making your portfolio stand out from others who used the same
tutorials.
Show your personality with your work: Use your portfolio to showcase your
interests, values, and unique style to potential employers through diverse
projects that highlight your technical skills and problem-solving approach.
This job profile is in early access. Design and contents may change. Portfolio
LinkedIn profile
In the RT3D industry, a strong LinkedIn profile is crucial and often
underestimated by job seekers. LinkedIn is a vibrant community for the RT3D
industry, regularly used by recruiters for initial candidate evaluations. Not having
a LinkedIn profile might raise questions. The platform is a crucial networking
space for the RT3D community where professionals share, stay updated about
industry trends, and find job opportunities. Therefore, a well-crafted LinkedIn
presence significantly boosts professional visibility and navigation of the RT3D
job market.
Create your resume first: Having your resume created first will significantly
speed up the process of creating your LinkedIn profile.
This job profile is in early access. Design and contents may change. LinkedIn
Application Tips
Spell check: Carefully check your resume, cover letters, portfolio, and LinkedIn
profile for spelling errors. If possible, have your documents reviewed by another
person to help identify any words that are spelled correctly, but used in the wrong
context (for example, do you actually have a “Skulls” header in your resume, rather
than a “Skills” header?).
Find the hiring point of contact: When applying for jobs, identify and connect
with the hiring manager or recruiter via the company's site or LinkedIn. After
applying, express your interest in the role to show proactivity. This gets you
noticed, creates a good first impression, and aligns you with the goal of finding a
proper fit, increasing your chances of standing out.
Ask questions during the interview: Have questions ready for your interview.
This shows your interest in the role and helps you understand expectations
and company culture. Being question-less could appear as disinterest or lack
of preparation.
This job profile is in early access. Design and contents may change. Application Tips
Navigating job rejection
Don’t take rejection personally: Job hunting can be challenging, especially when
faced with rejection, lack of interviews, or unanswered applications. It's crucial not
to tie these setbacks to your worth or skills. Rejections are often part of the
process and are not indicative of your abilities or personal value.
Recognize the numbers: Job openings frequently attract a large pool of applicants,
making it easy for resumes to be overlooked. Understand that the competition is
fierce, and rejection doesn't necessarily reflect on your qualifications. Sometimes,
it's a matter of timing, and your application might not align with the current needs of
the company.
This job profile is in early access. Design and contents may change. Navigating job rejection
Preparing for an
interview
Moving to the interview stage is a pivotal moment for your job search and can often
come with nervousness or stress. Proper preparation is key to presenting yourself
as a confident and capable candidate. This section will provide some essential
steps to ensure you navigate the interview process seamlessly and leave a lasting
positive impression on potential employers.
Share your availability: Many companies use special applications that allow
you to self select your availability, but if this isn’t the case, provide a range of
dates and times for the interview within the upcoming weeks. If dealing with
different time zones, specify your current time zone to avoid scheduling
confusion.
This job profile is in early access. Design and contents may change. Interview Preparation
Online interview etiquette: If your interview is online, be sure to implement
the following guidelines:
Stay positive: Avoid excessive negativity, even if your job search has been
challenging. Present yourself as genuinely excited about the opportunity,
focusing on a positive mindset; remember, this interview might lead to a job
offer.
Watch for questions that prompt you to describe past situations, discuss specific
challenges, or detail achieved results. When responding, structure your answers to
articulate the situation or task, the actions you took, and the positive outcomes
attained. This method provides a systematic way to highlight your problem-solving
and decision-making skills, aligning seamlessly with the industry's interview
expectations. Utilizing the STAR method enables you to stay focused, respond
succinctly, and demonstrate your skills with the interviewer's preferred format,
leaving a lasting positive impression.
This job profile is in early access. Design and contents may change. Interview Preparation
The interview process
Interviews for junior programmer positions typically include more than one round of
interviews. These may be a mix of behavioral interviews to assess your
interpersonal skills, teamwork, and cultural fit, as well as technical interviews to
evaluate your technical knowledge and problem solving approach. Technical
interviews may involve discussing real-time 3D concepts, algorithms, data
structures, or specific programming languages and frameworks.
This job profile is in early access. Design and contents may change. The interview process
Resources for career
development
As this job profile is still in its early access phase, we are working to gather
resources that align with the junior programmer role. Our commitment is to provide
you with a comprehensive and up-to-date aid that will assist in optimizing your
career path. If you are an educator and have any learning experiences or know of
any relevant resources that could add value, we encourage you to share this
invaluable information via this submission form. Your contribution will not only be
highly appreciated, but also integral to the growth of our community of junior
programmers.
Learning experiences
Junior Programmer Learning Pathway on Unity Learn: This complete learning
experience is designed for anyone interested in learning to code and obtaining an
entry-level role using Unity. This pathway assumes a basic knowledge of Unity and
has no math prerequisites. The Junior Programmer Pathway also prepares you for
the Unity Associate Programmer certification.
Certifications
Unity Certified Associate Programmer: This certification
validates your Unity programming skills to employers by
demonstrating core skills and competencies across
programming, UI, debugging, and asset management.
This job profile is in early access. Design and contents may change. Resources for career development
UNIVERSAL JOB PROFILE
Acknowledgements
The development of this Universal Job Profile was made possible by the expertise and support of the
Employer Advisory Board (EAB). Composed of professionals from leading companies in the real-time
3D landscape, the EAB serves as dedicated subject matter experts for the initiative, offering
invaluable insights into the in-demand job roles within their respective industries. We extend our
sincere thanks to each member of the EAB for their commitment to the success of the Universal Job
Profiles. Their dedication not only showcases their professionalism but also highlights their
significant investment in shaping a brighter future for the RT3D industry. We appreciate the
collaborative spirit and contributions of the EAB, which have played a crucial role in advancing
careers and opportunities within the RT3D field.
This job profile is in early access. Design and contents may change. Acknowledgements
About the Universal
Job Profiles
The Universal Job Profiles are developed as part of Elevate, a Unity initiative
dedicated to facilitating the entry of new talent into the RT3D industry by
establishing robust and open lines of communication among job seekers, educators,
and employers.
Universal Job Profiles have been created to provide a unified framework for
defining job roles within the RT3D sector. The goal of this document is to serve as a
handbook for anyone seeking a job, aiming to create a learning experience, or
vetting candidates. By standardizing job roles, aspiring professionals can
confidently acquire the necessary skills, educational institutions can design
comprehensive learning experiences covering the full spectrum of each job, and
employers can easily evaluate job candidates.
The data for Universal Job Profiles was gathered using the expertise of the
Employer Advisory Board: a group of experts from industry-leading companies
across all parts of the RT3D landscape, including games, media, training, and more.
The board serves as our subject matter expert resource, providing crucial industry
insights about in-demand job roles. By collaborating with the Employer Advisory
Board, we ensure that the information shared in the Universal Job Profiles is up-to-
date, accurate, and representative of actual industry needs.
This job profile is in early access. Design and contents may change. About the Universal Job Profiles
Contributing to the
Universal Job Profile
All Universal Job Profiles are living documents: they are reviewed by the EAB twice
annually to ensure that they remain accurate and up to date with the latest needs of the
RT3D industry. We also welcome any suggestions from the community to help improve
the overall quality and usability of these documents.
This job profile is in early access. Design and contents may change. Contributing to the UJPs
CHANGELOG
0.0.2 - 2024-06-25
Early access release:
Minor layout adjustments
Updated contact links
Updated company logos
Added pay band info
0.0.1 - 2024-01-17
Initial review release
This job profile is in early access. Design and contents may change. Changelog