I have to skip ahead a couple weeks in the modules but I thought I would discuss the interview process. Having coming from a completely related field and transitioning later like many post-bacc students, the entire interview process felt a little alien to me. One question in particular in my most recent interview that I got (and didn’t see in the list of common questions) resonated with me: where do you see yourself in 3-5 years?

First, this question gets asked a lot, so I did prepare for it. But that question gives you a lot to think about and hides a lot of deeper meaning. I don’t think I wake up any given day and know what I want to eat for lunch. If I can’t figure out something that will happen in 4 hours, how could I even being to know 4 years from now? In a job interview, we can usually limit our self to the scope of our professional life and things adjacent to it.

Even that leaves us with a plenty of open ended questions. My recruiter asked me about school. I basically am just finishing going back to school, convincing 4 years of CS education in a two year span, do I really want more of that? Would more school help me? When thinking about the question though, I did go back to something module mentioned earlier: passion. I obviously want the company to know I about my passion for computer science and software development. So I would really like to work with some amazing developers and gain some real world experience. And I wanted to communicate that I am ambitious and wanted to develop myself into a position where I could lead a team.

Ultimately, I have no idea what the future holds for me. And outside of this context, I would probably say I could end up anywhere, both literally and what my focus on life is. But at least I know I reflected a bit more upon my professional goals and can explain what I want to do.

I admittedly have not experienced many interviews. But my most recent one had a couple interesting questions that I did not really anticipate. Everyone expects the “leetcode” style of questions in programming interviews and when under the pressure of time and getting a job, I would not describe them as easy. But the two interesting questions that did not relate to programming stuck in my mind. Luckily, I had seen these logical teasers before. I cannot imagine trying to handle them otherwise.

The first: a man goes to a hardware store to buy something for his new home. He asks the clerk “How much for 9?” and is told “$3”. Then he says “I’ll take 925 then” and the clerk replies “That will be $9.” What was the man buying? Doesn’t really make sense until you think about him buying the “6” “0” “0” individually, and theoretically can indicate how you can think outside of the box, but really seems more like a test of whether you have encountered the questions before.

The second without getting into specifics gave 3 seemingly random but related items, saying each one cost $5, $10, and $15 respectively. Then it gave you another related item and asked you to guess how much it cost. To find any pattern amongst the items, you had to not look at the items themselves but think about the words, basically how many vowels each word contained. Each vowel cost a fixed amount. Ultimately, I got these right (I think) but I hope in general these parts weigh low in the process for software engineers at least.

The more interesting section in a positive way involved answering questions based on a made up programming language. I liked how it allowed you to apply the rules and methods you learn in CS 225 and some of less “programming” related courses.

As far as the project goes, just slow and steady progress recently. Getting Unity to do what you want or expect seems to be a constant cycle of either a) trial and error or b) google. We did finally start getting to the point where we start merging some of our code and I forgot how much of a headache that can be. So far it doesn’t seem to have created too many issues, but I can admit I forgot one of the lessons from previous courses. Commit early and commit often. By waiting 3-5 days before committing I definitely got to the point where I worked on code that a teammate edited. Luckily it only led to a little cuts and edits to get everything back in working order. I also think I need to communicate a bit more with my team. I got off easy and learned my lesson.

This week I spent some time working on the visuals of the game board. I wanted to take a closer look at one of the challenges I face this week, card spacing. It sounds like a relatively minor issue, but I wanted to make sure I put some thought in it. The layout of cards in hand or on the field could have ramifications later for readability, customization, design, and/or other technical implementations. So far we haven’t finished adding in real cards yet so I used mockups as placeholders. Manual placement sounded too inflexible, requiring replacement if we decide to go with adjustments to the layout. To handle the spacing, I saw 3 main options: manual placement or a script, with or without a grid layout. I decided to go with just a script, but I had to figure out how much space to put between cards. Imagine you have the location of the first and last card, we can visualize the layouts of x cards in a space of length L as follows (with o representing the center of a card):

x = 2

o———-o

Length L between each card

x = 3

o—–o—–o

Length L/2

x = 4

o—o—o—o

Length L/3

And so on.

Where we see a clear pattern of length L/(x-1) between each card in order to keep the spacing even.

On another note, I had my first phone interview with Epic Systems on Tuesday. The call went rather informally with a software engineer at Epic. Aside from a couple questions about my project experience and technology interests, she mostly went over logistics for the position and selection process. Of note, I did appreciate her frankness discussing what working at Epic is like. For example, she noted that things can often move slowly at a medical software company. But the whole process has run surprisingly organized, with constant outreach and follow-ups. And there seems to be a lot of perks for working there. That’s all for today, thanks all for following along this far.

Welcome back! Progress on the capstone continues steadily. I started to work on designing a game board. The sheer amount to do on a project of this scale can get overwhelming at times. Not necessarily a bad thing, but we do find ourselves looking over our plans and constantly have to reexamine the decisions. Basically finding things we did not take into consideration when making design decisions.

Using Unity can simultaneously easy and tedious too. Most things work like you would expect them, but I have to start from 0 experience. You create scenes, canvases, objects, etc. and use images and what not to spice them up. Then you make the scripts to tell them how to interact with each other and the user. But it all takes time, and you have to position things carefully and they don’t always work how you would expect.

On top of all the capstone work, I have an upcoming job interview with Epic Systems. My first actual software engineering interview and first interview I have had in over 6 years. Nerves has me prepping like crazy, doing leetcode problems, reviewing my resume and researching the prospective employer. Fingers crossed. No groundbreaking observations or analysis, but the work has kept me busy this week.

Week 2 has arrived and wow do I have a lot to think about. After choosing the TCG Maker project we settled on the name CardContructors for our group. We started the project plan and after reviewing the sample project plan from last year. The previous group definitely outdid themselves in the amount of detail and thought they put into their work.

On one hand, our group has come to some conclusions with little disagreement. We know we want to use Unity and C#. Unity seemed like the best option for two reasons:

  • Substantial documentation and tutorials exist already
  • Existing assets at little to no cost

However, now I have the big step of both learning Unity and brushing up on C#, which means a substantial workload for weeks 3-6.

The project plan overall seems to be coming together. We’ve got several visual demonstrations and flowcharts created for the game scenes and the game itself in addition to breaking down the game itself into some tasks. The tasks could be defined into smaller chunks that we break down for each week, but we first have to figure out how to divide them amongst ourselves. In order to keep the scope of the project in check, we started with a simple game, which may change in further iterations, with a smaller group of attributes and parameters that players can customize or adjust. Keeping it simpler allows us to focus on the tech and then iterate further down the line if we to add more features. Personally, I do know I will be handling the login page and the backend for that for now, so I look forward to creating some mockups and researching what options Unity has a available.

Finally, some unrelated personal news. My girlfriend and I have adopted a new cat from the local animal shelter! Look forward to seeing some cute cat pics in future posts.

Jacob

My love from computers started from a young age. Games like Chip’s Challenge and Carmen San Diego fascinated me for hours. That fascination only continue as I got older. I started to explore what made computers tick. I checked out programming language guides for BASIC and C++ from the library. College had different plans for me however, and I gravitated away from math and sciences to study political science at University of California, Berkeley and eventually found a job working in the casino industry.

After working in the casino industry for 6 years, I realized I still had an itch for those same problems that engrossed me growing up and I loved the satisfaction from solving a puzzle. I found that technological problems still existed in my casino career and I wanted to fix them too. Helped along by Covid-19, I decided to take the plunge and work towards earning my Computer Science degree. Oregon State’s post-baccalaureate program has really encouraged me to learn and challenge myself again, first on my own part-time and now as a full-time student.

For my capstone project, my group has chosen to do an Online Trading Card Game Maker. I mentioned games earlier as part of what got me into computers, and that passion has continued throughout my life. Pokémon cards first got me hooked in the third grade. By the time I got to middle school and on past college, Magic the Gathering has kept me engaged. Casino card games at work were no different. Honestly any type of game brings me joy, whether its a board game, computer game, or even ball game.

Now I have a chance to bring the intersection of some of my passions and pastimes together in a single project. Stay tuned for project updates and technical posts each week!