Hello recruiters and potential employers. I created this FAQ to reduce time spent sharing the same information with a number of different people.
What am I about?
I want to create good looking websites. I want to write good code. I want to create things that I am proud of, and do as much as I can to make sure the solution is written so that future developers aren’t confused, stressed, or frustrated when they need to work on it.
What’s important for you in a new company?
- Language – I would like to use English almost exclusively. I can do Japanese, but it puts me at a disadvantage when it comes to sharing opinions.
- Distance from home – I’d like to keep my commute under an hour, which means that I would prefer jobs in Shibuya, Shinjuku, Roppongi, Shinagawa, or Futakotamagawa.
- Working environment – Casual is best. “Japan has 4 seasons”, but 2 of those seasons are “sauna”, and wearing a sweat-soaked suit while programming reduces my output.
- Technology – Ideally, I would be applying what I know and love(Ruby/Vue.js with ES6) or what I have used and love (Python, React), or something that I am good at but don’t really want to use (PHP, jQuery). I don’t have professional experience with Java, C#, Objective-C, etc. but I think I could pick them up. I would sure love to use Go, but I have zero experience with it.
- Salary – Rakuten pays low and isn’t really a tech company. I can earn more if I am Japanese and go into management, otherwise I’m almost maxed out as an engineer. I’d like to earn more than I make now.
Why do you want to leave your company?
The big reason: It’s too Japanese. I think that the beaurocracy and senpai-kouhai atmosphere is particularly damaging – time in the company is more important than skills or experience. If I want to do anything, I first need to teach a couple managers what it is that I want to do, and they need to have a meeting with producers, who then go to the business side and it ends up like a giant game of Telephone. I was told by a manager that “Our customers don’t like responsive design” when I was pushing for us to design our site in-house.
I have a CS degree. I have years of experience. I only have 3 years of seniority in Rakuten, and that’s not enough for my opinion to matter.
Tell us about yourself
- I think I’m a full-stack developer. (I have a rich history of back-end, front-end, server setup, and more)
- I’ve worked with a number of programming languages (Ruby, PHP, Python, JS(jQuery, Vue.js, node.js), VB.net)
- I’ve made a number of different sites (Kinki Nippon Tourist backend rewrite, Accenture landing pages, Mastercard landing pages, Rakuten’s RaCoupon site, Rakuten’s GORA site)
- I’ve used many different acronyms (Creating RESTful APIs, MVC, ATMs, VCRs)
- I have a background with Linux (CentOS, Ubuntu, forays into many different flavors of Arch and Debian, using Vim when I probably should be using an IDE, making lots of scripts to boost my productivity)
- I have soft skills (Communication, teaching/mentoring, team building, encouraging good code, promoting code-ownership)
- I have some project management skills (Creating Jira tickets, assigning them, setting up kanban/gantt charts/sprints)
- Things I’m good at (MVC, migrations, code reviews (I really enjoy doing these, and feel that I am very very strong at them), teaching/mentoring)
- Things I’m embarrassed that I’m good at (cross-browser compatibility)
- Things I should improve (leadership, management, confidence)
OK, but what’s your work history?
I worked in retail. I understand humility.
I was a radio DJ during university, and the radio station’s program manager for one year.
I worked at Cypress Semiconductor as an intern for a summer.
I worked at Berlitz Japan, teaching English for 3 years.
I worked at a small Japanese company named KENS. I mainly wrote PHP, and I really wish I had a mentor there. I would write ugly code quickly to solve problems. I also set up servers, and did a wide range of tasks….poorly.
I worked at a company of about 25 employees named T-Mark, where I was doing a wide range of tasks. A lot of it can be summarized as “make a simple site under a very tight deadline which will be used in a promotional activity”. Most tasks were 1 project manager and 2 developers. We mostly used jQuery, Python, and PHP to make responsive sites.
I went to Rakuten and learned incredible amounts and had an epiphany. I realized what it meant to be a good developer, thanks to a strong team and a very good mentor. I went deep into Ruby, then later node.js/vue.js. There was PHP in there as well. I seem to be involved in a lot of migrations, and have established myself as the teacher for any new staff.
How do you feel about code reviews?
They are the highlight of my day, and I say that with no sarcasm. We have a big issue in Rakuten: the evaluation system results in people that work for themselves. They write ugly, unmaintainable code for the sake of “finishing” their tasks, but this results in bugs that appear later. I have had the misfortune of working on a legacy system so disappointing that the trauma has caused me to push for good, readable code in all projects.
Code reviews help us keep the code understandable. Code reviews help us improve our abilities. Code reviews help us to communicate. Code reviews are the cornerstone to development, and I love them.
How long have you been in Japan?
I’ve been here for about 10 years now. My good friend’s family hosted Japanese exchange students, and I attended an after-school program to learn Japanese back when I was about 5 years old. I got interested in anime around high school, and nerded out on that aspect of Japanese culture. I visited Japan for 2 weeks in high school, came back for a year in university for a study-abroad at Aoyama Gakuin, and then moved back after graduating from university in the US.
How’s your Japanese?
It’s ok, but just ok. I got JLPT level 3 back in 2008, and I think I could probably get N3 now. I use Japanese a little bit at work, and can hold a conversation in it. I know most of the kanji required for talking about programming.
I would prefer to use English.
Do you have any projects you are working on?
Yes, and I keep them in a private BitBucket repo. I would be happy to give you access, but I’d like to keep them private.
“choose” – A Choose Your Own Adventure system written in Vue.js, sitting on top of Node.js.
“bubbles” – Trying to get familiar with React.js and solve Indeed’s interview problem
If you could make anything, what would you make?
Something like an online diary to track events in the life of your baby, and has the capability to compare it against other parents.
How are you with the following hot buzzwords?
SEO – This is snake oil. Nobody knows for certain what Google looks for, because they don’t publish what they look for. However, I have a decent understanding of how to make “good SEO” – that is to say I know how to organize HTML, what meta tags to use to make link-sharing look nice, organization of content, understanding of load times and how to reduce them, and more. If anyone claims to be an expert in SEO, they are lying to you.
Blockchain – I mined a Bitcoin back in 2014, and sold it in a panic for 200 dollars. That’s my background with blockchain.
I have a pretty solid understanding of the underlying technology, and understand that lots of money is being thrown at anything that utilizes it, despite it not usually being the right tool for the job. Hey, if the pay is right I will implement your blockchain chat program.
AR – No experience
AI – Used the Watson API inside of Rakuten for a month-long Hackathon. I tried to train it to learn the pars of different golf course holes to predict a relative difficulty, but it thought that all of the images were seahorses. I scrapped that plan and teamed up with some others to make a game that generated questions, had realtime translations, text to speech and speech to text.
I have a very rudimentary understanding of how AI works, but haven’t gotten any further than installing Tensorflow.
Big data – Worked with huge databases, but never did anything impressive with the data
The Cloud – Migrated our service away from AWS, but learned a lot about AWS in the process. I have backups on Google’s cloud.
CI – Love it, and use it all the time in Rakuten.
UI/UX – I think I understand these concepts quite well. I had classes on UI/UX back in university, and worked on landing pages for companies such as Accenture and Mastercard. At a professional level, I have only made basic wireframes and built the content with CSS frameworks, but I haven’t used Sketch/Adobe XD/etc. UI/UX concepts can be summarized in a few ways: “What do we want the users to do? What do the users want to do? How do the users expect to accomplish this?”.
Why should we hire you?
I think I bring a lot of value and versatility to projects. I’m not the best programmer, but I think that my ability to communicate and teach not only brings up the skill levels of everyone around me, but saves time and reduces stress by eliminating misunderstandings.
What nationalities have you worked with directly?
(I think this question gets asked to see if I’m a decent human being. I have friends of many different nationalities and backgrounds. I get along well with all sorts of people)
Who do I like working with?
People who work for the team, and not just themselves. It’s easy to write garbage code and appear to be “fast”, but someone like me will be cleaning up after them and making the code maintainable, but I would rather be spending my time reducing everybody’s workload.