I currently have a 15-inch MacBook Pro with Retina display running OS X Yosemite. I also have a Thunderbolt Display (27-inch).
I wish I could buy an open hardware laptop similar to the Novena laptop (https://www.crowdsupply.com/kosagi/novena-open-laptop), but made more for software developers. It would look like a Macbook Pro but have official support for Linux. It would have a 256GB SSD drive, a 64-bit ARM processor, 16GB of RAM, a 15-inch Retina display (touchscreen), wifi 802.11ac, USB 3.0, Bluetooth 4.0, stereo speakers, headphone port, SD card reader, HDMI, microphone and a webcam. My budget would be as much as $3000. I would install Ubuntu 14.04 on it (ideally it would be officially supported and even pre-installed).
I've seen rumors of a new MacBook Air with Retina display, a touchscreen and an ARM processor in mid-2015. It will probably be my next laptop unless someone starts a crowdfunding for an open hardware laptop.
I also have a Chromebook Pixel from I/O 13 but I wish Google would release a new version that's more polished and with better specs. It's actually a fantastic laptop.
MaidSafe - C++ 11/14 open source software engineer (hourly paid) - South Ayrshire, UK (allows REMOTE)
MaidSafe is currently looking for C++ open source software engineers. If you, or someone you know, fit the bill and would like to work at MaidSafe, please get in touch with us: [email protected]
[c++] [boost] [c++-standard-library]
Job Description
What if Bitcoin did useful work like making the internet secure, private and anonymous again instead of SHA256 hash rounds? What if use of the Internet produced value backed by actual server storage and bandwidth resources? What if this new Internet had already seen over three years of cutting edge C++ 11/14 source code written for it, and is expected to launch its first product this year?
This replacement for much of the internet’s services is from a startup called MaidSafe who, in recent months has generated a high activity of interest from the press.
We recently raised over $8m in the first ever cryptocurrency-based round of financing. As we approach product launch, we are looking to strengthen our team with C++ engineers experienced in open source software to help us nail bugs and add that final polish.
Your role will be initially finding and squashing bugs in the MaidSafe implementation libraries, all of which are open source and on github. Once we've established your skills and you have learned your way around the code, you may be required to do such work, as writing demonstration projects using our API, or even writing API documentation.
Leading Boost and ISO C++ committee members have contributed to our code, it is an exemplar of modern practice and is written exclusively in C++ 11! You may also find our Continuous Integration testing dashboard of interest at http://dash.maidsafe.net/index.php?project=MaidSafe.
Skills & Requirements
Mandatory requirements:
- At least 200 days where you sent a commit of C++ code to an open source code repository which we can verify.
- At least 365 days where you sent a commit of anything to an open source code repository which we can verify.
It would be great if you could supply us with a github.com or sourceforge.net or equivalent account for us to have a look through (the more the better).
Good to have:
- A proven track record of submitting quality bug reports to open source issue trackers, preferably with bug fixes. Some links to examples would be great.
- Proven CI configuration experience, preferably Jenkins though Travis and others are fine, although it would be even better if there is a place on the internet displaying evidence of your experience in this.
- Proven experience with unit testing frameworks, preferably Google Test although others would be fine too. It would be very useful to provide some links to test code that you have written.
- Proven experience with writing code for at least two of Microsoft Windows, Linux, Apple Mac OS X, Android, iOS or WinRT. MaidSafe code is expected to run on all of these. Again links to examples would be great.
- Proven experience with writing C++ 11/14 code, especially using the C++ 11/14 STL. Links to examples please!
- A presence on Stack Overflow, where you have asked or answered hard questions and recognised by others for your answers.
- At least a minimum of experience writing C++ which works on Microsoft C++ compiler. MaidSafe code needs to work on Visual Studio 2013, so you would have to constrain your C++ to that feature set while awaiting Visual Studio 2014 being released.
Lovely to have
- Proven experience with code correctness checking tools such as Valgrind, Purify, Clang sanitisers and equivalents. Examples of where you have used them would be great.
- Proven experience with code peer review tools such as Gerrit or equivalents, with links to examples if possible.
- Proven experience with CMake on both Windows and on POSIX, again with examples to links if possible.
- Proven experience in writing and debugging multithreaded code, again any links where you wrote or debugged some multithreaded code would be very useful. As in an interview, we would certainly ask for details on this as the MaidSafe code base is multithreaded.
Ideal to have (don’t worry if you don’t)
Proven experience in the Boost C++ libraries and C++ STL. Examples may include:
- History of posts to mailing lists.
- Stack Overflow answers.
- Books written on C++ theory or practice.
- Your own code that has passed a community review (or even submitted for a review and was rejected).
About MaidSafe
MaidSafe is a small and highly innovative open source technology company based on the West Coast of Scotland. MaidSafe is developing a decentralised and global computing platform
that will fundamentally change how the Internet works for millions of users, delivering privacy, security and freedom for everyone.
How to apply
Please supply us with a list of URLs of evidence showing us why you would be a great hire for us to [email protected], explaining to us context of those URLs where necessary and we will get back to you if we would like to know any additional information.
The hourly rate we pay depends on proven experience, and would range between £13 ($22) and £35 ($60) per hour. If you tick any boxes in the “Ideal to have” section, we may go above the upper limit.
We are also keen on permanent staff and have a great team and employee ownership scheme (not the usual marketing type scheme either; after the Foundation, you are part of the largest shareholding).
Please indicate permanent staff or contract when applying.
C'mon people, are you looking for celebrities or good software engineers? Consider removing all those open-source and book authoring pitching requirements and I might consider applying in case you're as well ready to go above the upper limit without ticking any boxes...
"Celebrities" was my first thought when I read that, too. It seems like the requirements are inverted from what I'd expect: the ability to use the STL effectively and to grok (some) Boost seems almost like basic C++ proficiency to me, while the open source requirements are just nonsense fluff. I'm not sure I understand how prolific contributions to open source projects translates into the ability to work with others or write quality code.
Also the pay seems a bit low. I make more than their top rate, and I'm not working on anything anybody would claim to be world-changing innovation, nor would I claim to be a C++ superstar. I was the first to introduce C++-11 to the very mature C++ codebase, though.
I recently switched to a Nexus 5. First I bought a Nexus 7 to play around Android and it turned out I liked it very much. I decided to switch because many apps I frequently use (Authenticator, Calendar, Chrome, Gmail, Docs, Drive, Google+, Keep, Hangouts, Maps, Play Music, Search, Youtube, etc.) are made by Google and I feel like I'm getting a better experience on Android. I also really enjoy the fact that I can install Play Store apps directly from my desktop web browser. And from a hardware standpoint, I much prefer the larger screen of the Nexus 5.
>I also really enjoy the fact that I can install Play Store apps directly from my desktop web browser.
Totally agree. Very similar to the Amazon "Whispersync" for kindle. I loved stumbling on an app online that looked interesting, click install, and next time I take out my phone it's just there ready for me.
I recently switched to a iPhone 5S from many consecutive android phones, and this is definitely on my list of things I miss.
I think you can actually do that now. Although I believe it syncs everything you buy/get from any device. So it's not as selective where you can just press 'Download' and it goes to the device you choose.
Check out https://tent.io and https://cupcake.io. There's not much going on at the moment because everybody is waiting for the next version of the Tent protocol (0.4), which will be released in a few months.
I am also excited by http://maidsafe.net in the long term, because it replaces the web altogether.
Has tent fixed the massive issues with their protocol? When it first came out, I opened about 30 issues on the repository. They basically let them all get quiet and then closed them without comment. One or two had a bunch, though.
Hi, Steve. Most of the github issues you opened (in the week after Tent 0.1 was announced) weren't "problems" with the protocol, just differences of opinion with our architectural choices. For a variety of reasons that we discussed extensively we felt (and still feel) that hypermedia, microformats, and other preexisting attempts to solve "decentralized social" aren't good solutions to the problems we're trying to solve. A few of the other issues you raised were actual implementation errors (we shipped the initial proof of concept very quickly), and to my knowledge they've all been fixed.
In the first few days after we released the first Tent proof of concept we were swamped with user feedback and a variety of discussions. We addressed many architectural questions in detail from "why not use a custom binary protocol" to "consider using ostatus, microformats" and "Consider not making claims about REST". If you're still interested in any of these topics I'd be happy to explain in greater detail the reasons for our choices.
Tent has evolved a great deal since the initial release. We've discussed most of the reasons behind the choices we made in great detail on Tent, IRC, and during monthly office hours, recording of all are available online.
> A few of the other issues you raised were actual implementation errors (we shipped the initial proof of concept very quickly), and to my knowledge they've all been fixed.
Awesome, great.
The biggest one, in my mind, is the 'one POST per follower per message' problem. The previous stance was, and I realize I'm being a little bit uncharitable with this characterization, "we want people who use the service a lot to have to pay, so we're keeping the protocol inefficient for this purpose." Is this still the way things work?
And yes, while a lot of them do come down to opinion, a service that re-invents the world in this space sends off really bad signals. It's just a different kind of lock-in. Same beef I had with App.net.
> The biggest one, in my mind, is the 'one POST per follower per message' problem.
Yeah, all distributed systems must communicate with their peers. In the worst case this means sending a POST for each message to each subscriber since each subscriber is a different server. This can be optimized by pipelining messages that were sent within the same time window.
In the best case, which is probably the most common, multiple users will share the same host and the protocol can be aware of this and add an envelope that specifies all subscribers on the host with a single copy of the message sent to each host instead of each subscriber. We plan to add this optimization before Tent 1.0.
I think the major issue with Tent was that their development efforts had always been divided between two Tent servers. Tentd, the reference implementation used by self-hosters, and their proprietary multi-tenant server that powers https://micro.cupcake.io. But in a blog post in November 2013 (https://cupcake.io/blog/2013/new-tent-server), they announced that they will stop the development of Tentd and open source their multi-tenant server. The development of https://flynn.io (another Cupcake project) will simplify the deployment of the multi-tenant server. The first preview release of Flynn was announced two weeks ago (https://cupcake.io/blog/2014/flynn-preview-release).
We're actively working on 0.4. The big challenge right now is that a number of organizations are considering using Tent is very large scale deployments for sensitive data, so we're making the transition from move fast and break things to enterprise grade reliability.
This includes everything from a solid protocol validator (future versions of the protocol will have complete validation coverage before we release a reference implementation) and a highly scalable multi-tenant server that large service providers can easily deploy. We're refactoring the server we use for hosting Cupcake users and releasing it under a permissive license in the next few months to make that transition easier.
So it's an exciting time for the core team but there isn't a ton happening on the surface just yet.
Our goal has always been to get Tent to a solid 1.0 after which the APIs could remain unmodified for several years at least (similar to HTTP and SMTP). The tradeoff is that we then need the freedom to break things between versions of the pre-1.0 versions. It's frustrating for early app developers (one of the reasons we don't encourage adoption) but will pay off once we hit 1.0
This is because Tent app developers are waiting for Tent 0.4, which contains several new features (https://github.com/tent/tent.io/issues?direction=desc&labels...). It should come out in a few months. The team behind Tent is currently focusing on https://flynn.io, which they are about to launch. Flynn is important for Tent because it facilitates the deployment of Tent servers.
I wish I could buy an open hardware laptop similar to the Novena laptop (https://www.crowdsupply.com/kosagi/novena-open-laptop), but made more for software developers. It would look like a Macbook Pro but have official support for Linux. It would have a 256GB SSD drive, a 64-bit ARM processor, 16GB of RAM, a 15-inch Retina display (touchscreen), wifi 802.11ac, USB 3.0, Bluetooth 4.0, stereo speakers, headphone port, SD card reader, HDMI, microphone and a webcam. My budget would be as much as $3000. I would install Ubuntu 14.04 on it (ideally it would be officially supported and even pre-installed).
I've seen rumors of a new MacBook Air with Retina display, a touchscreen and an ARM processor in mid-2015. It will probably be my next laptop unless someone starts a crowdfunding for an open hardware laptop.
I also have a Chromebook Pixel from I/O 13 but I wish Google would release a new version that's more polished and with better specs. It's actually a fantastic laptop.