Masaya SUZUKI (draftcode)
Software Engineer, interested in:
- Programming Languages
- Distributed Computing
- Software Testing
- Model Checking and Fault Tolerance
COOKPAD Inc. (Software Engineer, Intern and Part-time, May 2013 - March 2014)
Design and implement a distributed test execution service. It can tolerate machine failures and process failures.
- Reduce the machine cost by using cheap but fragile machines provided by Amazon EC2 Spot Instances.
- Apply Auction Theory and Game Theory to determine the bidding price of machines.
- Apply Queueing Theory to determine the machine scaling strategy.
Google Japan Inc. (Software Engineer, Intern, Summer 2012)
Tomonokai Corporation (Software Engineer, Part-time, November 2009 - March 2014)
Internal back-office systems
Discover requirements, design and develop systems.
- Convert a 9 man-day job to a 30 minutes machine job.
- Process 10000+ excel files using multiple computers.
- Apply formal method partially to design a system.
Humming Heads Inc. (Software Engineer, Part-time, July 2008 - October 2010)
Computer supervisory system
Fix bugs and implement a new feature towards over a gigabyte of source code. C++.
- Intercept the application API calls and trace the behaviour.
- Inquire NTFS and FAT32 file system directly.
Job controller of a distributed system
Write an initial implementation.
Design and implement a modeling language that is aware about faults. It can eﬀectively check the fault tolerance of systems like RRRSpec. Implemented in Go.
Develop an Android Application (Team leader, April 2012 - December 2012)
Lead a team of 7 and develop an application. Apply some best practices in Agile.
ACM/ICPC (Team haskell-lover, 2011-2012)
Got 7th in Tokyo Asia regional, 4th in Kaohsiung Asia regional, and honorable mention in World Finals.
Meta-circular Scheme Interpreter
Develop a Scheme interpreter in Scheme. Implement a subset of R5RS and partial continuation.
Develop a MIPS assembler run on the embedded system called MieruPC. It can compile sl program.
MS Computer Science Tokyo Institute of Technology (March 2014)
Concentration: Model checking and Fault tolerance. Takuo Watanabe Lab.
Full-Automatic Exhaustive Fault-Injection on Software Models of Message-Passing Systems
Fault tolerance of distributed systems can be effectively verified by model checking and fault injection, but its process is highly error-prone. I proposed a way to solve this problem by adding a language support to modeling languages, which is a common approach in programming languages.
BS Computer Science Tokyo Institute of Technology (March 2012)
Concentration: Context-oriented programming. Takuo Watanabe Lab.
An Implementation Method of Context-Oriented Programming in Objective-C
Context-oriented programming is a programming method that enables us to define behaviors that depend on the program's execution context. I proposed an implementation method of Context-oriented programming in Objective-C.
Languages, Skills and Technologies
- Assembler(JVM and MIPS), C/C++, Ruby, Python, Scheme, VBScript, Alloy, NuSMV
- Linux, Mac OS X, Windows
- TOEIC score 935 (2011)
You can see the books I read here: