<?xml version="1.0" encoding="iso-8859-1"?>
<feed version="0.3"
xmlns="http://purl.org/atom/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
>
<title mode="escaped">Personal Blog</title>
<link rel="alternate" type="text/html" href="http://www.wasabiflux.org/blog"/>
<modified>2007-02-13T16:08:55-08:00</modified>
<author>
<name>WasabiFlux</name>
<url>http://www.wasabiflux.org/blog</url>
</author>

<entry>
<title mode="escaped">Return of the Server</title>
<author>
<name>WasabiFlux</name>
</author>
<link rel="alternate" type="text/html" href="http://www.wasabiflux.org/blog/archives/2007/02/index.html#e2007-02-13T16_08_55.txt"/>
<id>http://www.wasabiflux.org/blog/archives/2007/02/index.html#e2007-02-13T16_08_55.txt</id>
<issued>2007-02-13T16:08:55-08:00</issued>
<modified>2007-02-13T16:08:55-08:00</modified>
<created>2007-02-13T16:08:55-08:00</created>

<content type="application/xhtml+xml" xml:lang="en" xml:space="preserve" mode="escaped">
<![CDATA[
As you may have noticed if you tried to visit over the weekend, my server was
down. On Friday evening, its power supply blew in a clap of electricity and
the smell of burned electronics. I didn't have a suitable replacement power
supply, so I had to wait until today to get the replacement. It's now
operating well, and this power supply is certainly durable enough to last as
long as I need it to.
]]>
</content>

</entry>
<entry>
<title mode="escaped">Apple Interview, Round 3</title>
<author>
<name>WasabiFlux</name>
</author>
<link rel="alternate" type="text/html" href="http://www.wasabiflux.org/blog/archives/2007/02/index.html#e2007-02-06T23_39_00.txt"/>
<id>http://www.wasabiflux.org/blog/archives/2007/02/index.html#e2007-02-06T23_39_00.txt</id>
<issued>2007-02-06T23:39:00-08:00</issued>
<modified>2007-02-06T23:39:00-08:00</modified>
<created>2007-02-06T23:39:00-08:00</created>

<content type="application/xhtml+xml" xml:lang="en" xml:space="preserve" mode="escaped">
<![CDATA[
As I posted before, my third interview with Apple was a phone interview with
an engineer from the Java team. Specifically, this engineer works on the
framework, OS X to Java bridging, look-and-feel, and similar "neato" stuff. As
such, I was expecting the interview to be Java-heavy, and also to focus on my
JNI experience with the Summer of Code. It turned out that my Summer of Code
project was so interesting to the interviewer that he had someone else from
the Java team, a tech lead, call me to discuss the project - either that, or
they didn't believe I really did what I said, and they wanted to grill me to
make sure I wasn't lying.<p>
I managed this interview better than my last one. My mind wandered less, and I
had practiced answers to questions I knew I was going to be asked. I haven't
put together a transcript for this interview, and I don't know if I will. I'll
list some of the questions asked, and maybe I'll write a transcript from my
notes later.<p>
<ul type="disc">
<li>Tell me about the experience you have in writing in Java, specifically
your OpenGL game engine.
<li>Tell me about your experience using JNI.
<li>Now some more basic questions: could you tell me what the difference
between a set and a list is?
<li>What would a linked list be good at that an array wouldn't be good at?
<li>What is the level of complexity for lookup and insertion for: a hash
table, binary tree, and linked list.
<li>How would you get two threads to deadlock?
<li>Is there an advantage to running a multithreaded application on a
single-processor computer?
<li>Tell me about different kinds of locking structures.
<li>What does the Java <tt>synchronized</tt> keyword do?
<li>What is the difference between an abstract class, a concrete class, an
instance, and an interface?
<li>Are you familiar with virtual methods in C++? Is there an analogous
structure in Java?
<li>What is the difference between a checked and unchecked exception?
<li>What is your Objective-C experience?
<li>What's the mechanism to return values you no longer care about in Obj-C?
<li>How much experience do you have with Swing?
<li>What are some design patterns used in Swing?
<li>What are some design patterns in general?
<il>How and when do finalizers get run in Java?
<li>Referencing the SoC project again - did your JNI interact with the garbage
collector? Did that factor into your design at all?
<li>Tell me more about the design you used in your JOGL game.
<li>Why didn't you use Java3D?
</ul><p>
At this point he asked if he could have one of his colleagues call me - he
mentioned the colleague's first name offhand. While I waited for the call, I
did some Googling and quickly found the guy he was talking about, a tech lead
in the Java team. This person called me and asked me questions about my
Davinci project for twenty minutes. He especially focused on how I dealt with
interactions between the threads, and I opened up (an older version of) the code and took him
through a portion of the callback sequence.<p>
Now, I wait. I have a feeling this is it - I think I would match best in the
Java team. If I measure up, I hope they let me know quickly so I can stop
being anxious. If I don't, maybe they'll kick me over to yet another
department, or maybe they'll realize that this is my best chance, and let me
go. I hope for the first result, because I'm feeling excited to work on the Java
team - the other two interviews didn't give me that feeling.
]]>
</content>

</entry>
<entry>
<title mode="escaped">Third Apple Interview Complete</title>
<author>
<name>WasabiFlux</name>
</author>
<link rel="alternate" type="text/html" href="http://www.wasabiflux.org/blog/archives/2007/02/index.html#e2007-02-06T13_36_44.txt"/>
<id>http://www.wasabiflux.org/blog/archives/2007/02/index.html#e2007-02-06T13_36_44.txt</id>
<issued>2007-02-06T13:36:44-08:00</issued>
<modified>2007-02-06T13:36:44-08:00</modified>
<created>2007-02-06T13:36:44-08:00</created>

<content type="application/xhtml+xml" xml:lang="en" xml:space="preserve" mode="escaped">
<![CDATA[
I've finished my third interview with Apple, which turned out to be a double
header. I'm still processing the conversations in my mind, but I'll update
here once I've got it all figured out. Looking at my server logs, I have a
feeling someone's eager to see my thoughts...
]]>
</content>

</entry>
<entry>
<title mode="escaped">Apple Interview 3 Approaches</title>
<author>
<name>WasabiFlux</name>
</author>
<link rel="alternate" type="text/html" href="http://www.wasabiflux.org/blog/archives/2007/02/index.html#e2007-02-05T22_49_35.txt"/>
<id>http://www.wasabiflux.org/blog/archives/2007/02/index.html#e2007-02-05T22_49_35.txt</id>
<issued>2007-02-05T22:49:35-08:00</issued>
<modified>2007-02-05T22:49:35-08:00</modified>
<created>2007-02-05T22:49:35-08:00</created>

<content type="application/xhtml+xml" xml:lang="en" xml:space="preserve" mode="escaped">
<![CDATA[
My next phone interview with Apple is tomorrow morning. I was originally going
to be interviewed by a manager from the Java team, but today I found out he
can't make it. Instead, I'll be interviewed by an engineer in the
department. I think I've been able to find out enough about this new
interviewer to make a strategy, but I'll have to see how everything sounds
when he calls tomorrow.
]]>
</content>

</entry>
<entry>
<title mode="escaped">Onward with Apple</title>
<author>
<name>WasabiFlux</name>
</author>
<link rel="alternate" type="text/html" href="http://www.wasabiflux.org/blog/archives/2007/01/index.html#e2007-01-30T20_58_48.txt"/>
<id>http://www.wasabiflux.org/blog/archives/2007/01/index.html#e2007-01-30T20_58_48.txt</id>
<issued>2007-01-30T20:58:48-08:00</issued>
<modified>2007-01-30T20:58:48-08:00</modified>
<created>2007-01-30T20:58:48-08:00</created>

<content type="application/xhtml+xml" xml:lang="en" xml:space="preserve" mode="escaped">
<![CDATA[
I had been thinking that my last interview with Apple didn't go so great. It
wasn't especially bad - I tried not to give any "bad" answers - but the
interviewer kept talking about my passions, and I didn't give myself the
impression that I was answering very passionately.<p>
Despite that, early this morning I received another standard interview
scheduling e-mail from a different college recruiter than the one I had been
dealing with. The e-mail stated that "several members of Apple's Development
team" would like to interview me, as opposed to the last e-mail which
specified a single department. I was happy that they were still interested in
me, but it seemed like they weren't impressed enough to accept me very
quickly; rather, they wanted to bounce me around to different departments to
find one that wanted me.<p>
Later today I saw I had a voicemail. It was from the recruiter that had
e-mailed me, and he called to get in contact with me to arrange this
interview. He sounded more interested in talking to me than any other contacts
have been, and he referenced an "opportunity in the Java team, in the
development technologies division of software engineering." I don't know if
this means they've found a place they'd like me to be, or if they're still
tossing me between departments to see if anyone will take me.<p>
I'll get in contact with this guy and see what he has to say. Hopefully
they'll make a decision soon, and I can be done with interviews.
]]>
</content>

</entry>
<entry>
<title mode="escaped">Apple Interview, Round 2</title>
<author>
<name>WasabiFlux</name>
</author>
<link rel="alternate" type="text/html" href="http://www.wasabiflux.org/blog/archives/2007/01/index.html#e2007-01-22T17_47_13.txt"/>
<id>http://www.wasabiflux.org/blog/archives/2007/01/index.html#e2007-01-22T17_47_13.txt</id>
<issued>2007-01-22T17:47:13-08:00</issued>
<modified>2007-01-22T17:47:13-08:00</modified>
<created>2007-01-22T17:47:13-08:00</created>

<content type="application/xhtml+xml" xml:lang="en" xml:space="preserve" mode="escaped">
<![CDATA[
Today I had my second interview with Apple for an internship position. This
interview was over the phone, with Jeff Michaud from the Mac OS X Server
department. The interview wasn't as technical as I thought it would be - it
wasn't like the IBM technical interview. It was more like my first IBM
interview, and my first on-campus Apple interview. I reconstructed the
interview from memory and notes. Here's the (grammar-corrected) transcript; if
you want an accurate transcript, remove some punction, add "umm", "basically",
or "kind of" every three or four words, and make some sentences run-on:<p>
<dt>
Can you tell me a little bit about your passions, and how that might relate
to Apple?
<dd>
I like hacking, that's the most fun for me - I like developing new things.
Right now my focuses are on networking and languages - two separate focuses. I
enjoy anything related to new computer stuff, anything cutting edge, or
technical and, uh, geeky, you could say. I enjoy running my Linux fileserver.
It provides services to a small group of friends on the internet. Basically, I
like the practical side of computer science.
<dt>
So you mentioned a little while ago that you like hacking. So first of all,
what do you mean by hacking?
<dd>
The, uh, "proper" definition of hacking - writing code to do things, not the
network cracking type of thing.
<dt>
Okay, not cracking, hacking. Yeah, everyone has their own idea what hacking
is, I wanted to figure out what yours is. Can you talk a bit about some cool
hacks you've done?
<dd>
One of the hacks that I liked was: at my last job, a big project I had was to
write a wrapper for an application that already existed, to encapsulate
everything in an archive. We had, basically, a big set of files in directories
for client data, and I had to have that all archived into a single archive and
be able to extract individual files on demand, without modifying the existing
application. I wrote a wrapper that did some hacking calls to the main
application, and it pre-extracted the archives and made sure they got handled
correctly at the right time.
<dt>
So this application was a Linux app?
<dd>
This was a perl script, actually, running on a web server.
<dt>
So you app was a perl script. What was the existing app?
<dd>
Uh, the existing app was also a perl script.
<dt>
So you mentioned your application made calls into the existing application?
<dd>
Yeah, it was through HTTP. The wrapper used the main application through HTTP
POST requests. The user would access the wrapper, which would find their data,
dearchive it into a sandbox, the main app would take the data from the sandbox
and process it, then when it was done the wrapper would put it back into the
archive.
<dt>
Are you drawn more toward desktop development or web development?
<dd>
I don't so much enjoy web development. The stuff I was doing at my last job
was okay because it was backend stuff, but I prefer desktop development.
<dt>
What interests you about desktop development?
<dd>
Well, I'm not completely crazy about Perl, or designing layouts in HTML. I
like object-oriented programming, so things like Java, Objective-C, and C++
excite me a little more.
<dt>
It sounds like you've done some Objective-C and Cocoa. Can you talk about
that?
<dd>
The first thing I did with Objective-C and Cocoa was to develop a chat client
for the SILC protocol. <div id="thoughts">[Here I explained once again the idea behind SILC Aqua.
I had to explain how SILC worked - that it was similar to IRC.]</div>
<dt>
Had you done any Cocoa before that?
<dd>
Nothing more than tutorials.
<dt>
And since then?
<dd>
The next project I worked on was a game. Two years ago, I had a class where,
in a group, I created a 3D game engine in Java. After that, I decided to port
it to Cocoa, as a project to help me learn Cocoa. I worked on porting that for
two months, until the Summer of Code came along and I stopped working on the
engine to devote time to the Summer of Code.
<dt>
Did the game rely on any Java graphics libraries?
<dd>
Yeah, we used OpenGL through JOGL, a library of native bindings for OpenGL for
Java. I was able to directly covert a lot of that code to the C calls for
OpenGL.
<dt>
I'm guessing you haven't done any more Cocoa since then?
<dd>
No, I haven't.
<dt>
Before that, did you use Java or C++, or another language?
<dd>
For two years before that I used Java, because that's what my school was
teaching. Before that I used C++.
<dt>
In terms of features of the languages, for example Java versus Objective-C,
what were some things about Objective-C that you had to adapt to?
<dd>
The biggest part was the memory management. I had to figure out the
conventions for retaining and releasing objects, as opposed to how I *didn't*
do it in Java, since it was garbage collected. Also, learning the different
framework, the class hierarchy. But the ideas were really similar.
<dt>
What about Objective-C and C++?
<dd>
C++ is kind of like Objective-C in that it's based on C, but C++ isn't a
proper superset of C like Objective-C is. And C++ isn't an object-oriented
language, it's a language with object-oriented features, and it's...
different. There are differences, like, no class variables, so that makes it
harder to make, say, a singleton, and the multiple inheritance thing too.
<dt>
What about it?
<dd>
C++ has multiple inheritance, Objective-C... maybe I'm confusing myself, I
think Objective-C only has single inheritance, right?
<dt>
Uh, you tell me.
<dd>
I'm pretty sure Objective-C only has single inheritance, unless I confused
myself. In that game project, I was converting from Java, so the classes were
already laid out to not use multiple inheritance. I've never used multiple
inheritance in Objective-C, in any case.
<dt>
Yeah... it's always fun switching between languages, huh?
<dd>
Yeah...
<dt>
You have a section on your resume about system administration, let's talk
about that. It says here you managed Redhat server, and other linux servers.
Have you worked with Mac OS X Server at all?
<dd>
I used it for a short time several years ago when 10.2 was new. That was
before I started getting into Linux. I used it for about 4 months on my
Powermac 9500.
<dt>
Have you done any development of any of the services you listed here, or any
other traditional network services? Have you worked in any of those open
source codebases before?
<dd>
No, I haven't. The closest I got was writing an HTTP caching proxy for a class
last quarter, but I haven't worked on any open source code bases for any of
the major servers or clients.
<dt>
It sounds like you had some experience with at least one chat protocol, with
your chat project. Any other protocols you're more familiar with than others?
<dd>
Well, HTTP is fairly simple. I did write another chat client for a friend's
very simple chat server a long time ago in Java. I've mostly done just a lot
of HTTP work in Perl, Java, and C - and a little bit of SMTP.
<dt>
Talk about SMTP for a minute, what have you done with that?
<dd>
In working with my Linux server I've used telnet to play around with sending
mail messages a lot, and in my networking class last year, I had to write an
SMTP client to connect to a mail server, and send some preset mail.
<dt>
Was that in Java?
<dd>
That was in C.
<dt>
Where would you rate yourself in terms of your skill in different languages:
Java, C++, Objective-C, maybe Perl.
<dd>
Hmm... I'm pretty good at Java, so I'd say 8 or 9 out of 10. C and C++,
probably 7 out of 10. Objective-C, maybe somewhere between a 6 and 7, just
because I don't have a whole lot of experience with Cocoa; and Perl, depending
on what I have to do with it, maybe 7?
<dt>
So you have one more year of school after this year. What do you see right
now, looking forward, what you want to do with your career, your education,
your passion? Where do you think you can make a difference, contribute, what
sort of technologies, areas of the industry?
<dd>
<div id="thoughts">[I don't even want to recall my answer to this part. Let's say that I stumbled
through it.]</div>
<dt>
And is there anything specific about Apple that draws you in, or gets you
excited?
<dd>
I've been using Macs my whole life; I mean, I had never used Windows until 4
years ago, I've basically loved Macs my whole life. The thing I like most
about Apple is that everything is so elegant, all the interfaces are great,
and that's sort of my weak point, so to work somewhere that there's
motivation, and the experience to create great user-friendly interfaces, I
like that a lot.
<dt>
So, you say it's your weak point, so it's obvious you haven't done a lot of UI
design, but it's an area where you want to get more experience.
<dd>
Yeah.
<dt>
We have a couple minutes left, do you have any questions about Apple, or
anything you want to ask me?
<dd>
I know how "secretive" Apple is about what they're working on, but if I were
to work there this upcoming summer, what type of things could I be working on,
possibly?
<dt>
<div id="thoughts">[Here he described what his group, the OS X Server group, works on. Nothing
you couldn't find if you found a job description for a position in that
group.]</div>
<dd>
Okay, that sounds good. I think that's all I need to ask.
<dt>
Okay, cool. So, we're talking to a number of people, what'll probably happen
is your University Relations contact will be back in touch with you, and we'll
take it from there.
<dd>
Okay, great.</dd><p>
Then the interview was over. Looking back on my answers, I don't know if I did
as well as I had hoped to. I guess we'll see in the near future.
<link rel="stylesheet" type="text/css" href="/blog/interview.css">
]]>
</content>

</entry>
<entry>
<title mode="escaped">Apple Interview Scheduled</title>
<author>
<name>WasabiFlux</name>
</author>
<link rel="alternate" type="text/html" href="http://www.wasabiflux.org/blog/archives/2007/01/index.html#e2007-01-18T19_08_23.txt"/>
<id>http://www.wasabiflux.org/blog/archives/2007/01/index.html#e2007-01-18T19_08_23.txt</id>
<issued>2007-01-18T19:08:23-08:00</issued>
<modified>2007-01-18T19:08:23-08:00</modified>
<created>2007-01-18T19:08:23-08:00</created>

<content type="application/xhtml+xml" xml:lang="en" xml:space="preserve" mode="escaped">
<![CDATA[
It's been over a month since I was told that I'd be proceeding to the next
level of interviews with Apple. Today, after my IBM interview, I e-mailed my
university contact at Apple to inquire about an interview. Very quickly, I
received two e-mails back from different people, thanking me or following up,
and suggesting a time. I confirmed my phone interview for Monday, January 22,
2007 from 2 PM to 2:30 PM. I'll make sure to update the blog once that
interview's complete.
]]>
</content>

</entry>
<entry>
<title mode="escaped">IBM Technical Interview</title>
<author>
<name>WasabiFlux</name>
</author>
<link rel="alternate" type="text/html" href="http://www.wasabiflux.org/blog/archives/2007/01/index.html#e2007-01-18T19_04_42.txt"/>
<id>http://www.wasabiflux.org/blog/archives/2007/01/index.html#e2007-01-18T19_04_42.txt</id>
<issued>2007-01-18T19:04:42-08:00</issued>
<modified>2007-01-18T19:04:42-08:00</modified>
<created>2007-01-18T19:04:42-08:00</created>

<content type="application/xhtml+xml" xml:lang="en" xml:space="preserve" mode="escaped">
<![CDATA[
Today was the day. I had my long technical phone interview with IBM. It was so
long that I'm still mostly braindead, and it's too long to write any sort of
transcript from memory like I did for the first Apple interview, but I'll try
to summarize it here.<p>
The interview questions were based on how I had scored my skills on the
application. Most were asked over the phone; some involved code or had
complex answers, and those were sent over AIM. The first questions were about
my background and experience with software engineering and open source
software, the general pros and cons of OSS, and my experience with development
tools like CVS and Bugzilla.<p>
Next she started asking questions based on the skills I claimed on the
application. I was first asked questions dealing with database syntax. I didn't
do too well on those - I might have scored myself too high on the application.
I got most of the first question right (which would have been simple if I had
much experience with SQL), but didn't know enough to answer the other
questions.<p>
Then we moved on to questions I was better at answering: questions about Java
and C. I rated myself very highly on Java, and she asked a lot of questions to
make me prove it. Some questions were about the nature of the language, some
were about syntax, and some were about OO. In the middle, I got tongue-tied
and forgot the keyword <b>extends</b>, until I was prompted and reminded it
started with an 'e'. There were tricky questions
involving variable initialization, the kind of thing that's almost to the
level of trivia, and shouldn't come up for a coder that knows what he's doing.
The interviewer said that there wasn't really room for questions about design
patterns in the interview, because it all goes down onto a form, but she
squeezed some in at the end of the Java portion.<p>
The C questions were more specific about syntax and certain tricks and
caveats. There were questions about variable scope void pointers, and
fibonacci.
I was asked about almost every section on the application, including
experience with Eclipse, Linux, system programming, JVM programming, and
whatever else I decided I was barely proficient in.<p>
The final portion was a case study: I was given a hypothetical project, in
this case involving medical records, and I was to brainstorm out loud all the
aspects of the project, from what I would need to start with, to what
technical requirements there would be, to who I would need on my team, to
solving team problems, to completion of the (massive) project. I rambled on,
"brainstorming" my way through the problem, with occasional prompts from the
interviewer.<p>
The verdict? I should really look into learning more about databases, and I
did "okay" on the case study. I impressed her with my Java and C knowledge,
and my OSS experience. In the end, I passed. I'm now a finalist, and I should
be hearing eventually from one or more project mentors for more interviews
with them.
]]>
</content>

</entry>
<entry>
<title mode="escaped">IBM Technical Interview Scheduled</title>
<author>
<name>WasabiFlux</name>
</author>
<link rel="alternate" type="text/html" href="http://www.wasabiflux.org/blog/archives/2007/01/index.html#e2007-01-16T17_16_12.txt"/>
<id>http://www.wasabiflux.org/blog/archives/2007/01/index.html#e2007-01-16T17_16_12.txt</id>
<issued>2007-01-16T17:16:12-08:00</issued>
<modified>2007-01-16T17:16:12-08:00</modified>
<created>2007-01-16T17:16:12-08:00</created>

<content type="application/xhtml+xml" xml:lang="en" xml:space="preserve" mode="escaped">
<![CDATA[
My technical interview with IBM is scheduled for this Thursday at 12:30. I've
set up my audio system to give me freedom of movement but also good,
hands-free sound quality, so I can pay more attention to answering the
question than hearing it. My only problem is that my typing can be heard loud
and clear over the phone, so I hope that won't annoy the interviewer. I'll
summarize my experience once the interview's over on Thursday.<p>
I don't know what happened to my Apple interview. After I let them know what
my availability was (in a nice letter, by the way), I heard nothing. I haven't
yet done a technical interview with them. I'll start pestering them to tell me
something.<p>
I'll also get going on applying to Google's internship program, and I'll see
what other nice companies are in the middle of their internship recruiting
programs. Local internship recruiting tends to start later - I'll definitely
be at the spring career fair on campus.
]]>
</content>

</entry>
<entry>
<title mode="escaped">Next Round of Apple Interviews</title>
<author>
<name>WasabiFlux</name>
</author>
<link rel="alternate" type="text/html" href="http://www.wasabiflux.org/blog/archives/2006/12/index.html#e2006-12-12T18_01_38.txt"/>
<id>http://www.wasabiflux.org/blog/archives/2006/12/index.html#e2006-12-12T18_01_38.txt</id>
<issued>2006-12-12T18:01:38-08:00</issued>
<modified>2006-12-12T18:01:38-08:00</modified>
<created>2006-12-12T18:01:38-08:00</created>

<content type="application/xhtml+xml" xml:lang="en" xml:space="preserve" mode="escaped">
<![CDATA[
Yesterday, mere hours after I had finished the IBM phone screen, I got an
e-mail from the Apple UCSB relations contact, to congratulate me on passing
the first round of on-campus interviews. I now need to schedule a phone
interview with Apple in the next two weeks. You can be sure I'll be studying
for this one hard as well as the IBM interview.<p>
In the first on-campus interview, I was told that this phone interview (of
which there might be more later) will be a technical interview. I'll have to be
ready to show off my skills. I'll update with another post once I've had
another interview.
]]>
</content>

</entry>

</feed>

