Nil Mamano

Computer scientist, software engineer, author.

BCtCI Book Cover

Beyond Cracking the Coding Interview is out now!

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

Latest blog post

About me

I am a computer scientist specialized in data structures and algorithms. Here is my resume.

Are you looking for a short bio? See the media kit page.

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, defense slides, blog post, advisor's blog post) 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

Selected publications

Click on a publication for a brief summary. See all publications for the complete list.

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, usin...

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 ...

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...

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...

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...

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...

Get in touch
If you need an expert in DS&A or coding interviews, I may be able to help! Currently open to interesting projects after writing Beyond Cracking the Coding Interview.