SPAN Digital is a software solution development firm. We strategize, design, and develop software solutions for our clients and customers from startups to global brands. We help engineering teams successfully overcome the challenges caused by the accelerating pace of change in software development, allowing them to build better digital solutions. Our Services teams work side-by-side with our client’s engineering teams to develop prototypes, proof-of-concepts, production services, and major product enhancements. Our Product teams distill the knowledge we gain from our custom services work into tools and SaaS products that are designed to support engineering teams struggling with the accelerating pace of change in software development.
SPAN Digital is a growing premium software product and consulting company, headquartered in San Francisco, USA, with Development offices in Cape Town, South Africa, and Guadalajara, Mexico. We are looking for Senior Engineers to take a leading role in our solution development teams who can ensure quality delivery to our clients and customers.
Responsibilities
A Senior Engineer plays a crucial role in the Engineering discipline - driving the design and implementation of the solutions we deliver to our clients and customers. Senior Engineers are responsible for delivering major components of solutions in a timely manner, within budget while maintaining and improving quality. Senior Engineers are problem solvers, who engage clients and lead a few other engineers.
Scope of Responsibility
Senior Engineers are rounded professionals who can take on most tasks. They can work without close supervision and lead a few other engineers in the execution of complex tasks. They can apply their experience appropriately in a broad set of situations. Senior Engineers are professionals capable of scoping and designing sub-systems.
Key Responsibilities include:
Design entire solutions in areas they know well and sub-systems in areas they are unfamiliar with
Capture requirements and discuss implementation details externally and internally
Define API Specifications
Analyze and resolve complex bugs efficiently
Implement new components or entire software systems with little to no supervision
Understand existing complex systems in a timely manner and be able to contribute to their development
Implement CI/CD tooling including the selection and setup of infrastructure
Choose a software stack that best meets our client’s needs after researching the options
Be accountable for readability, scalability and maintainability of solutions
Define and execute testing strategies for various types of verification and validation
Have knowledge of modern software architecture patterns and can work with them within their field
Learn new technologies, follow trends and incorporate best practices
Foster a trusting and collaborative relationship with our clients and customers
Work with design and other disciplines to deliver solutions
Solve hard technical problems for engineers
Contribute to our culture
Remove technology blockers from the team
Identify causes of bottlenecks and make changes to fix them
Work effectively in teams and lead others to do likewise
Resolve conflicts in the team
Develop documentation for solutions
Required Technologies
Front End: ReactJS, NodeJS
Back End: Go, Python, Java or C# (or both)
DB Dev: PostgreSQL, MongoDB
Data Pipelines: Elasticsearch, Kafka
Nice to have technologies:
Front End: TypeScript
Back End: Scala
DB Dev: MySQL, MSSQL, Cassandra, Redis
Data Pipelines: NATS, RabbitMQ
Other responsibilities
Growing Engineers and the Engineering Discipline
Senior Engineers can mentor junior staff - Engineers and Associate Engineers - and provide on-the-job training through pair programming, code reviews, and similar collaborative activities.
Engaging Stakeholders
Senior Engineers can successfully engage clients and customers. They are able to lead scoping and design discussions and create solutions.
Technical Mastery
Seniors have experience in many aspects of the product development lifecycle, from inception through design, development, testing, deployment, and support. They can demonstrate working knowledge of a range of technical areas and deep expertise in a few. They have strong problem analysis and solving skills with the ability to capture requirements and define implementation details.
Leadership
Seniors provide leadership by taking responsibility for sub-systems and project phases. They are responsible for overseeing the tasks of Engineers. This oversight involves planning, estimation, resource management, issue resolution and quality assurance.
Tolerance of Continuous change
Seniors can function successfully in an environment characterized by its fast pace and high level of collaboration. Senior engineers are typically assigned to a single project at a time.
You will love it here if
You are allergic to hierarchical, bureaucratic, business-card cultures
You want to work with very smart people from different backgrounds
You are a voracious learner & an eager teacher of others
You don't tolerate intra-office posturing or other douchebaggery