Masaya Suzuki (draftcode)
Software Engineer, interested in:
- Programming Languages
- Distributed Computing
- Software Testing
- Model Checking and Fault Tolerance
Google Inc. (Software Engineer, August 2015–)
Git hosting service at googlesource.com
API frontend for Google Maps
Google Japan Inc. (Software Engineer, April 2014–August 2015)
API frontend for Google Maps
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
- Have a good work experience on: Java, Go
- Need to learn again, but have worked on: Assembler(JVM and MIPS), C/C++, Ruby, Python, Scheme, VBScript, Alloy, NuSMV
You can see the books I read here: