Is Haiku still looking for Developer Contracts?

Hi,

Guess I should probably ask this on the Haiku Inc. mailing list, but as I’m logged in here, thought I’d ask here too - does anyone know if Haiku is currently hiring/open to hiring any developers? I’m asking for myself, as I’m currently looking for something part-time and thought I’d just see if any projects I already like could benefit from the help, but also curious generally as to what’s going on behind the scenes these days, and maybe someone else would be interested in discussing the topic too.

Thanks :smiley:

5 Likes

Hello,

If I recall correctly the Inc. (or more specifically, @leavengood) mentioned that they were considering the details of a development contract, but I’m not too sure how that’s going and whether anything has been decided on yet.

1 Like

The post I mentioned above is here:

With all that said, as I have mentioned one of the Haiku developers reached out to Alexander earlier this year with some terms to take on a contract. It was a big enough ask that it has been hard for us to make a firm commitment but I am trying to resurrect that now.

1 Like

Thanks for that! The “willing to take a bit less pay” bit was where I was hypothetically curious if there might be something suitable for me! :laughing: If not many others feel they can realistically fill that gap right now, given I’m guessing most devs also have a full-time main job.

Regarding the long term development contract, I talked to the developer in question in December 2020, who told me they needed more time to finish some projects at work. I asked again recently and things may have changed and at this point they may not be interested in a long term contract with Haiku. A bit disappointing for the project but obviously we want everyone to make the best decision for themselves. It is not 100% a no, but seems likely to be that.

With that said, @stellarpower, I think we would definitely be interested in some part-time contracts. I am not sure what you want to work on, or for how long, or your experience, etc, but we are definitely interested in the possibility.

I think we would prefer someone with reasonable programming experience, preferably with experience writing C++, and hopefully knows about some of the Haiku APIs, coding guidelines, etc.

One low risk way for both parties might be a two week contract for some set hours (maybe 20 hours a week at a set per hour rate), with some expectation of logging the tasks done in those hours. At the end Haiku, Inc will pay the rate for the hours worked, but if we don’t feel we got enough value out of the contract we may choose to cancel future work.

We are dealing with donated money so we just want to make sure we are getting enough value. With that said I think we all know how development goes and don’t expect miracles, but the criteria will be more strict than maybe we have done for Google Summer of Code. We expect a professional developer not just students learning how to code.

Obviously a big area which could use help is our WebKit port as well as the browser WebPositive, but that might actually be too tough for an initial contract, there are other things to work on too, like improving the package management system or fixing Tracker bugs, etc.

The overall goal will always be to move things forward for a Haiku R1 release. Other developers may have a better idea of what some of the most critical pieces are for that, I am slightly out of the loop. We do a pretty good job in our Trac bug tracker of organizing things, and also users have voted on their most important tickets.

Feel free to email me at my name here at Gmail if you want to discuss things more, I can loop in more Haiku, Inc people as needed.

9 Likes

Maybe a prerequisite for a contract would be a patch or two getting accepted at Gerrit so that the first 10 hours of a contract aren’t just spent on the basics…we kind of have the same requirement for Google Summer of Code. Again I have no idea of your skill level or whether you have done work on Haiku before…

2 Likes

Perhaps they can work on this as a way to fulfill the prerequisite?

Sorry for not responding, jotted down some of what I was going to say but just had something sprung on me I need to deal with, tomorrow and possibly day after too :slight_smile:

There is not any time limit on it, I just wanted to respond fairly fast myself rather than leaving you in limbo waiting for Haiku, Inc people to come out of our 4 week slumber or whatever.

1 Like

Hi,

So, sorry for the long delay, I’ve just had to move flats and the number of problems never seems to stop growing, and then the DNS on my private cloud went down!!

I’ve been working on a CV and am still waiting on some feedback, but I can send that to you shortly if you want to discuss further via e.g. email. To summarise a bit about me, I’m a mature (25) student, so whilst I don’t yet have time in industry under my belt, I’m not a new programmer either; in fact I first learnt to program for real with darkwyrm’s tutorial series as a teenager back in 2009-10, and I have been doing a bit of everything in my own time since then - at some point I’d really like to finish off a number of projects on my disks and upload to github as I’ve probably dabbled in a lot as and when needed like most people, but not managed to tidy up once the job was done :D! I had been dual-booting Haiku day-to-day, back in the R1A1 years, before I moved from XP to linux, and so I’ve used the Be API to make a few demo apps from those tutorials as I was learning C++. I can remember the basics and would hope to get up to speed over a bit of time. I’ve stuck with C++ since then, moving onto Qt for graphical projects under Linux, but doing plenty of theory and terminal work, and I did like ot learn the language inside-out as much as possible. The most significant project I think I undertook was a draft proposal paper, along with implementation, for the standards committee; one thing about me is I am a perfectionist, anddo fixate on the details, so when the way I had designed my coursework for college when I was 19 required something beyond the scope of the language, I carried that forward from there. I had to shelve this hwen I started my degree and haven’t ever really ofund enough time, but it should be on github.

Totally understand regarding value when spending other people’s donated money, you need good results from me or anyone else.

I’m happy to be flexible around how payment would work, or hourly rates, etc. At the very least it’s not a problem in theory - the whole reason I’m looking for some work at the moment is I’m trying to apply for a (small) mortgage, so I need to work out in more detail things like how much I’d need to be earning overall each year, but the main sticking point is having some income that ticks all the boxes the banks will require - as a full-time student, without a job ATM, nearly all the money I have coming in won’t be taken into account. So, the actual pay will probably be less important for me than the flexibility and being able to work remotely whenever in the week I am able to, as I also have PTSD and am trying to work through that at the moment, which means life can be sporadic, and I can focus in bursts a few days at a time - good for programming, less so for office jobs!!!

And as I’d mentioned, I do fixate on the details, I’d hope with developing something like an OS this would be an attractive trait, but I’m cautious about straddling a line between billing by features that need doing and running myself into the ground if this takes me forever to implement, versus simply billing for the number of hours and finding I’ve done some thing in lots of detail but not covered enough ground in general for what you were wanting - I’m happy to hear any input from anyone regarding this.

So yeah, if you’re still interested, hopefully we can work with something, and like you say, something short-term to start with definitely sounds a good idea to me - even if for mortgage purposes I’d need some other more fixed form of employment to evidence, there would be no harm tryin this out on the side to start off with whilst I get some more info and continued looking on that front. And from your end, if you understandably need a ceertain amount of return, I don’t see any reason why it wouldn’t be possible to shift the pricing structure to ensure that I’m inline with that - if you would get a certain amount of code/results/whatever per hour from a full-time and professionally-employed developer, then I’m happy to adjust things to match that ratio, given the circumstances, if that makes sense, and at the very least, for a couple of weeks whilst I can work out exactly what the banks will be looking for, how much time I’ll realistically have each week, etc. etc. It wouldn’t exactly be a bad thing to have on my CV, to say I complted even a modest amount of work on the OS I discovered and tinkered with when I was 14! Plus I can take an Operatng Systems course the year afer next so if I end up learning things beforehand, may be a free 20 credits for later :smiley:

Regarding some preparation work, that’s absolutely fine. I’m already a little bowled-over you’re open to considering, I can imagine several projects where they might not even think of employing someone until they had a good 6 months of pull requests and the such on a voluntary basis. In an ideal world, I’d have loved to have done this already, but other projects have been on my list, so as you say, I don’t mind getting up to speed for free before you can consiuder anything else, and I’ll definitely browse through trac and see what looks like a good starting point, unless anyone has some specific recommendations. A couple have stood out and I’ve noted them down. It’ll take a bit of a while to get a decent development environment set up and I can try some small PRs just to get comfortable with the workflow in e.g. Paladin.

The main thing for me is I’ve been working towards a fully virtualised system using illumos for some time now, and in fact part of the motivation was to spin up alternative OSs like Haiku much more easily, and this would make getting a development box up and running much more organised. I was aiming to knock together a build script for official releases (alpha/beta) and nightlies in order to contribute some images for Haiku upstream that can just be started off the bat, also hoping some solaris folks might wonder and be tempted to give Haiku a whirl.

I’ve been trying to clear some hard drive space this last week, to get this set up on metal finally and start having a proper play with it, so is it alright if I continue with this in the meantime and see how I go, along with unboxing my stuff and some other errands, and then will look to close a couple of tickets and RTFM on style and other housekeeping? The solaris learning curve has been quite steep, but I’m hoping it will pay off in the end, and it should run much faster than my current libvirt under Ubuntu.

But thanks very much, being able to email later in more detail would be brilliant! I’ll continue to get on with what I’ve mentioned, does it make sense to leave this thread open in the meantime so anyone else may comment if they want to add anything or any comments, and then if it suits I’ll email you with some updates in a week or so, depending how this hypervisor stuff goes, and get looped in to discuss?

Thanks very much :smiley:

Hi,

If you are a student, one way to handle it is to apply for Google Summer of Code which will happen in a few months (assuming we get selected this year). This is something we know how to handle on Haiku side, and the nice thing about it for us is that Google would be paying for it.

If things go well during GSoC, we could then continue after it with a contract funded by Haiku inc.

On our side I think this would be the easiest thing to set up. Would it work for you?

More about summer of code:


Thanks, I did look into this, the main thing for me is the timings; as a sort of internship, it definitely wouldn’t be considered by the banks, and as I would need to evidence something like three months’ pay then that puts everything back to the end of the year, which is not ideal for me. If it were the case of doing a couple of things at the same time then it may be a workable option, depending when I hear back from some other places I had asked, but I totally understand that from your end this makes more sense.

For future lurkers… I did a survey recently (80+ responses), and these are the top things to likely be considered based on community feedback (in no specific order)

  • Working with Pulkomandy on improving webpositive / Haiku’s webkit fork (big)
  • 3d Hardware acceleration via a drm/dri port (big)

Those two things are what most people say are the “most lacking” today. (and just so happen to be really complex projects… go figure :slight_smile: )

5 Likes

The most complex part of this is fighting with Linux headers that are the mess. It redefine a lot of compiler-specific declarations. I plan to try at least compile some DRM kernel drivers. My previous 2 attempts were failed, but I didn’t spend enough time yet. I will try again when I have time.

9 Likes

WebPositive definitely really important, personally I loathe web stack/HTML so probably wouldn’t be best placed for most of the work, however the acceleration sounds an interesting area. I’ve just got the solaris machine installed and one thing I was hoping to do is use waypipe so that I could run wayland sessions in the VMs and log in remotely - currently I believe VNC is offered but this presumably requires emulating a graphics card, running X, compressing that out and putting over a socket, etc. etc. There’s a tool called waypipe that can pipe the Wayland session and (I believe) use the local OpenGL/graphics accelleration to do the actual rendering, and this can simply be accessed over SSH so it seems ideal for remote logins and a basic test worked beautifully between two arch machines. First task is to get this working inside the zones whilst logging in remotely but I’d be interested eventually in trying to port wayland to solaris so I can view on the same device. So, know you said really complex XD, but at the least I’d have an investment in looking into something like this, separating out the linux-specific headers and maybe making it more POSIX-friendly if this would help build on illumos (or BSD first - actually I should look and see what ports they have already). Anyway, I saw a bug relating to the RTTI in GCC2 libraries, this is very similar to the standards proposal paper I wrote a while ago so thought after trying a few toy bugfixes to get started this might be a good place to look into.

1 Like

I am going to start getting back up to speed on WebKit and WebPositive and related things, though this week is quite hectic as my son’s birthday is soon and we are getting ready for that, plus work, etc. But I at least have the motivation. But man, what a codebase…

Regarding stellarpower and a contract, I know people want GPU acceleration and better video card support in general, but I think there are many other lower hanging fruit which could really improve Haiku without being some intense years long project. I think those are the things we should focus on for now, both for volunteer developers and contractors. Though since contractors are being paid, they can work on some of the things volunteers might not want to. It doesn’t mean these are terrible, drudgery tasks, just maybe more annoying or detail tasks, which maybe would be good for stellarpower based on your mini biography above.

But like I said in my first post here, please try to pick a bug or two to tackle, get a Haiku development system going, and get some patches accepted in Gerrit. Also maybe start browsing tickets in Trac and build up a list of some of the bugs that interest you, or bugs where your past experience might help in solving. Don’t worry too much who owns the bugs, you can always post a comment and change ownership if you start working on something. Though I do know a whole lot are under “nobody”, which means what it sounds like. I think it is safe to say there are bugs and features to work on in just about every possible area of computing. Haiku is a great environment to work on a wide variety of programming tasks!

To be honest my main concern right now for having a single contractor is getting changes reviewed in Gerrit quickly, especially as that contractor gets up to speed. Eventually they will know their way around and can also help review work from volunteers, but I have some concern about patches sitting around too long. The contractor, whether stellarpower, or someone else, may need to structure their work so that changes in Gerrit can sit a week or so until volunteers have some time on the weekends. This may be okay, given the relatively slow pace of Haiku and currently no concern over urgent “production” bugs. But it should be taken into account and a contractor should not be upset if changes take some time to get reviewed. Just wanted to lay that out :smiley:

1 Like

Hey,
Haiku doesn’t have wayland nor X11, we have our own server called app_server that is responsible for drawing applications, drawing fonts etc, we also have a html5 remote desktop for that but it still is kind of buggy.
Not sure why vnc would require X11 (except maybe in the running the vnc client on some application server sense)

Personally I think tasks like a resumeable app_server (applications reconnect after a crash) or the html5 client getting a second app_server instance and improving that client might be worthwhile tasks for a contract,
Perhaps also multi monitor support.

2 Likes

I wouldn’t say that of WebKit. There are a lot of small tasks that can be done and that are not complex at all. Starting with the most boring thing: watching WebKit repository, merging the changes from time to time, and fixing the build. This does not need any advanced skills. But currently I’m the one doing that, and I can only spare time for it once every month or so. Which means I spend a weekend merging things, and then I have no time to do anything else. If there was someone else doing this work, I could focus on the next step, maybe, upstreaming our work to WebKit to make this whole process easier.

Anyway, the main blocking thing for WebKit is not WebKit related at all. We need to release beta 3 and update the buildbots so I can ship a new WebKit release with many already done bugfixes. This (combined with leorize’s and nielx’ work on the HTTP APIs) would already solve several of the problems with the current version.

After that, there are still a lot of not particularly difficult things to do. WebKit is big, sure, but the parts we are touching aren’t all complex.

4 Likes

Hopefully we can hire a developer to just do this!

You may want to try with OpenBSD or DragonFlyBSD’s versions of the DRM drivers. They are older than upstream Linux, but they also mostly use BSD or BSD-like APIs directly, so you may be able to lift a lot of code from the existing BSD compatibility layer, or at least get a handle on things faster.