Software Engineering Jobs, Technology Jobs, Jobs in Kenya, Career Opportunities,
HPC Software Engineer
- You will be part of the team that delivers charms that deploy and manage the HPC cluster and provide HPC software packages.
- To succeed in this application you must be outstanding at maths and sciences, have built high quality software, have learned about open source ideally by working on it directly, and be looking for an engineering role with a company that makes mission-critical products for the global market. You should also be familiar with the open source environment, and want to build products in partnership with a community. Ideally, you should have some experience of high performance computing environments and a desire to unlock HPC for the world.
- For this role you must have experience with Python. Experience in HPC environments is a strong advantage. Familiarity with HPC hardware and software is also a strong advantage – delivering great experiences with Infiniband, RDMA, CUDA, MPI, Slurm, Lustre, Singularity and related technologies will be central to this team’s work. It will also be advantageous to have experience with Docker image design and operations, and public cloud image design and operations.
Location: This role will be based remotely in EMEA or the Americas regions
What your day will look like
- Write high quality, rigorously designed Python software
- Collaborate proactively with a globally distributed team
- Debug issues and produce high quality code to fix them
- Contribute to technical documentation that define best practices for authoring high quality operators
- Discuss ideas and collaborate on finding good solutions
What we are looking for in you
- You have a Bachelor’s or equivalent in Computer Science, STEM or similar degree
- You have experience with writing modern, maintainable Python
- You love technology and working with brilliant people
- You are curious, flexible, articulate, and accountable
- You value soft skills and are passionate, enterprising, thoughtful, and self-motivated
- You have interest and experience with two or more of the following: Linux, Kubernetes, Public cloud, OpenStack, LXC/LXD, Python, Go, Debian packaging
- An exceptional academic track record from both high school and preferably university
- Willingness to travel up to 4 times a year for internal events
Additional Skills That You Might Also Bring
- Experience operating HPC clusters in production
- Experiences with Infiniband, RDMA, CUDA, MPI, Slurm, Lustre, and/or Singularity
Engineering Manager, App Stores Backend
- As an Engineering Manager at Canonical, you must be technically strong, but your main responsibility is to run an effective team and develop the colleagues you manage. You will develop and review code as a leader, but know that the best way to improve the product is to ensure that the whole team is focused, productive and unblocked. You are expected to help them grow as engineers, do meaningful work, do it outstandingly well, find professional and personal satisfaction, and work well with colleagues and the community. You will also be expected to be a positive influence on culture, facilitate technical delivery, and regularly reflect with your team on strategy and execution. You will collaborate closely with other Engineering Managers, product managers, and architects, producing an engineering roadmap with ambitious and achievable goals.
- We expect Engineering Managers to be fluent in the programming language, architecture, and components that their team uses. Code reviews and architectural leadership are part of the job. The commitment to healthy engineering practices, documentation, quality and performance optimisation is as important, as is the requirement for fair and clear management, and the obligation to ensure a high-performing team.
- This is a great opportunity to really learn how to do engineering of a highly-scalable SaaS product (think about the load on our systems when one of our largest Ubuntu Desktop snaps is updated by the publisher, for instance). In addition, you will have the opportunity to learn from Canonical’s world-class security team as we work collectively to deliver this capability, safely, to our customers around the world.
Location: This role may be based remotely in the Americas, Europe, Middle East or Africa time zones.
What your day will look like
- Lead a remote team of engineers in your time zone
- Develop talent through coaching, mentoring, feedback, and hands-on career development
- Set and manage expectations with other engineering teams, management, and external stakeholders
- Be an active part of the leadership team and collaborate with other leaders in the organisation
- With your team, build clean web service APIs to support both CLI and web frontend clients, using Python (and optionally Golang).
- Engage with many other teams at Canonical, as well as the open-source community and commercial partners
What we are looking for in you
- Good experience of leading modern, agile software development practices
- Experience of forming a healthy, collaborative engineering culture in line with the company values
- Demonstrative experience of being a role model for sound engineering principles and directly contribute toward your team’s goals
- Willingness to travel up to 4 times a year for internal events
- You love to mentor, develop and grow people, and have a track record of doing it
- You are knowledgeable and passionate about software development
- You are focused on success and the timely delivery of high-quality software
- You value and nurture great team culture and spirit
- You have experience and commitment to agile development methodologies
- Software development experience in Python (experience in Golang in addition to that would be a big plus)
- Effective written and verbal communication skills
- Practical experience with Linux system administration
Software Engineer, Telemetry
- The right candidate will be part of the team that will provide the backbone to our expanding IoT market, enhancing both our on-prem offering as well as scaling to a global cloud-based platform.
What you’ll do
- Collaborate with a globally distributed team.
- Write scalable service APIs in Python and Golang to provide telemetry services.
- Develop observability, remote logging, data acquisition, alert and notification, and edge processing capabilities
- Work with our infrastructure team to develop both a cloud-based SaaS offering as well as a containerised local on-prem solution.
- Design and implement new features and enhancements from spec to production at scale.
- Review code and technical designs produced by other engineers.
- Discuss ideas and collaborate on finding good solutions.
- Work remotely with global travel 2 to 4 weeks for internal and external events.
Who you are
- You love technology and working with a diverse set of talented people.
- You are curious, flexible, articulate, and accountable.
- You value soft skills and are passionate, enterprising, thoughtful, and self-motivated.
- You have a broad technology base but favor backend code and infrastructure.
- You have a good understanding of cybersecurity and the challenges of the IoT environment.
- You have knowledge and experience of telemetry systems including data streaming technologies, observability and monitoring systems, and the application of security/IAM models to such systems.
- You have proficiency in developing tooling and libraries, and the design and implementation of back-end web services, messaging/data pipelines, and REST APIs using python and/or Golang
- You are comfortable with Ubuntu as a development and deployment platform.
- You have a Bachelor’s or equivalent in Computer Science, STEM or similar degree.
Software Engineering Director
- Even though this is a senior management position, managing managers, we expect Engineering Directors to be outstanding developers with the confidence to lead by example across the full range of activities in their teams. You need to understand what great code looks like in the language and genre of your product – whether that is a web service, or a system daemon, or a desktop application, or a distributed system. You’ll need to know how to drive testing and benchmarking to improve the clarity in your teams around quality and performance. You’ll also need to be confident to set and defend high expectations of work ethic, consistency, focus and learning.
We have director level roles across a wide range of engineering domains, including:
- Python and Golang
- C / C++ / Rust
- Data infrastructure
- HTML / CSS / JavaScript / Typescript / React
- Flutter
- Distro packaging and systems
- SAAS and web microservices
- Kernel
- Servers
- Graphics, Browser and Desktop
- Silicon enablement and embedded devices
- Product Security
If your domain of expertise isn’t listed above, yet you feel it’s relevant to Canonical, then feel free to apply anyway. We will route you to the most suitable team.
Location: The role is remote, with positions available in all time zones. It includes a requirement for global travel for twice per year, for trips up to two weeks long.
What you’ll do
- Lead multiple teams of engineers, ranging from graduate to senior
- Develop your engineering managers and maintain Canonical culture
- Hire staff level engineers for specific roles like performance and quality
- Coach, mentor, and offer career development feedback
- Identify and measure indicators of team health and productivity
- Ensure rounded delivery including community participation and docs
- Implement disciplined engineering processes and defend them
- Set and measure progress against benchmark goals for speed and efficiency
- Represent your product to stakeholders, partners, and customers
- Develop and evangelise great engineering and organisational practices
- Plan and manage progress on agreed goals and projects
- Be an active part of the leadership team, collaborating with other leaders
- Collaborate with leads for related or dependent products
What we’re looking for in you
- An exceptional academic track record from both high school and university
- Undergraduate degree in Computer Science or STEM, or a compelling narrative about your alternative path
- Extensive management experience and confidence to set high expectations
- Outstanding Linux based software engineering track record
- Drive and a track record of going above-and-beyond expectations
- Excellent verbal and written communication skills in English
- Public speaking and presentation skills
- A love of developing and growing people and a track record of it
- Experience in leading, coaching and mentoring software developers
- Organised and able to ensure your team delivers timely, high quality results
- Well-organised, self-starting and able to deliver to schedule
- Professional manner interacting with colleagues, partners, and community
- You have advanced expertise in your own domain
- You are knowledgeable and passionate about software development
- You have solid experience working in an agile development environment
- You have a demonstrated drive for continual learning
- Builds trust, relationships and confidence
- Result-oriented, with a personal drive to meet commitments
- Ability to travel twice a year, for company events up to two weeks each
Additional Skills We Value
- Experience in a developer advocacy or community role
- Open source community engagement and leadership
- Ops and system administration experience
- Performance engineering and security experience
Software Engineer – Identity Management for Canonical Products
- As a software engineer for Identity Management products of Canonical, you will modernize and expand the capabilities of the identity management solutions we use for authentication and authorization in our products, as well as our canonical.com and ubuntu.com websites. Your work on Identity Management will directly impact the users of all Canonical products.
- Technical excellence and a background in software engineering are necessary prerequisites for this role. You will be expected to own the design and delivery of the system, facilitate integrations and work with your team on strategy and execution.
What you’ll do
- Collaborate proactively with a distributed team
- Write clean web service APIs to support both CLI and web frontend clients, using Python (and optionally Golang).
- Design and implement new features and enhancements from spec to production and ongoing operations at scale.
- Review code produced by other engineers
- Discuss ideas and collaborate on finding good solutions.
- Create and enhance management, authentication and authorization API endpoints
- Craft end-user authentication flows from design to implementation
- Modernize the identity stack of our websites and products by driving adoption of best-of-breed IAM technologies
- Deliver great products that users love by maintaining a culture of quality and engineering excellence
- Work from home with global travel 2 to 4 weeks per year for internal and external events
Who you are
- You have a Bachelor’s or equivalent in Computer Science, STEM or similar degree
- You are a software engineer, with specific experience building identity and access management products
- You are familiar with the open source software, standards, protocols and concepts in the identity space (e.g. OpenID, OAuth, LDAP)
- You have experience implementing authorization frameworks in distributed systems
- You value secure coding and standards, and enjoy working on teams that do the same
- You have solid experience working in an agile development environment
- You love technology and working with a diverse set of talented people.
- You are comfortable with Ubuntu as a development and deployment platform.
- You are curious, flexible, articulate, and accountable
- You value soft skills and are passionate, enterprising, thoughtful, and self-motivated
- You love embracing new technologies and pushing the boundaries of what is possible, with a view to building products that improve how people operate software and infrastructure everywhere
Lead Engineer – SaaS
- You’ll be striking a balance between keeping our business-critical services running and expanding our feature set: among other things, we are currently working on expanding our package building capabilities, improving the development flows provided to our users, and modernising our web UI. If you love keeping large projects well-organised and well-maintained, care about supporting developers, and believe that continuous improvement is the key to innovation, higher velocity, and reliability, you’ll fit right in.
- Build a rewarding, meaningful career working with the best and brightest people in technology at Canonical, a growing international software company.
What you’ll do
- Proactively collaborate within and contribute to design, architecture, and feature-selection for solutions across distributed teams
- Write high-quality, API-first Python code with unit tests
- Debug issues and produce high-quality fixes
- Review code produced by other engineers
- Work from home with global travel 2 to 4 times a year for internal and external events
Who you are
- You love technology, working with brilliant people, and solving interesting problems
- You are a strategic thinker
- You are curious, flexible, articulate, and accountable
- You value soft skills and are passionate, enterprising, thoughtful, and self-motivated
- You have a Bachelor’s or equivalent in Computer Science, STEM or similar degree
- You have proficiency delivering robust code to production, preferably written in Python.
- You have experience and enjoy maintaining and improving large and mature web applications.
- You have experience with databases, ORMs (PostgreSQL a plus), data management, and data modelling.
- You have an interest in, or experience with, integration, infrastructure and operations.
- You believe that robust security requires conscious efforts at every stage of delivery.
- You have familiarity with Ubuntu as a development and deployment platform.
- You have a solid understanding of the structure of various software packaging systems, including Debian/Ubuntu packages.
Engineering Manager
- We believe that Engineering Managers should be outstanding developers themselves. They should be completely at home reviewing a patch or a software design spec. They are trusted engineers who understand the importance of a whole-team effort in creating great products, and who enjoy seeing colleagues develop. They should contribute code themselves to set the standard for coding, but know that the code they write is far less significant than their ability to shape the whole team’s direction, focus and delivery. We grow management skills, and train engineers who are interested in soft skills to be managers.
- A typical first-level software engineering team is based in a single time zone such as EMEA or Americas or APAC, with an Engineering Manager and a Senior Engineer dedicated to a single product, who work as a team to shape the roadmap, technical strategy, code, documentation and community engagement. They are both capable of coding, and are both leaders comfortable assigning work and maintaining expectations of delivery. They will both be expected to take management training at Canonical so they speak the same language when it comes to team behaviours, habits, routines, norms and standards, but they focus on different sides of the problem.
- An Engineering Manager is responsible for line management and career guidance. The ability to develop engineering talent, to represent your team and product from a technical perspective, and to drive collaboration with other teams and customers are all critical to success in this role.
We have open manager roles across a wide range of engineering domains, including:
- Python and Golang
- C / C++ / Rust
- Data infrastructure
- HTML / CSS / JavaScript / Typescript / React
- Flutter
- Distro packaging and systems
- SAAS and web microservices
- Kernel
- Servers
- Graphics, Browser and Desktop
- Silicon enablement and embedded devices
- Product Security
If your domain of expertise isn’t listed above, yet you feel it’s relevant to Canonical, then feel free to apply anyway. We will route you to the most suitable team.
Location: we have engineering management positions open in every time zone
What you’ll do
- Lead and develop a team of engineers, ranging from graduate to senior
- Work remotely in a single major time zone, sometimes two
- Coach, mentor, and offer career development feedback
- Identify and measure team health indicators
- Implement disciplined engineering processes
- Represent your team and product to stakeholders, partners, and customers
- Develop and evangelise great engineering and organisational practices
- Plan and manage progress on agreed goals and projects
- Be an active part of the leadership team, collaborating with other leaders
What we’re looking for in you
- An exceptional academic track record from both high school and university
- Undergraduate degree in Computer Science or STEM, or a compelling narrative about your alternative path
- Drive and a track record of going above-and-beyond expectations
- Excellent verbal and written communication skills in English
- A love of developing and growing people and a track record of it
- Experience in leading, coaching and mentoring software developers
- Organised and able to ensure your team delivers timely, high quality results
- Well-organised, self-starting and able to deliver to schedule
- Professional manner interacting with colleagues, partners, and community
- You have advanced expertise in your own domain
- You are knowledgeable and passionate about software development
- You have solid experience working in an agile development environment
- You have a demonstrated drive for continual learning
- Builds trust, relationships and confidence
- Result-oriented, with a personal drive to meet commitments
- Ability to travel twice a year, for company events up to two weeks each
Additional Skills We Value
- Experience in a developer advocacy or community role
- Ops and system administration experience
- Performance engineering and security experience
Software Engineering Manager – SaaS (launchpad.net)
- As an engineering manager at Canonical your primary responsibility is to the people you support: ensuring that they are growing as engineers, doing valuable work, and generally having a great time at Canonical. We’re looking for technical leadership and a solid background in software development, so that you’re able to challenge and grow your team members. You will have the opportunity to influence the culture, facilitate technical delivery, and work with your team on strategy and execution.
- Build a rewarding, meaningful career working with the best and brightest people in technology at Canonical, a growing international software company.
What you’ll do
- Grow and lead a team of engineers in your region
- Develop talent through coaching, mentoring, feedback, and hands-on career development
- Apply sound engineering principles and directly contribute toward your team’s goals
- Create and maintain productive relationships with stakeholders
- Set and manage expectations with other engineering teams, management, and external stakeholders
- Collaborate proactively with a distributed team and community
- Lead the ongoing development of Launchpad, the infrastructure on which great software like Ubuntu is built
- Advocate and advance modern, agile software development practices and help develop and evangelise great engineering and organisational practices
- Grow a healthy, collaborative engineering culture in line with the company values
- Actively engage with the broader leadership team
- Work from home with international travel up to 6 weeks per year for internal and external events
Who you are
- You have experience leading a distributed team to deliver features and manage production services at scale
- You love to mentor, develop, and grow people, and have an outstanding track record of doing so
- You are knowledgeable and passionate about technology
- You have experience delivering high quality software
- You have experience designing and evolving complex distributed systems
- You have effective written and verbal communication skills
- You have solid experience working in an agile development environment
Cloud Support Associate Engineer
- You will be accountable for delivering an outstanding technical support experience on the full cloud technical stack at Canonical. From problem qualification to full resolution, you will own and manage your cases. When needed, you will transfer your cases to your colleagues or involve senior engineers.
Location: This is a remote role based in AMER or EMEA time zones.
What your day will look like
- Work from your remote home office and provide technical support for employees.
- Be available to take ownership of new cases via telephone, email and web
- Act as an internal customer advocate keeping them updated in a timely manner
- Ensure that each support case owned by you is handled according to our Service Level Agreement (SLA) with the highest possible customer satisfaction by setting the right expectations and fulfilling your commitments.
- Contribute new knowledge base articles and maintain existing articles, ensuring shared knowledge and lessons learned are available to customers.
- Draft and distribute technical notices for internal and external communication.
- Prioritise your work in order to accomplish the most important and urgent tasks first
- Keep on learning as our products and services grow and evolve
- Understanding Ubuntu development process to be able to set customer expectations correctly on timeline for a fix.
- Maintain regular communication and information exchange with the rest of the team, locally and remotely
- Identify and suggest any opportunities to provide a better service
- Participate in a regular weekend working rotation.
Background check required
What are we looking for in you
- Bachelors or equivalent four year degree in a technical field from an accredited college or university. Preferable majors: Computer Science, MIS, Electrical Engineering, etc.
- Experience with Linux troubleshooting (collecting logs and stack traces, fine-tuning by editing configuration files)
- Experience with Linux server administration
- Strong knowledge of Cloud computing concepts (provisioning, monitoring, orchestration, etc.)
- Knowledge or basic hands-on experience on 2 or more of:
- Virtualization / Cloud
- Containers
- Storage technologies
- Networking (bonding, firewalling, bridging, switching, network file system tuning, MTU issues, etc.
- Programming fundamentals in any language (bash, Perl, Ruby, Javascript, C or C++, Go)
- Ability to learn quickly, thrive on change and handle the pressure of a customer facing job
- Strong written and verbal English communication skills
- Ability to travel
Additional skills that you might also bring
- Experience supporting virtualized environments (KVM, Virtual Box, VMWare)
- Experience with other open-source desktop technologies
- Active contribution to open-source projects/forum/code