Senior Software Engineer
We are looking for a Senior Software Engineer, who will be a significant contributor to our enterprise software systems and services, as well as to our internal and customer facing applications and APIs. As a Senior Software Engineer, you will be responsible for architecting, building, and deploying custom telecom data-processing systems and analytic services. The position will entail developing in Python and GoLang languages, API creation and modification, using relational databases, maintaining deployment and CI/CD scripts, and operating with Linux-based micro-services architectures. Familiarity with front end technologies that consume and interact with backend services is a strong plus. This role will also be responsible for mentoring other junior developers, establishing best practices, and generally growing the team’s software engineering development capabilities. Our ideal candidate should have 7+ years of relevant experience.
What you'll do...
Candidates should have deep understanding and extensive experience in software engineering to do the following:
- Build client-server applications, to include defining interfaces and pipelines, handling errors, security (e.g. encryption), and testing.
- Design reusable APIs to include both library APIs and exposed web services APIs (REST, gRPC, etc.).
- Use message-bus architectures and message queue implementations.
- Design and implement Relational database schema and data models.
- Work with horizontal scaling / concurrency via threads, non-blocking, actors, distributed worker processes, etc.
- Conduct system performance analysis and tuning.
- Support and document development of scalable, repeatable deployment procedures.
You'd be a great fit if you meet the following...
- 7+ years relevant experience
- Ability to work in a cross directorate, multi-project environment.
- Have a great attitude and aptitude to learn new things.
- Able to work independently and as part of a team.
- Strong organizational, problem-solving, project management and communication skills
- Able to multi-task, establish priorities and meet deadlines.
- Have significant experience with the following technologies / in these technical areas:
- Linux system usage and administration, to include tracing problems in network stack or system utilization, package management, etc.
- Container image development - Docker build and deployment.
- Container orchestration (Docker Swarm, Kubernetes)
- Cloud compute (AWS)
- Experience with PostgreSQL
- Building micro-services in Golang or Python (ideally both)
- Micro-service architectures
- Structured logging, Elasticsearch, Kibana
- Build frameworks, continuous integration tools.
- Source control (git), collaboration tools (e.g. Jira, Confluence).
It would be even better if you also had...
- A Bachelor's degree or higher in Computer Science or related fields
- Working knowledge of CI/CD dev ops pipelines
- Strong familiarity with Ansible and similar automated-deployment tools
- Both SQL (Postgres) and NoSQL databases (e.g. Redis, Elasticsearch, Neo4j) experience
- Listed examples of open-source work (e.g. projects in a public git-type repository)
- Experience and comfort with BOTH Golang and Python
EEO Statement
We are an Equal Opportunity/Affirmative Action Employer. We consider applicants without regard to race, color, religion, age, national origin, ancestry, ethnicity, gender, gender identity, gender expression, sexual orientation, marital status, veteran status, disability, genetic information, citizenship status, or membership in any other group protected by federal, state, or local law.