MRS 015 Amir Rajan

MRS 015 Amir Rajan

Today's episode is a My Ruby Story with Amir Rajan. He was on Episode 272 of Ruby Rogues. Amir talked about where he used Ruby and how he got into RubyMotion. Listen to learn more about Amir!

[01:40] – Introduction to Amir Rajan

He was on episode 272 of Ruby Rogues and he talked about Game Development and RubyMotion. That was in August 2016.

[06:35] – How did you get into programming?

Amir had his Intel 80386 and was trying to install Win Commander on it. It came with this green booklet that says “cd C: /…”. He installed that exe command but he didn’t have enough space on the computer. He ended up deleting the operating system – Windows 3.1. He reinstalled it myself and he thought that was programming.

His first exploration in programming was actually a business development course like a business programming course. They’ve built applications using Visual Basic 4 and 5 but he didn’t understand the concept of variables.

After that, StarCraft 2 came out. That was around 1998. It has a map editor so you can actually create your own campaigns. You have to use a scripting event-based quasi-DSL to get that working. That was when Amir started looking at C, C++ and Visual Studio 6.0. He had to go to the library because a lot of information wasn’t readily available online. He also got some dummies book and random C++ books but he still didn’t understand programming. He already figured out variables but he didn’t understand functions. What he was doing is output a void method, throw an exception, and catch it in the parent code to get the return value.

Amir went to college and got a degree in Software Engineering in Computer Science. He entered the work force doing Visual Basic 6.0 and SQL server. His SQL jobs involve taking forms over data and everything was stored and back-end processed. It was a payroll company, payroll insurance so there was an immense amount of time card tracking, clock in, clock out, all done in SQL. Visual Basic was used to get the data, store them in record sets, send them into the database, and do all their processing there. He stayed on the .NET stack. His career was built on converting legacy applications to the next version of Microsoft tech.

It was not until 2010 that Amir actually started using Ruby. In 2010, the way he ended up using Ruby was actually built automation for .NET projects. All his Ruby-isms came from trying to codify build automation in Rake. He also did Rails for 8 months. He looked at Rails to see how they handled some of their attributes for shoveling across JSON from different areas or things out of the database.

[22:00] – Did you continue working on .NET and just use Ruby where it made sense?

Where Ruby fit in was basically when Amir wanted to build automation or he wanted to test his REST API. Trying to use HTTP client requires a strong type DTO to map to. He had a ton of Rake scripts that would make tons of HTTP calls do link from hypermedia and get additional information. He used Ruby to cut all that up and potentially make changes just over an HTTP endpoint. He has an endpoint that could reset himself as an administrator or open up some management studio to execute some stuff. It ended up an efficiency tool.

[24:15] – How did you get into RubyMotion?

Around 2013 is where Amir started getting this identity crisis about the languages he’s used. He started getting into Ruby and that means getting into Shell scripts, more Linux environments. Linux and Ruby are better than any of the .NET he’s done. There seems to be a more open mentality to approach and solve problems that aren't specifically related to some higher governing authority telling him how to write software. At that point, he needed to take a break and reflect on where he wanted his career to go. That’s when he stepped back from doing .NET. He bought a Mac and did things that are not .NET. During that first three-month period, he was in an exploration of Ruby.

[28:20] – A Dark Room

Dark Room is a minimalist text-based RPG. It originally came out on the web and it was simple enough so far as the UI and aesthetics but it has 25,000 lines of Ruby. It got deployed to the App Store and it goes viral. It has no pictures, no sounds, ASCII adventure game on a $700 device, and suddenly it’s the number 1 app. Amir built more games after that and picked up contract work here and there.

[31:15] – Contributions to the Ruby community

Amir does a lot of presentations and is bringing some of the ethos of Ruby to other communities. Here’s an example of how thinking about problems differently leads to potentially more elegant solutions that you may not have considered before. I was explaining the benefits of Ruby to non-Ruby developers.

[33:00] – What are you working on now?

Amir picked up a contract and he is doing F#. He is also working on his next game which is called Sasha. The idea behind it is you’re interacting with this persona on your phone who’s a super intelligent artificial intelligence. She wakes up and she calls you mom. You start talking with her maybe through the mic. And there’s an augmented reality aspect. It explores the aspect of raising a child. It’s like a Tamagotchi for adults, where you’re exploring the nuance of what it means to be connected to an inanimate object, seeing that persona being exemplified in this doll-like figure that’s on your phone. You’ll raise it, feed it, etc. That’s all done in Ruby and RubyMotion.

[35:40] – What’s in the future for RubyMotion?

RubyMotion has corporate backing. There’s no ifs and buts about the future of the technology. Now, the next piece with regard to mobile development, they actually have some really good maturity around open-source products that are already out there but some of the API’s are really arcane, even the wrappers. With regard to the future of Ruby and RubyMotion in mobile, it’s about pushing these concepts into these underlying frameworks and working with people that have been maintaining these things and lifting those API’s above so that RubyMotion can consume it.