Nil Mamano

Computer scientist, software engineer, author.

BCtCI Book Cover

'Beyond Cracking the Coding Interview' is out now!

I recently co-wrote the official sequel to CtCI along with Gayle Laakmann McDowell, Aline Lerner, and Mike Mroczka.

About Me

I am a computer scientist specialized in data structures and algorithms.

Academic Background

I received a PhD as part of the CS Theory group at UCI. I was fortunate to be advised by Professors David Eppstein and Michael Goodrich. Before that, I got a bachelor's degree in CS from UPC in my hometown of Barcelona.

My research spans computational geometry, greedy algorithms, graph data structures, computational biology, and recreational mathematics. My dissertation, New Applications of the Nearest-neighbor Chain Algorithm (pdf, blog post, defense slides, David's blog) studies how to relax the "greedy choice" in certain greedy algorithms without affecting the final solution. This idea, paired with an algorithmic technique called nearest-neighbor chain, allows us to speed up some greedy algorithms (like the Multi-fragment algorithm for Euclidean TSP from O(n2) to O(n log n) (paper).

See Research for more or download my academic CV.

Industry Experience

After my PhD, I spent some time in industry as a senior SWE at Google. I worked on Google's internal software-defined WAN, optimizing the allocation of network bandwidth to Google's services.

Current Projects

I recently had the privilege to co-author Beyond Cracking the Coding Interview with Gayle Laakmann McDowell, Aline Lerner, and Mike Mroczka.

Not yet sure what's next!

My passion project is wallwars.net, an online board game.

Nil, 2024

Research Publications

Click on a publication for a brief summary. All papers are freely available online. Authors are in alphabetical order—per convention in CS theory—except when marked with "*". See also my academic CV.

Conference Publications

Taming the Knight's Tour: Minimizing Turns and Crossings

Taming the Knight's Tour: Minimizing Turns and Crossings

J.J. Besa, T. Johnson, N. Mamano, M.C. Osegueda. FUN'20

In the knight's tour puzzle a knight starts in the top-left corner of a chess board. The challenge is to visit every square, without repetition, using...

Euclidean TSP, Motorcycle Graphs, and Other New Applications of Nearest-Neighbor Chains

Euclidean TSP, Motorcycle Graphs, and Other New Applications of Nearest-Neighbor Chains

* N. Mamano, A. Efrat, D. Eppstein, D. Frishberg, M.T. Goodrich, S. Kobourov, P. Matias, V. Polishchuk. ISAAC'19

This paper contains some of the results from the thesis on speeding up greedy algorithms (read the thesis' summary above). For instance, we improve th...

Stable-Matching Voronoi Diagrams: Combinatorial Complexity and Algorithms

Stable-Matching Voronoi Diagrams: Combinatorial Complexity and Algorithms

G. Barequet, D. Eppstein, M.T. Goodrich, N. Mamano. ICALP'18

Imagine that you have a set of facilities in the plane, such as post offices, and you are tasked with assigning a service region to each one, under tw...

Reactive Proximity Data Structures for Graphs

Reactive Proximity Data Structures for Graphs

D. Eppstein, M.T. Goodrich, N. Mamano. LATIN'18

The problem in this paper is inspired by private-car services such as Uber or Lyft. We give a data structure that maintains a set of nodes in a graph ...

Defining Equitable Geographic Districts in Road Networks via Stable Matching

Defining Equitable Geographic Districts in Road Networks via Stable Matching

D. Eppstein, M.T. Goodrich, D. Korkmaz, N. Mamano. SIGSPATIAL'17 (short paper)

In theory, political districts should be balanced in population and should have compact shapes. Partisan gerrymandering is the manipulation of distric...

Algorithms for Stable Matching and Clustering in a Grid

Algorithms for Stable Matching and Clustering in a Grid

D. Eppstein, M.T. Goodrich, N. Mamano. IWCIA'17

Whereas paper ICALP'18 gives algorithms for stable-matching Voronoi diagrams in the plane, this paper gives algorithms for such diagrams in a pixelate...

Models and Algorithms for Graph Watermarking

Models and Algorithms for Graph Watermarking

D. Eppstein, M.T. Goodrich, J. Lam, N. Mamano, M. Mitzenmacher, M. Torres. ISC'16 (best student paper award)

Watermarking is more commonly known in the context of images. There are two kinds: a visible watermark is a logo or name added on top of an image to i...

Journal Publications

Taming the Knight's Tour: Minimizing Turns and Crossings

Taming the Knight's Tour: Minimizing Turns and Crossings

J.J. Besa, T. Johnson, N. Mamano, M.C. Osegueda, P. Williams. TCS'22

This is a journal version of paper of the FUN'20 paper. We incorporated a contribution by a new author, Parker Williams, who improved the number of cr...

Stable-Matching Voronoi Diagrams: Combinatorial Complexity and Algorithms

Stable-Matching Voronoi Diagrams: Combinatorial Complexity and Algorithms

G. Barequet, D. Eppstein, M.T. Goodrich, N. Mamano. JoCG'20

This is a journal version of the ICALP'18 paper. We extended our algorithm to work for other distance metrics, such as Manhattan distance.

SANA NetGO: a combinatorial approach to using Gene Ontology (GO) terms to score network alignments

SANA NetGO: a combinatorial approach to using Gene Ontology (GO) terms to score network alignments

* W. Hayes, N. Mamano. Bioinformatics: Oxford Journals, 2018

Protein-protein interaction networks are graphs where the nodes represent proteins and edges denote that two proteins are physically compatible and ca...

SANA: Simulated Annealing far outperforms many other search algorithms for biological network alignment

SANA: Simulated Annealing far outperforms many other search algorithms for biological network alignment

* N. Mamano, W. Hayes. Bioinformatics: Oxford Journals, 2017

Protein-protein interaction networks are graphs where the nodes represent proteins and edges denote that two proteins can physically interact. Such gr...

PhD Dissertation

New Applications of the Nearest-neighbor Chain Algorithm

New Applications of the Nearest-neighbor Chain Algorithm

Nil Mamano

The nearest-neighbor chain algorithm was proposed in the eighties as a way to speed up certain clustering algorithms. We show that its application is ...

Projects

Click on a project for a brief explanation. More projects on GitHub.

WallWars online board game

WallWars online board game

Wallwars is an online 2-player strategy board game. The player who gets to their goal before first wins. You can place walls to reshape the terrain to...

SANA: Simulated Annealing Network Aligner

SANA: Simulated Annealing Network Aligner

Network alignment is the algorithmic problem of how to map biological networks to discover their similarities. It can be seen as the analogous of sequ...

Merging Geometries

Merging Geometries

I've been researching the types of shapes you can get by taking a 3D shape and 'merging' two of its faces. Blog post WIP.

RACSO Online Judge (contribution)

RACSO Online Judge (contribution)

The RACSO online Judge is a teaching tool for the 'Theory of Computation' subject. It contains a collection of automatically-evaluated exercises askin...

Bandwidth Enforcer Visualizer

Bandwidth Enforcer Visualizer

One of the problems in software defined networking (SDN) is how to decide how much traffic each host should be allowed to send without overloading the...

Two-list stable matching visualizer

Two-list stable matching visualizer

The "two-list stable matching problem" is an open problem in the field of market design that I tried to solve during my PhD (and failed). I made an in...

BCTCI Problem Parser

BCTCI Problem Parser

The online platform that goes along with the book 'Beyond Cracking the Coding Interview' (built by interviewing.io) allows you to try to solve all 200...

LRU + TTL Cache

LRU + TTL Cache

An in-memory hash table that acts as a Cache for a Key-Value storage. It is inspired by Redis and Memcached. It has an LRU (least recently used) evict...

Personal

On my free time, I like to play guitar. Here are a few songs I've written (in phone quality...).

During my time in southern California, I started hiking and going on motorcycle trips. Here are some pictures.

Of course, I also like playing WallWars with friends, the game I'm developing at wallwars.net.

Death ValleyCat

Media Kit

Bio

Mini

CS PhD from UCI specializing in algorithm design. Author: Beyond Cracking the Coding Interview. Former senior SWE at Google.

Short

CS PhD from UC Irvine specializing in algorithms and data structures. Co-author of Beyond Cracking the Coding Interview. Former senior SWE at Google.

Medium

Nil Mamano is a computer scientist with a PhD from UC Irvine and the co-author of Beyond Cracking the Coding Interview. His PhD research focused on algorithms and data structures, co-authoring nine peer-reviewed papers with contributions to graph algorithms, computational geometry, computational biology, and recreational mathematics. He previously worked as a senior software engineer at Google, working on scaling the networking infrastructure. Additionally, he developed the technical curriculum for coding interview prep at Pathrise.

Contact

Find Nil online at:

Headshot

Nil headshot

Regular

Nil headshot square

Square