Lead Software Engineer
Our Lead Software Engineers are responsible for ensuring the overarching technical health, team health, solution architecture, direction, and implementation of an engagement are all given attention and oversight.
A good candidate will have:
Experience with several programming languages, different programming paradigms, and operating systems
A passion for technology and staying abreast of current and up-and-coming technologies. Open source contributions are interesting to see, but absolutely not required
Experience in all stages in the project lifecycle
Excellent communication skills (verbal and written)
Empathy for their colleagues and their clients
Signs of initiative and ability to drive things forward
A pragmatic approach to software and technology decisions as well as prioritization and delivery
Ability to handle multiple workstreams and prioritize accordingly
Commitment to delivering value and helping clients succeed
Ability to tailor your language to a technical or a non-technical audience
Comfort working with both collocated and distributed team members across time zones
Comfort working with and developing coding standards
Ability to codify best practices for future reuse in the form of accessible, reusable patterns, templates, and codebases
Experience using TDD and/or BDD
Willingness to travel as required for projects (0 up to 40%)
What makes our Lead Software Engineers so effective?
A passion for making things better
The ability to prioritize the needs of development + technical debt with the needs of the project + client
Strong analysis, communication, and documentation skills
Strong organizational skills
A pragmatic, delivery-focused mindset
Strong organizational skills
Having an understanding of the overall problems being solved, from both business and technical perspectives
Ability to create and implement software engineering solutions using modern software engineering best practices
Scale up from “laptop-scale” to “cluster scale” problems, in terms of both infrastructure and problem structure and technique
Ability to deliver tangible value very rapidly, working with diverse teams of varying backgrounds, skillsets, and levels of experience
Demonstration of initiative and ability to drive things forward
Staying hands-on and contributing to implementation, delivery, and troubleshooting
Some examples of skills and technology we find relevant and interesting:
Frameworks such as Vue, React, Angular
Python
SQL Server, Postgres, Oracle
MongoDB, Apache Spark, Hadoop, Elastic Search, Kibana, Cassandra
HTML, CSS, and JavaScript
Twitter Bootstrap, Google Material Design
Webpack, Gulp, Grunt, Browserify
SASS, LESS, PostCSS
Java
RESTful APIs, microservices
RabbitMQ, JMS, Kafka
Web, mobile (iOS and Android), pure back-end, or database development
Strong server-side development skills
Server-side JavaScript tools: Node, Express, NPM, Yarn
Jenkins, GoCD
Interesting technology we’ve used on recent projects:
Pipeline-based technology like Airflow, Luigi
Docker, Rancher, Chef
Hadoop, HDFS, Hive, Redshift, S3
Invision, Zeplin, Balsamiq
