APTrust Seeks Lead Developer
University of Virginia Library and Academic Preservation Trust (APTrust) seeks applicants for a Lead Developer. APTrust is a distributed digital preservation repository serving several universities in the United States. We run a suite of preservation services in Docker containers on AWS using ECS/Fargate, Redis/Elasticache, NSQ, RDS/Postgres, Glacier, S3, and Wasabi. In addition, we provide cross-platform terminal and desktop apps to help depositors push new materials into our repository. APTrust operates in the US Eastern timezone, and applicants should be eligible for employment in the United States. This position is eligible for 100% remote work.
We're seeking an experienced Go developer to maintain and extend our suite of online services.
Applicants must be authorized to work in the U.S. without visa sponsorship.
In this position, you will:
- Work with depositors to define new features
- Design, code, test, and document new features
- Help maintain and troubleshoot operations in the existing system
- Help improve processes for testing, release, and deployment
- Manage contractors or student workers doing development, testing, or documentation projects
- Occasionally present your work at conferences
- Work with many smart, interesting people from around the US
- Have a good work-life balance
In this position, you will NOT:
- Be doing day-to-day Ops work. The Lead Engineer for DevSecOps has that covered.
- Be putting out fires or working late to resolve issues in production. We're running a stable and busy system thanks to a well-designed architecture, years of production experience, and a strong emphasis on unit, integration, and end-to-end testing.
Minimum Education and Experience
- Education: Bachelor's degree in Computer Science, MIS, Computer Engineering, or related discipline.
- Experience: At least seven years of experience. Relevant experience may be considered in lieu of a degree.
- Licensure: None
Required Knowledge, Skills, and Abilities
- Distributed systems and queue services, and microservice architectures.
- Different types of storage, including traditional file systems, block, object (frozen to hot), network attached (NAS), and in-memory.
- Proven proficiency in Go programming (Golang) and fluency in at least one additional language.
- Git version control and familiarity with GitHub or GitLab.
- Intermediate or advanced understanding of web standards, including HTTP(S), HTML, CSS, and JavaScript.
- Writing production systems in Go.
- Writing or maintaining complex systems and applications in distributed cloud-based systems, including public and private clouds (AWS preferred).
- Using different implementations of the S3 API to perform identical operations.
- SQL and relational and in-memory database management, including Postgres and Redis.
- Creating and maintaining robust web-based applications and RESTful APIs.
- Building and maintaining command-line applications.
- Using Git, Containers, and Continuous Integration/Continuous Delivery pipelines for automated, graceful deployments with minimal downtime.
- Adapting and implementing open-source software within other systems and applications.
- Working in an agile approach to software development.
- Time management to effectively set, manage, and meet deadlines.
- Leveraging understanding of advanced software concepts (like concurrency) when debugging and optimizing applications.
- Capacity for perpetual learning, research, and versatile problem-solving.
- Communicating technical information to technical and non-technical audiences, both in writing and verbally.
- Presenting and reporting on efforts to effectively communicate to a diverse group of stakeholders across multiple organizations.
- Working both closely with others on a technical team and independently.
- Experience with digital preservation and BagIt packaging standard.
Preferred Knowledge, Skills, and Abilities
- AWS services, including Cloudformation, EC2, ECS, EKS, Elasticache, Fargate, and S3.
- Proven proficiency in gin, Go's web framework
- NSQ or similar queue service (AQA, RabbitMQ, ZeroMQ).
- Intermediate or advanced understanding of SMTP and WIA-ARIA.
- Information technology (IT) governance and the Software Development Lifecycle (SDLC) model.
- Project management methods, including agile, kanban, waterfall, and systems engineering management.
- Documenting systems and processes for compliance with internal and external standards and to support the SDLC.
- Debugging and updating code in unfamiliar programming languages.
- Translating non-technical requirements into actionable software solutions.
- Build and lead partnerships and collaborations with third-party vendors and external organizations.
- Leading research and development initiatives.
- Mentoring and guiding junior employees and stakeholders.
About the Position and Application Process
The UVA Library is interested in reviewing candidates with a broad range of experiences, education, and qualifications. We are dedicated to building a dynamic workplace, so if you are excited about this role but your past experience doesn’t align perfectly with every preferred qualification in the job description, we encourage you to apply anyway.
Anticipated hiring range: $110,000 and $130,000. Review of applicants will begin March 17, and the position will remain open until filled.
Applications must include a cover letter and resume or curriculum vitae to be considered. Documentation demonstrating the ability to effectively communicate to a diverse group of stakeholders across multiple organizations is encouraged to be submitted with other application materials.
TO APPLY:
Complete an application online and attach: Cover letter to include your interest in the position and your knowledge, skills, abilities, and experiences. Resume or CV
Please visit UVA job board to apply at https://jobs.virginia.edu/us/en/job/R0070204/Senior-GoLang-Developer.
***Please note that you MUST upload ALL documents into the CV/Resume box. Applications that do not contain all the required documents will not receive full consideration. ***