Our current system and architecture is built on Apache::ASP, it uses perl/modperl and several template modules ( all perl ie, Template::Toolkit, etc ) running on EC2 instances as Apache web servers. Data grooming and management is done with cron jobs triggering perl and shell scripts, the DB is AWS Aurora. We are in the process of rebuilding the system from scratch using modern CICD processes, ie AWS backend infrastructure utilizing containers and kubernetes. We’ll be taking what code we can, understanding how the current perl modules and templates are functioning, and rebuilding it using one of the top popular frameworks, either REACT, Nodejs, SpringBoot, Django, etc ( negotiable ). We’ll be breaking the system into micro services ( containers/kubernetes ), and at a minimum separating the UI and API layers, as well as converting cron scripts into scheduled kubernetes templates. The database is AWS Aurora ( mysql/postgres ), we have some skeleton CICD pipelines in place and bitbucket/github repos setup for auto build processes triggered on updates.
This position will work in an agile atmosphere, developing, releasing and supporting the platform that supports our next generation product. Our software development process spans the full-stack lifecycle, including front-end UI and back-end API development. Our backend cloud technology primarily leverages AWS services, EC2’s, S3 as well as Kubernetes. This platform includes many layers of services, databases, data processing, and process flows that makes the whole system work. The candidate will be working one-on-one with both the CTO and CEO in a small, fast paced, work environment.
The successful candidate will be able to:
- Implement software to meet performance, scalability, reliability, and maintainability requirements.
- Participate in design discussions about new features and approaches to implementing new services and collaborate to analyze, develop, and implement end-to-end solutions.
- Analyze and improve the life-cycle software development process (testing, building, deploying, monitoring).
- Utilize Agile and/or Scrum Methodology
- Knowledge of AWS cloud services and processes.
- Experience with programming languages ex. Java, NodeJS, SpringBoot, React, Swift, Django.
- Containerization ( Docker ), you can build project images locally.
- Experience with Kubernetes and containerized apps and environments as well as a good understanding of CI/CD pipelines and workflows.
- Kubernetes ( again ), you know how to launch projects into K8 clusters.
- Basic knowledge of Perl, at least the ability to read Perl code for the purpose of converting.
- Solid understanding and knowledge of the differences between UI and API layers with respect to containerization.
- CI/CD pipelines, you know what it means and will follow procedures, running custom pipeline scripts locally if required.
- You work comfortably in a Unix environment, Linux, have some knowledge of how to manage your own workspace.
- You know and work comfortably in modern frameworks
- UI and template strategies, you know how to convert graphics into the UI layer using modern frameworks ( ie Springboot or Django )
- API and REST, you know what it is and understand its functionality
- Strong problem-solving and analytical skills.
- Demonstrated ability to analyze complex issues and design appropriate solutions.
- Ability to manage the workload, accommodate change and adapt accordingly. Experience delivering results in a fast moving, challenging environment.
- Excellent communication skills.
It would be nice to know you’ve worked in more than one popular coding framework, but not required as long as you’re proficient with at at least two as we will most likely separate the UI and API layers and will choose the best solution. You will be building multiple containers as microservices, locally with Docker or equivalent, and are very comfortable with orchestrating projects and kubernetes.