Main Menu

Programmer/Tester

Started by livinded, October 08, 2008, 03:38:51 AM

Previous topic - Next topic

livinded

I've been programming for about 6 years and doing it professionally for the past three. I've contributed to many open source projects with code, documentation, testing, filing bug reports, and handling releases. I'm experienced with the following languages:

C
C++
PHP
Ruby
BASH
AWK
Java
ia32 assembly

I haven't done much in the way of game development or graphics work, but it's something that I am interested in and hoping to get more involved in. My primary systems are Linux and FreeBSD based though I can install Windows in a virtual machine, run in wine, or if it comes down to it, install windows on a spare machine. Most of my work revolves around security and web development and thus I am extremely security conscious.

I think that it is important to test early and test often in order to remove as many bugs as possible from the releases. Unit tests should be performed to test end cases where simple off by one errors may turn out disastrous if missed, as well as regression tests after code commits to make sure that code checkins are not breaking the code base. I've done playtesting in the past for a few games and written test harnesses for various code that I've written and have decent amount of experience with testing and handling bug reports.

I have a lot of experience with automation and while I am not experienced with game development, feel that I could be a useful asset to the team. Ultimately what I'd like to do is bug wrangling and small feature implementation to get started so that I can gain experience, then become a much more productive member of the development team. If you have any questions or would like more information please contact me.

Thank you.

LennardF1989

#1
Welcome and thank you for the interest.

I see you are experienced in C++ and Java, which are both Object-Orientated and more or less equal to UnrealScript.

Though, experienced is a large word, since I'm experienced in those languages as well, could you give us some examples you wrote in those languages? A portfolio would be very nice as well.

We (as in, the team) will check it out and see if we could make up an appropiate test for you.

Lennard
Lead Programmer

Edit: Just some questions

Which time-zone do you live in?
How's your timetable, will you have time to dedicate to learn UnrealScript and code for us?
And if so, would you mind having quite big tasks as adding level interaction, inventory system, whatever?*

* We (usually) don't work with deadlines, so don't worry about that. A big task will do a lot of good to gain experience in game programming, as I expect UnrealScript will look familiar to you.

I'm asking because most of the basics are done, only thing we need to finish them is some animations so we can add the final things. After that only the big things like the ones above are left behind, even though, most already have a start. Besides, there isn't much which can be intensively bug-tested. So unless you answer the last two of the above questions with yes, you are at the right place. If not, well, then I'm afraid we can't do much for you (or you for us other way around) and we will recommend you to try again in 6 months or so.

livinded

I'm on pacific time (GMT -8) and have a fairly busy schedule but make time during the week for getting in my hacking and reading. My weekends are generally pretty busy and try to get time in for hacking when I can but it's really just dependent on what's going on. I'm going to school full time and working, but should have at least an hour (usually a few) a day to hack at code or read or whatever so depending on how large of a standard library unreal script has and how similar it is to C++ and Java I should be able to pick it up fairly quickly. I'm not opposed to large tasks it just may take a bit of time to get familiar with unreal script and get going on it having never used it before.

I don't have much code lying around written in Java or C++ other than examples from books and school work as they aren't languages I use often for my personal projects. The school work is nothing special and most of the other stuff is just copied out of books or exercises that I've done while learning. I'd be happy to interview or write up some code to show that I actually am competent if you'd like since I really don't have anything to show. Most of the code I've done professionally is in PHP, which I can't release, and most of my personal work is in C and Ruby for just small projects I've written for random hacking.

LennardF1989

Thanks for the reply.

In case more we need to know more, we will post in this topic again. We (the team) will be discussing your application internally.

Again, thank you for the application! You will hear from us soon (also through this topic).

Lennard

frvge

#4
int dosomething(int x, int y) {
  int i=y;
  int z=0;
  while (i > 0) {
     for (int j=0; j<x; j++) {
        i--;
     }
     if (i>=0) {
        z++;
     }
  }
  return z;
}

Really simple example: what does this, and how would you test it? What are the flaws in the design of this algorithm, assuming it does what it does according to this, and how can it be adjusted to not have these flaws? You don't need to code the adjustments. The example should be done without compiling the code.

Also, do you have experience with networking?

edited: fixed unwanted bug... silly me.
Quote from: savior2006SCDA has more bugs than a rain forest.
Quote
Treat your customers with respect you make more customers. Treat your customers like pirates, you make more pirates.

livinded

This is a division function which divides two integers, y by x. The major flaws in the design of this algorithm are that it only works with positive integers and that it allows division by zero which should always be undefined. To fix this first I would add a check to the top to see whether x is zero, throw and exception or do some form of error handling depending on the language but force the function to return as it should not be able to continue. Then absolute value both x and y and proceed normally. Finally before returning z, check to see whether x and y are negative, one is negative, or neither are negative. If only one is negative multiple z by -1 and save it back in z to change the sign. Then allow z to be returned.

In all reality however this is still not a great solution because there are many, much more efficient ways to do this and most architectures, if not all, have built in opcodes for handling division.

I'm not entirely sure what you mean by networking, however I've done a fair amount of work with the C Sockets API (C++ uses this also unless you are using a 3rd party library). I do have some code I've written that does network communications (both server and client). I've never written Windows socket code but as far as I know the only major difference is that you must make the call to winsock and there is no fork() so you need to either use threads for handling multiple connections or whatever Windows's semi-equivalent method of spawning a child is.

frvge

All correct. Wasn't that hard, right :).
Quote from: savior2006SCDA has more bugs than a rain forest.
Quote
Treat your customers with respect you make more customers. Treat your customers like pirates, you make more pirates.

frvge

I see you're online right now. Most (if not all) of the coding staff is ok, but for democraticness, we need a few more votes. Shouldn't take long.
Quote from: savior2006SCDA has more bugs than a rain forest.
Quote
Treat your customers with respect you make more customers. Treat your customers like pirates, you make more pirates.

frvge

Quote from: savior2006SCDA has more bugs than a rain forest.
Quote
Treat your customers with respect you make more customers. Treat your customers like pirates, you make more pirates.