Software Engineer – Summer Intern
About Atomic Software
Atomic is a Brooklyn-based firm that makes digital products for the book publishing industry. We
have a twelve-year track record of creating elegant technology for some of the largest media
companies in the world. Our clients include Random House, Scholastic, Harcourt, and Pearson.
Our products directly affect the future of an industry that is becoming digital right now.
The Position
Atomic is building a team of innovative product engineers, who can invent, spec, prototype, and
build great digital products. Your job at Atomic will be to bring complete digital products to market:
Atomic Software is a small company that builds big, so we need smart people who can start at
the beginning of a product and see through every task to completion.
Weʼre looking for people who have a vision of the whole product: the underlying architecture, the
beauty in elegant code, the balance between re-use and purpose-built modules, and an
appreciation for how every technical decision will affect the end userʼs experience. You should
also be interested in how authors, editors, publishers, and readers will be creating, selling,
contributing to, and enjoying books in years to come.
This is a paid internship with flexible hours, with the possibility of switching to full time.
Engineering Requirements
• Understands the value of a disciplined engineering practice for the long-term evolution of a
digital product.
• Demonstrates experience with software source code revision control systems, such as
Subversion.
• Understands the QA process of identifying, describing, reproducing, re-assigning, and
resolving product bugs.
• Has experience with product release cycles, including full regression testing, the difference
between content-testing and functional testing, and weighing the extent of risk in a late
programming change prior to product launch.
• Works easily with online bug tracking software systems that tie resolution to committed code
in the revision control system.
• Commits to understanding the true underlying cause of a software bug instead of more
simply treating the symptoms of the bug.
• Quickly adapts to a new programming language or platform depending on the needs of the
project.
• Has a detailed understanding of the concepts and value of object-oriented design principles,
and uses them to solve design problems.
Programming Skills
• Has excellent skills with Adobe Flex, Flash, and Actionscript 3.0, and keeps getting better.
• Has excellent skills in Objective-C 2.0 for iOS programming, stays apprised of all the latest
changes and new features, has a detailed knowledge of the profiling tools and interface
design tools.
• Can work with XML in a variety of programming languages, especially e4x in Actionscript 3.0,
in Javascript, and Java.
• Works easily with HTML5 tools such as the latest HTML extensions, Javascript, and CSS.
• Demonstrates detailed knowledge of SQL-based database systems, especially Oracle,
MySQL, and SQLite.
• Can work with Java inside application servers such as Apache Tomcat and within frameworks
such as Spring.
• Works on the Unix command line and shows a facility with the vi text editor and shell
scripting.
• Can work with command-line Java build tools such Ant and Maven.
• Knows how to use integrated development environments, especially Eclipse, XCode, and
Flash Builder Pro.
• Takes pride in producing code that can be explained to and maintained by other
programmers.
If you donʼt have some of the skills above, but you want to learn and can demonstrate past ability
to learn quickly, thatʼs ok. Apply anyway and we can discuss.
User Experience Design Background
• Has a detailed knowledge of user interface best practices, based on experience, training, and
research.
• Can work quickly to wireframe a series of related screens using tools like Balsamiq Mockups.
• Uses visual wireframes to understand and communicate how a user would accomplish
different tasks.
• Can take the graphical work of designers and implement it functionally, making adjustments
in tools like Photoshop, Fireworks, or the GIMP when needed.
Technical Skill Summary
• Source code revision control systems, such as Subversion
• Objective-C 2.0
• XCode, Instruments and related Apple development tools
• Adobe Flash Builder, Flex 4, Actionscript 3.0
• Adobe Flash Catalyst
• XML, e4x, XSL, XPath
• HTML5, Javascript, CSS
• Graphical image manipulation tools
• Object-oriented design principles
• Unix command line, Unix shell scripting, vi text editor
• Java programming
• Apache Tomcat and Spring application framework
• Ant and Maven
• SQL language and Oracle, MySQL, SQLite databases
• Balsamiq Mockups
Conceptual Skills
You must be able to:
• Combine technical expertise with the ability to speak your mind, think critically, and find the
simpler, more elegant way to get the job done.
• Take pride in your work and be able to explain to anyone — client, lay-person, engineer, or
executive — exactly why it’s great.
• Recognize when you could have done a better job and take action to improve things.
• Listen to the end-user or client thoughtfully, address the userʼs concerns, and communicate
what courses of action are available or preferred.
These conceptual skills are not after-thoughts: we consider them as much part of the job
description as any of the design or engineering skills listed above.
To Apply
Send a resume and cover email to jobs@atomicsoftware.com with the subject line “Software
Engineer – Intern”.