Author Archives: Kelly Martinez

Tech Interview Tips From The Other Side

Usually I am on the interviewer side of the table when looking at prospective job applicants. But recently I had the opportunity to sit on the other side of the table. Here are some things I learned.

A Good Candidate Interviews the Company

A good candidate interviews you just as much as you interview them. Most interviewers think that they have the upper hand. After all, they are the ones that are offering the job right? I used to think that.

Smart job seekers are not only looking for a career boost, but also happiness in the workplace. At the end of the day I personally care more about team dynamic than that extra $50 a month into 401k.

As a interviewer clearly outline the process

For interviews you are expected to show up on time and jump through whatever hoops or tests they want if you want the job. Pretty standard stuff. However, if you, as an interviewer, don’t clearly outline the process this looks very bad in the candidate’s eyes.

As a candidate it is nice to know that I would have an initial phone interview, an in-person, a meet the staff, etc etc ahead of time. If a candidate finds themselves in a state of not knowing what is happening next and having to adjust their schedule accordingly they will move on, and quickly.

I suppose if you want the job bad enough you would navigate those waters anyway, but it reflects poorly on the organization if the process is haphazard. It makes me think as a candidate “what other areas are not planned out?” and “do I really want to work at such a disorganized place?”. These are both scary prospects as an I.T. professional.

Don’t make it too technical

You should be able to tell from the way I answer questions whether I am qualified or not. To ask some esoteric question that even you had to look up on Google makes you look like a jerk and me uncomfortable (unless that’s the purpose).

Taking notes should rank highly

Some people view a candidate taking or referring to notes as a bad thing. Note taking/referencing is a plus, not a minus in my opinion. Just by the fact that I take notes shows that I’m organized, thorough, care about what you’re talking about, and detailed.

Don’t handle the interview process over the phone

There’s a lot that is missed by facial expression, body language, and mannerisms. You really only get half the experience of what a person is like over the phone.

If I ever have the choice whether to include an interviewer on an interview panel over the phone I would avoid it as much as possible. Also, it bears mentioning that if you have have one of the interviewers conferenced in be sure that they know where the mute button is so everyone doesn’t  have to listen to their dog barking, cell phone ringing, or the UPS man buzzing their doorbell. It’s rude to the other people interviewing and rude to the candidate.

Don’t balk at salary

Give me a number to start. Make it clear. Don’t play games.

There are plenty more but these were the standout issues I came across. I am looking forward to taking these strategies to heart for future hires as, while they seem common sense, aren’t readily apparent.

 

Share and Enjoy

New physics behaviors in UIKit with Xamarin and iOS7

This is a super basic demonstration of the new Dynamics physics engine integrated into UIKit for iOS as done with Xamarin.

To complete this demo you will need to install Xamarin.iOS here: http://xamarin.com (you can download the indie version for free).

To start I created a new single view iPhone project.

To keep it simple all the code is done in the ViewDidLoad() method on the View Controller that gets automatically created. So in the case of the example code below it’s in UIKitDemoViewController.cs.

First thing I wanted to do was change the background color to something different:

 View.BackgroundColor = UIColor.DarkGray;

Then I need to new up my Dynamic Animator class for this view:

var animation = new UIDynamicAnimator (this.View);

Next I need a shape. I chose a rectangle and set the position to upper left, a size of 25f by 25f, and a color of red:

UIView rec = new UIView (new RectangleF (new PointF (20f, 10f), new SizeF (25f, 25f))) {

    BackgroundColor = UIColor.Red

};

I then added the rectangle to my view:

 View.Add(rec);

Now for the behaviors. For this animation I wanted a push behavior. What this does is gives something a “push” along a designated vector. I chose a push mode of continuous to keep it moving and no vector for X but a vector of 1f for Y. This will in effect push the rectangle to the bottom.

UIPushBehavior push = new UIPushBehavior (UIPushBehaviorMode.Continuous, rec);
push.PushDirection = new MonoTouch.CoreGraphics.CGVector(0f, 1f);

Then I wanted the rectangle to stop at the bottom of the view “bounds”. To do this I needed a collision behavior as well which I added below. I also added TranslatesReferenceBoundsIntoBoundary designating the view itself as the boundary:

var collide = new UICollisionBehavior (rec) {

    TranslatesReferenceBoundsIntoBoundary = true

};

To make it interesting I also wanted to create a “bounce” effect. To do this I needed to add a dynamic behavior on the item and set an elasticity:

var elastic = new UIDynamicItemBehavior (rec) {

    Elasticity = 0.7f

};

So now I have a shape, a push behavior to make it move, a collision behavior set to the view boundary, and an elasticity on the shape.

So what’s next?

How about a color change to yellow for the shape when it detects the collision on the bottom?

collide.BeganBoundaryContact += (sender, e) => {

    rec.BackgroundColor = UIColor.Yellow;

};

Last, but certainly not least, I need to tell my dynamic animator about all the behaviors I created.

To do this for multiple behaviors I just pluralize the AddBehavior method:

 animation.AddBehaviors (push, collide, elastic);

That’s it. Now I have a red square that “bounces” off the bottom of the screen and changes to yellow when it hits.

iOS Simulator Screen shot Sep 25, 2013 1.52.10 PM

For your project you’d want to split this out into multiple methods (as in DRY), but over all I hope you get the basics of some of the new things you can do in IOS 7 with dynamic behaviors.

The source code for this project can be found on Github: https://github.com/anthem001/UIKitDemo

 

 

 

 

 

 

Share and Enjoy