I realize that this might be a duplicate question but this question is very specific to my skill set.
I’d like to join an open source software project. I’m an professional software developer and graduate student (Master of Science in Software Engineering) and professionally (in my day job), I work with ASP.NET, ASP/VBScript and SQL Server.
I recently took my first graduate course and the course introduced me to MinGW, Cygwin and GCC. This opened my eyes to the power and greatness of open source software. I’ve always respected Firefox and Subversion — the big names — but that gave me greater insight.
I want to join a project that I can be productive in but yet can learn in. I’d like the project to be early on in development but showing promise (if it fails or is discontinued, I’ll find a new one). I’d prefer the project to be in the Linux community but with the expectation that it will work on Windows, Mac OS X and Linux.
The following are the technologies that I’m familiar with.
- .NET 2.0, 1.1
- SQL Server
- SQLite
- Cocoa
- Cocoa Touch
- MySQL
- Mercurial
- Subversion
- Cygwin
- MinGW
- GCC / GDB
IDEs
- Visual Studio 2005/2008
- NetBeans
- Xcode
- Notepad 🙂
Languages
- C#
- VB.NET
- C++ (barely)
- Objective-C (Preferred)
- C (Preferred)
- JavaScript
- HTML / XML / etc.
I realize that this question is somewhat subjective but this answer is going to be best suited to what I want in a project. I’ll update this post when I get questions to guide what I’m looking for.
Update: I’ve still not found a project that might fit me. The projects previously mentioned, MariaDB and Mono, are both good choices, but they are a bit more mature than I’d be comfortable with.
Also, I do realize that there is some politics when joining a project. But the nice thing about open source is I can start participating without being a full (or even 1/2) “member” of the team. Just to start learning the codebase and making a contributions to the core team… That would be enough for myself.
My recommendation based on your skill set would be working with multiple opensource projects. You have experience with C using both mingw and MSVC. Use that knowledge to help with native porting with libraries that only compile using mingw or only compile using MSVC. This contributes to the overall cross platform nature of the libs and gets you familiar with them. Once you are familiar with them, you can help to expand functionality. This would allow you to learn and contribute at the same time. There are quite a few libs so I won’t g into a big list. I will mention MySQL/MariaDB because I know these don’t compile nicely under MSVC from experience. Anyway, my 2 cents….