TNR Global is a small, friendly group of passionate developers and technology professionals. We have a natural curiosity for learning, exploring new ideas, and innovating solutions for our customers. Founded in 2004, TNR is a family-friendly company that prides itself on a diverse workforce, flexible-yet-committed work ethic, and its pragmatic expertise. Originally a “virtual workplace,” TNR Global now has a permanent office in Hadley, Massachusetts where developers work on site for training, meetings, and face time with senior stakeholders. Although we are based in Hadley, telecommuting is still a strong part of our culture.
TNR Global is seeking a Software Developer to join our search team to develop web database and search systems in Python, Java, PHP, Javascript using Lucene (Solr, ElasticSearch). This is an upper junior to mid-level experienced position for someone who wants to dig into complex systems and grow into a senior level developer role. Required are basic development skills showing experience gained in prior projects or academic work, and a ‘get it done’ attitude. This is mostly a telecommuting position with regular face to face meetings required. We prefer candidates within a 2 hour drive of 01035 zip code, (Hadley, MA). Please make sure you read the instructions on how to apply at the bottom of this posting.
We are a stable and growing technology company in western Massachusetts with international reach, specializing in large and very large web systems with complex search requirements. We work on a wide range of systems using many back-end technologies, and believe in using flexibility and creativity to solve the precise and exacting requirements of complex online systems.
Experience/Technical Requirements:
• 1+ year of experience with search technologies, ESP, Lucene based systems (Solr, ElasticSearch). FAST ESP experience desirable. other search engines will be considered.
• 3+ years of experience with both Internet programming (Python/PHP/Perl/JavaScript) and markup languages (HTML, CSS, XML)
• 2+ years of experience designing, maintaining and modifying SQL/MySQL queries, tables and databases
• Demonstrable skill with most Linux/Unix operating system commands/utilities. Ability to read and write shell scripts, use regex and build pipeline based procedures. Understanding of users/groups/permissions, intermachine tools such as ssh, scp and rsync
• A working knowledge of both procedural and Object-Oriented programming, design patterns, dependency-based build and source control systems, and other programming tools.
• Understanding of quality processes, including unit, acceptance and regression testing, preferably have experience with testing frameworks
• Strong proficiency in dynamic HTML and cross-platform DHTML issues (HTML, CSS, JavaScript, Ajax, DOM) and familiarity with modern JS frameworks and tools
• Working knowledge of various data exchange formats: XML, JSON, CSV and related development techniques
Desired Skills/Experience:
• Experience building application specific classes
• Familiarity with MVC/MVVM design patterns, template rendering engines and writing code that interacts with RESTful and XMLRPC web-service APIs
• Deep understanding of how to write secure, stable web application and service APIs that safe-guard against cross-site scripting, SQL Injections and other security concerns
• Large scale software systems experience, even if prior work was a small part of a large system
• Experience with version control systems (Subversion, Git, Mercurial) and skill to create working notes and final module or project documentation
•Understanding of continuous development and integration methodologies and development of system automation processes.
• Understanding or experience with distributed and parallel processing, and SOA (Service Oriented Architectures)
Non-technical requirements:
Enthusiastic attitude showing strong interest in being an active member of a team building complex solutions to non-obvious problems. Including:
• Attention to detail, excellent problem solving skills, organizational skills, documentation skills and ability to follow through on tasks.
• Ability to take rough task descriptions, gather needed details and expand to full task specifications in coordination with team leader and client project lead.
• Ability to work with a team and communicate about overall projects and specific tasks, and to be flexible in handling conflicting priorities while contributing to the best of your abilities.
Ability to take direction as team member, or step up as task leader for specific sub-projects.
• Ability to work within crash deadlines, only when necessary, and ability to anticipate and avoid such situations, and while maintaining a reasonable life-balance between work and personal life
The ideal candidate is disciplined and able to define and meet deliverables with little to no supervision, while coordinating with the team leader on progress and subtask assignments. Must have the ability to get help when needed for technical or project goal reasons. You are expected to have your own computer and high speed Internet connection.
Responsibilities:
• Participate in all phases of the development and maintenance of database-driven and search intensive web sites
• Primary assignments will be specific development tasks on such sites. These include research, technical design, development, testing, implementation and maintenance of dynamic, database and search functions of web sites.
How to Apply:
Email resumes as simple text email or as web URLs of your resume to
jobs@tnrglobal.com. Please do not email word processing documents. (This is for conversion and virus reasons).
Be sure to include contact phone number and any calling limitations. Please do not call, we will email or call you if we are interested in scheduling an interview.
When applying, in the body of your email, answer the majority of the following questions:
- When should procedural vs object-oriented programming approaches be used for software development efforts?
- In Python, if you were asked to make a RESTful web service, what Python framework would you use for the task and why?
- What approaches might you use to serialize/deserialize structured data in response to a RESTful query against a PHP web service you’ve been assigned to develop?
- Using Javascript, what approaches could you use to dynamically update a webpage using responses from a web api provided by a 3rd party website?
- Please provide a regex that can recognize a URI and break apart the primary components.
Equal Opportunity Employer
TNR has a long-standing commitment to the principles of equal employment opportunity. We recruit and employ qualified persons without regard to gender, race, age, sex, religion, ethnicity, national origin, disability, veteran status, sexual orientation, or any other category protected by applicable federal, state, or local law. Individuals shall be judged solely on their job-related aptitude, training, skills, and performance.