[JOB] Full Stack Developer - Horse Racing Project Completion

74 views
Skip to first unread message

Ben Muller

unread,
Feb 27, 2017, 6:17:54 PM2/27/17
to sydneypython

Description of the Job:

I am looking for a developer for ongoing development on an Australian Horse Racing project. The applicant should have comprehensive experience with both front end and back end development. The job will be working on a true real-time (millisecond) streaming application that is already up and running and is pretty much 97% complete. (My contract with another developer has pretty much come to an end). The streaming is processed using Kafka and updates and pulls data every day, which then saves this data into a Database and updates in real-time onto a User Interface. The entire code for the system is written in Python.

The project is based around a predictive model for the Australian Horse Racing industry developed through Machine Learning.

The work will consist of getting up to speed via a handoff from another current developer, followed by approximately four weeks of full-time work to iron out the current bugs in the system and get the project fully completed to 100%.

Once this has been completed I would like to maintain a working relationship with the applicant for all things maintenance, bug fixes, development and anything else that could arise needing attention on the system. I have a lot of ideas in the pipeline and envision the job flow to be regular and consistent, so the 4 weeks stated is just going to be the beginning but this is just what is needed at this point in time.

Currently, the issues with the system are based around Apache Kafka for high levels of streaming data and the system not being able to handle the influx of such high levels of data, mainly on a Saturday when the racing volume is so high, so Kafka understanding is important.

Currently, AWS is used to host the system, the UI runs off of one server and the database off of another.

Applicants will need to be proficient or at least have an understanding of the following technologies:

Python
Django
MySQL
Celery
Celery Beat
Kafka
Angular.js
AWS (Ec2 and RDBS).

Description of the Company:

I am just a person with a project looking for a contractor based agreement for work.

Job Location:

Remote work would be expected.

Pay:

This will be negotiated upon assessing the applicant, please do not hesitate to apply as I am willing to pay the right money for the right person.

Apply:

Please email Ben at ben.k....@gmail.com or contact me on 0415 382 245.


Alan Green ✔

unread,
Feb 27, 2017, 7:49:43 PM2/27/17
to sydney...@googlegroups.com
I know this is a job posting, but it's in a forum full of programmers, so let's discuss.

OP: Please don't take offense, and don't feel like you need to jump in to "defend". We know you're on the level, and we know you want your system finished. Maybe use these notes to prepare answers for questions that candidates might ask.

I think this post is an example of a job with a number of red flags. As an old timer, I'm concerned that someone new the industry may not be seeing them. So here I go, in full nit-pick mode...

Comments in line.

On Tue, Feb 28, 2017 at 10:16 AM, Ben Muller <ben.k....@gmail.com> wrote:

Description of the Job:

I am looking for a developer for ongoing development on an Australian Horse Racing project. The applicant should have comprehensive experience with both front end and back end development. The job will be working on a true real-time (millisecond) streaming application that is already up and running and is pretty much 97% complete. (My contract with another developer has pretty much come to an end).


* "Pretty Much 97%" doesn't sound very certain. I'd ask where 97% came from. It worries me that the client is so firm about timing when it looks like there may be large issues to resolve.

* It's also unclear why "another developer" won't stick around for the last four weeks of a many year project (3% = 4 weeks, so 100% ~= 2.5 years). I'd ask about how long it has taken, and where 97% comes from.
 

The streaming is processed using Kafka and updates and pulls data every day, which then saves this data into a Database and updates in real-time onto a User Interface. The entire code for the system is written in Python.

The project is based around a predictive model for the Australian Horse Racing industry developed through Machine Learning.

The work will consist of getting up to speed via a handoff from another current developer, followed by approximately four weeks of full-time work to iron out the current bugs in the system and get the project fully completed to 100%.


* I'd ask the developer why they're not sticking around

* I'd using this time to not only understand what has been done, and what is still to do, but also to set expectations with the client about how long the remaining work will take.
 


Once this has been completed I would like to maintain a working relationship with the applicant for all things maintenance, bug fixes, development and anything else that could arise needing attention on the system. I have a lot of ideas in the pipeline and envision the job flow to be regular and consistent, so the 4 weeks stated is just going to be the beginning but this is just what is needed at this point in time.


Currently, the issues with the system are based around Apache Kafka for high levels of streaming data and the system not being able to handle the influx of such high levels of data, mainly on a Saturday when the racing volume is so high, so Kafka understanding is important.


* These seem like big problems that ought to have been considered up front. Is there a fundamental scaling problem here? Does the server or the database need to be multi-sharded? If so, it could be a lot of work...

* Are there load tests, apart from Sundays?

* Are there particularly big Sundays? Have these been designed for? 


Currently, AWS is used to host the system, the UI runs off of one server and the database off of another.


* "Currently"? Isn't it a little late to be uncertain of the deployment environment? 

* What guarantees does AWS make around "millisecond" level workloads, particularly with regard to network? Are they sufficient? (I honestly have no idea - would be interested to know the answer)


Applicants will need to be proficient or at least have an understanding of the following technologies:

Python
Django
MySQL
Celery
Celery Beat
Kafka
Angular.js
AWS (Ec2 and RDBS).


* That's a good list.
 



Description of the Company:

I am just a person with a project looking for a contractor based agreement for work.

Job Location:

Remote work would be expected.

Pay:

This will be negotiated upon assessing the applicant, please do not hesitate to apply as I am willing to pay the right money for the right person.


* The right person here is going to be a dev who can scope the remaining work, figure out how far "4 weeks" is from reality, convince the client of the new number and then deliver on that timeframe, being able to deal with an (understandably) impatient client. It's a tall order. Don't under-quote :)
 


Apply:

Please email Ben at ben.k....@gmail.com or contact me on 0415 382 245.


--
You received this message because you are subscribed to the Google Groups "sydneypython" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sydneypython+unsubscribe@googlegroups.com.
To post to this group, send email to sydney...@googlegroups.com.
Visit this group at https://groups.google.com/group/sydneypython.
For more options, visit https://groups.google.com/d/optout.



--

Ben Muller

unread,
Feb 27, 2017, 10:14:13 PM2/27/17
to sydneypython
Hi alang.

Thanks for your response.

You have hit the nail on the hammer.

I am not a technical person and you have therefore pulled apart my job posting with unnecessary ferocity. 

The story is that I hired a developer/Machine Learning expert to complete a project which they said would talk 3 months and would cost a fixed price, it has now taken them 7 months. The project is so close to finished and I do not want to take up any more of their time without them earning more money so we have decided to find someone to come on as a developer and finish the project where their skills are lacking. If you applied for this job you would meet this person and he would conduct the handover. 

I have just repeated what my developer has told me as a job posting and therefore it might not be up to your standards.

Red Flags is a bit of an over exaggeration in my mind, I could have easily posted a bland job posting not mentioning any specifics of the job like most other employers do and make you reach out to me to find out more information and jump through a series of hoops. Instead, I prefer to remain transparent and tell as much as possible.

If you are so concerned about the "red flags" in my posting you would have got in contact with me first to raise these concerns.

My email and phone number are listed below and you still are welcome to get in touch and or apply for the job.

Thank you for your concerns.

Ben.

Alan Green ✔

unread,
Mar 1, 2017, 3:05:10 PM3/1/17
to sydney...@googlegroups.com
On Tue, Feb 28, 2017 at 2:13 PM, Ben Muller <ben.k....@gmail.com> wrote:
Hi alang.

Thanks for your response.

You have hit the nail on the hammer.

I am not a technical person and you have therefore pulled apart my job posting with unnecessary ferocity. 

There was no ferocity. There was bluntness. And you were not the audience.

As I wrote before, I think you're on the level.

The audience were my fellow Pythoneers, some of whom are starting in the industry, haven't been around the software development life cycle that many times, and perhaps aren't yet adept at reading between the lines of a job listing. This is a list for discussion about building software, as much as it is a list for job postings.
 
The story is that I hired a developer/Machine Learning expert to complete a project which they said would talk 3 months and would cost a fixed price, it has now taken them 7 months. The project is so close to finished and I do not want to take up any more of their time without them earning more money so we have decided to find someone to come on as a developer and finish the project where their skills are lacking. If you applied for this job you would meet this person and he would conduct the handover. 

I have just repeated what my developer has told me as a job posting and therefore it might not be up to your standards.

Red Flags is a bit of an over exaggeration in my mind, I could have easily posted a bland job posting not mentioning any specifics of the job like most other employers do and make you reach out to me to find out more information and jump through a series of hoops. Instead, I prefer to remain transparent and tell as much as possible.

This is for you, Ben: I appreciate the transparency. It's clear that your project is in trouble. This is not an unusual situation, but it is a bad one.

In the same spirit of transparency, let me explain why I think this:

You have a developer who has done good work for you, but now finds themselves out of their depth in one particular, critical area of the project. Oops. That happens.

You apparently have estimation problems: 
* Your first developer originally estimated 3 months, but so far the project has been 100+% larger. 
* This developer now estimates 4 more weeks, and also that the project is "pretty much 97% complete". Those numbers don't match. 4 more weeks on 7 month project means you're 87% complete.

Given the nature of estimation, and the context in which it is being done, your expectation of 4 weeks is likely to be very wrong. 

If you take on someone who accepts your estimate on trust, they will likely do good technical work, but fail to meet your expectations. You'll be upset, they'll be upset. It will turn into a bad engagement, despite good work.

I wouldn't be surprised to learn there's another 3-7 months' work here. It would not be good, but also it would not be the first time that a software project has worked out like this.

You need a developer who can reset and manage your schedule expectations based on their own technical understanding of the problems remaining to be solved. Such people are hard to find. Even when someone presents themselves as such, you need to work out whether they have the technical skills to properly take your project through to completion in a timely manner. It will be a lot of work.

I don't want to discourage you from finding the right person. Nor do I want to discourage candidates from applying. But both you and candidates should should be asking many questions of each other. Many more questions than for most positions.

The fact that you're willing to be open about your situation is very positive. I hope your project and your product are successful.
 

If you are so concerned about the "red flags" in my posting you would have got in contact with me first to raise these concerns.  

My email and phone number are listed below and you still are welcome to get in touch and or apply for the job. 

Thank you for your concerns.

For what it's worth, I acknowledge that I could be totally wrong about everything above this line. I'm fine with that, and would be happy to be corrected.
 

--
You received this message because you are subscribed to the Google Groups "sydneypython" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sydneypython+unsubscribe@googlegroups.com.
To post to this group, send email to sydney...@googlegroups.com.
Visit this group at https://groups.google.com/group/sydneypython.
For more options, visit https://groups.google.com/d/optout.



--

David Lyon

unread,
Mar 4, 2017, 7:20:19 PM3/4/17
to sydney...@googlegroups.com
This kind of project is not unusual.

Right now I took over a CAD software project that was 75% complete and the original Developers just reached a point where they were worn out and there was going to be no way for them to complete the project.

When I took it over I explained that the project was actually "So far but so close" meaning that the original Developers were never going to be able to finish it the way that they were working on it.

With a change of direction the project is now coming to completion a few months later and is ready to be delivered to customers.

Sometimes changing the Development Team to a fresh one is sometimes needed to get fresh perspectives.
Reply all
Reply to author
Forward
0 new messages