Description

There are more than 16 million children growing up in poverty in the U.S., and less than 10 percent of them will graduate from college. These statistics are not a reflection of our children’s potential; we know that children growing up in poverty can and do achieve at the highest levels. Rather, these statistics reflect the systemic lack of access and opportunity for children in low-income communities.
 
Teach For America’s (TFA )mission is to find, develop, and support a diverse network of leaders committed to expanding opportunity for children from classrooms, schools, and every sector and field that shapes the broader systems in which schools operate. We are seeking individuals who align with our mission, core values and commitment to Diversity Equity & Inclusiveness and are ready to join us in this global movement.

The IT Team loves to collaborate. We partner with every other team in the organization to create world-class technology solutions that staff and corps members use to more effectively and efficiently get all kids access to educational opportunity. To do so, we work with some of the largest names in technology, and leverage the latest software, equipment, and expertise. Our team works very hard, but we also have a lot of fun. We enjoy game nights, quarterly trivia outings, and themed potlucks where we get together to eat and explore each other's cultures and favorite recipes.

As a Java Technical Lead, you will lead a highly-dedicated team building internal and external software systems for Teach For America. You will be responsible for the design, and delivery of mission critical initiatives, leading design sessions, and extensive coding with developers to achieve success.
 
Our goal is to build dynamic, stable applications that enable our business partners to efficiently perform their jobs and maximize the impact our teachers are having in the classroom and beyond. We operate using agile development techniques (frequent delivery, strong customer interaction, simplicity, unit-testing, refactoring, etc.)  We use open-source software whenever possible, and have a strong commitment to developing quality, low-maintenance software systems.

This position reports to the Managing Director of Application Development. 

Skills and responsibilities

THE PERSON

Technical responsibilities will include, but are not limited to:
  • Design, develop and maintain Teach For America’s Java based software systems - 75%
    • Develop using the following technologies / concepts:  Service Oriented Architecture (SOA), Single Page Applications (SPA), Message-Based Architecture, Javascript, CSS, UI frameworks (Node.js, Angular, Backbone, etc.)
    • Design, develop using TFA’s standardized architecture practices (and ensuring that developers are also following these practices)
    • Write unit tests, perform code analysis, and automate common actions in our CI/CD environment
    • Actively influence evolving application architecture
  • Participate in all aspects of Teach For America’s agile software development cycle (including scrum processes, assessment, planning, design, development, testing, and support.) - 10%
 
Management responsibilities may include, but are not limited to:
  • Lead a team of developers to successfully deliver mission critical initiatives - 15%
    • Mentor junior developer(s), ensuring they have opportunities to grow and learn
    • Work effectively with project managers, business analysts, and other teams inside and outside of IT to deliver projects
    • Promote Agile/XP development practices (Test Driven Development, Pair Programming, etc…)

Details

  • Location:
    New York
    ,
    NY
  • Salary: , Commensurate with experience within our equity-focused compensation structure
  • Deadline: n/a

Qualifications

Minimum qualifications

THE MUST HAVES

Prior Experience   
                                                    
  • 5+ years of experience with Java oriented service development using a Service Based Architecture
  • 5+ years of experience with Java, SQL, and relevant open source frameworks (Spring framework, especially Spring Boot and REST / JDBC Templates)
  • Experience building automated testing and deployment pipelines, code analysis tests, and other automation tasks in a CI/CD system (such as Jenkins)
  • Experience building and working with messaging and event driven applications (JMS, ActiveMQ, or similar)
  • Experience working in an agile development process (XP, Scrum, Kanban, etc)
  • Proven track record of leading projects
  • Experience architecting applications to run in a cloud environment (Azure, AWS, etc) a plus
  • Experience with scripting languages such as Groovy or Python a plus
 Skills and mindsets 
  • Proficient in single page application concepts and leveraging UI technologies to build them (Node.js, Angular, Backbone, etc.)
  • Developing with modern frontend frameworks (Node.js, Angular, Backbone, etc.)
  • Experience working in a Unix environment
  • Understanding of complex infrastructure (Load balancer, F5, CDNs, firewall, etc)
  • Must be a quick learner with strong organization, communication and interpersonal skills
  • Ability to communicate clearly to technical and non-technical people verbally and in writing, including collaborating with business partners to devise solutions and troubleshoot issues
  • Ability to operate effectively, and with a sense of possibility, in a fast-paced, deadline-driven environment
  • Willingness to learn new skills as technology needs evolve
 Work Demands
  • This position is located on site in our downtown New York national office
  • Limited domestic travel (1-2 times per year) may be required
  • Limited evening or weekend work may be required based on project demands or maintenance schedules. We try to limit this as much as possible.
 Education:
  • Bachelor’s degree  in Computer Science, BSEE, MIS or a related field, or comparable work experience required