Python Software Engineer$ 30k/Year ($ 15/Hour for 40 hours of productive work per week) Remote Position Long-term
Do you have the passion and ambition to grow your Python skills, make decisions based on metrics and challenge yourself on a variety of products? If you can adapt to our roles and can learn new ideas and concepts to solve business problems, then this role may be for you.
Our assembly line teams require highly skilled Python engineers who are experienced in writing unit tests and are willing to be part of a high performing team where you can expect to learn from your mentors. We have high expectations of our engineers within the organization and only the best and most disciplined in their work are expected to succeed.
Engineers have aggressive daily and weekly targets set for them and are required to work a standard working week with us. Your output of work is measured daily, both from a quantitative as well as a qualitative aspect. You will receive daily and weekly feedback on your performance which will help you resolve blockers and ensure you are meeting your targets.
-Kingsley E, Java Software Engineer
As our factory is designed to deliver exceptional quality at a high pace, in every team that you work in you will be expected to deliver work to a high level of quality.
Your work quality is measured through the First Time Acceptance Rate, which means passing the code review quality bar set by Chief Architects.
As a Python software engineer, you can expect to be a member of one of our central assembly line teams such as a maintenance or unit test team.
Our maintenance team is responsible for bug fixing across our 100+ product portfolio. The maintenance team has an element of product specialization, but they are also process specialists. We want to ensure that our engineers have all the right information and toolsets available to be able to quickly reproduce a client’s environment, reproduce a bug, fix it, test it, document the fix and send for review. We have weekly product release cycles, so we want to ensure that bugs get fixed as quickly as possible for our clients and that we are continually improving the quality of our products.
Our organization is continuously acquiring new companies and their products. As a result, our unit test team is responsible for increasing unit test code coverage for all newly acquired products. Engineers within this team are expected to have great experience in writing unit tests and will also have daily and weekly targets to work against. The engineer’s role is to increase the unit test coverage and work according to the team's standards and quality guidelines. We measure the quality of work through our First Time Acceptance rate, meaning that the Product Chief Architects accept the work delivered by the engineers immediately and without having to ask for a rework.
In all cases, you will have aggressive daily and weekly targets to work against, and you can expect to receive timely feedback about your performance. The frequent feedback is used to help you improve immediately and to help you resolve blockers which may be slowing down your performance.
Provide feedback to the engineering leadership on areas of the software development process which can be improved or automate
Deliver a consistent high-quality product which has a high “First Time Acceptance Rate” from the engineering leadership.
Comply with engineering process playbooks
Ensuring that your output meets the teams quality bars before being passed on to further stages within the process
Meeting your goals, which are set by your manager, on a daily and weekly basis
Escalating issues to your manager as soon as a risk is identified or as soon as you are blocked in your work
Working a standard 40-hr week and mostly Monday to Friday
Keep up to date with latest software engineering trends
We believe in continuous growth and strive for continuous improvement. We also have an obsessive focus on improving the quality of teams and you will learn how to do this as part of your work in our continuous journey towards improving the quality of products.
You will learn how an organisation operates with an automated continuous deployment pipeline; you will learn how innovation and experimentation with technology can help drive productivity improvements, reduce costs and free up your time to do more meaningful and interesting tasks.
You will also learn how to operate in our metrics-driven culture, which is the foundation of our success in measuring and improving every engineering process and product we deliver. This also ties in to the use of WorkSmart Pro, where you can learn how to improve your efficiency during your standard working day. You will learn how our centralised software factory model benefits an organisation and gains from economy of scale; the more we grow the more efficient we become.
At the end of the day we want you to become a specialist in some of the parts of our software factory model and allow you to master your technical skills while interacting with the top 1% global technical talent.
Work ExamplesEvery job creates excellent work. We want to show you the types of things you will learn, using real work examples of the processes, training examples, playbooks, projects you will build on the job.
Feature Project Delivery Framework
Relevant Files and LinksExternal resources relevant to this role.
If you are interested in improving your technical knowledge and/or collaborating with Python community, you may find this blog valuable.
Here you can find a link to an article that talks about Continuous Integration with Python which addresses the challenge to coordinate many people working on the same code.
How do you measure the productivity of a Python team?
We do not measure the productivity by technology. Every team has a metric which they deliver against; by default, every person within the team is measured by the same metric on a weekly basis. For example, the metric for our maintenance team is “number of bugs fixed.” The cost per unit of the maintenance team on a weekly basis is the total headcount cost of the team for a week divided by the number of bugs fixed during the same week.
How can an Engineer get promoted to new roles?
If you are a top performer in your role then it is possible for you to apply to new roles and move up the career ladder. From an engineer role you may apply for a Software Architect and then Chief Architect role, then progress to Software Engineering Manager. The possibilities exist and your career path is only dependent on your performance.
What does a Engineer day look like?
A standard day in this position is typically comprised of the following tasks: a short daily check in with your manager to review blockers which you may have and request assistance when needed, a commitment to your manager on what you are going to achieve that day, potentially a short team meeting to review overall team progress, working on your actual tasks as set for the team. You will have daily targets to meet and should therefore ensure that you have a good working environment to work in.
I heard you have a tracking tool to monitor your teams, why do you use it?
One of the key objectives of our productivity tracker is for it to be used by our Crossover partners to log time and eventually get paid. We also log information about our Crossover partners to understand what tools and applications they are using. This helps us to build work patterns of our people and identify best practices which we can share with all our teams. As an engineer we expect that you would be spending at least 80% of your time in your relevant IDE with the remaining 20% spent on email, meetings and reviewing documents.
Do you use Agile?
Like most organizations, we make use of subsets of Agile. The one key difference though is that our teams are highly specialized in the task they do. For example, we have a maintenance team whose only task is to fix bugs on our products. Rather than being product specialists they are process specialists.