RSSAmplifier

Blog

Adam Drake

adamdrake.comRSS feed ↗70 posts

Latest posts

An Unreasonably Deep Dive Into Project Euler Problem 4

Or: How to make your solution 8000x faster with math and short-circuit evaluation. Introduction It has been a couple of years since my last Project Eueler effort, An Unreasonably Deep Dive into Project Euler Problem 3 , and since I’ve also been wanting to do more work with Rust recently, I thought it would be a good opportunity to do both things at once by doing Project Euler problem 4 in…

Digital Maneuver

BLUF: A Newsletter Digital Maneuver is the ability to quickly build or modify software applications or systems in order to gain a decisive advantage over a competitor. I’ve spent decades helping organizations increase their digital maneuverability and have recently created the Digital Maneuver newsletter in order to distribute some of these ideas and other curated content to people who are…

Developing your AI BS detector (v2)

Introduction In April 2018 I gave a lecture at an event in Toronto which I titled Developing Your AI BS Detector . . That event was designed to be a discussion around “Rational AI in the Enterprise” and I’ve found that since then others have been interested in hosting a version of the lecture as well. Recently, I updated the slides a bit and changed the focus of the lecture…

Technical is tactical

Intro: levels of war The US Department of the Army publishes a Field Manual called Operations (FM 3-0), a doctrinal guide for conducting military operations. In it, three levels of war are described. They are: The strategic level (such as national policy) The operational level (such as campaigns and major operations) The tactical level (including battles and small-unit actions) At the strategic…

Footer Bio

Adam Drake leads technical business transformations in global and multi-cultural environments. He has a passion for helping companies become more productive by improving internal leadership capabilities, and accelerating product development through technology and data architecture guidance. Adam has served as a White House Presidential Innovation Fellow and is an IEEE Senior Member.

Novel Results Considered Harmful

Introduction Ravi Adve from University of Toronto graciously invited me to give a public lecture at the university earlier this summer. I was very grateful for the opportunity. The university’s facilities were fantastic, and Ravi did a wonderful job organizing everything. The audience was engaging and asked thoughtful questions, and the attendance was much higher than I had anticipated for a…

Always Be Shipping

Introduction Sometimes when I’m advising startups the topic of a feature freeze comes up in a variety of contexts. The context I’m referring to is one in which technical debt, poor architecture decisions, and other related issues, have accumulated in a system to the point that it has become seemingly unmanageable. The situation has allegedly become so dire that all new development of…

Leaders Eat Last

Introduction When leading teams, one of the most important things to keep in mind is to lead from a perspective of wanting the team to grow and improve in order to achieve a higher goal. The biggest part of that is taking care of the people on the team. This can mean things people may typically think of, like supporting and encouraging someone on your team while they pursue their career goals. It…

Artificial Intelligence and The Heilmeier Catechism

As part of my advising work, I encounter a plethora of companies. Most of these companies want to begin, improve, or continue initiatives surrounding Artificial Intelligence (AI), Machine Learning, Data Science, Data Analytics, or other such labels applied to a project wherein data is used to accomplish some business objectives. The difficulty is that these labels often serve to obfuscate the true…

Speak with Confidence

Introduction When I’m asked to spend some time with a startup to help them continue their growth trajectory, by far the most common issues I help to solve are problems relating to leadership. Specifically, I’m usually asked by the investors and/or executive team to work very closely with the technology leadership in order to help them improve their output. The best way to improve…

Don't Categorize, Prioritize!

Introduction When I begin an advising engagement with a client, one of the first things I try to understand is what their top priorities are as an organization. This seems like an obvious step, but there is a subtle difference between what most people say are priorities, and what they actually do when they think they’re setting priorities. This is because people say they prioritize , but…

Three Things Your People Need To Know

Introduction As part of my work with scale-up companies, a critical component of the process I follow during an on-site visit is having interviews and discussions with a variety of people. I have these discussions with everyone at the company, not just the CEO and CTO with whom I most often closely work. People who are lower on the organizational chart often know more than the executive team about…

Scalable Machine Learning with Fully Anonymized Data

Note: This article will likely be revised and expanded before being submitted for review and publication. At the moment it is missing critical sections, that will be added later. If we have suggestions for improvement, please send them to me directly. Abstract In this article I will discuss the well-known technique of feature hashing, but with the modification of performing the hashing step on the…

Big Data, Small Machine

Introduction I was honored to be invited by DevTO to give a talk at their May meetup. The organizers were keen to have someone speak about high-performance machine learning, and I was happy to oblige. The general thesis of the talk is that, for the purposes of machine learning, setting up large compute clusters is wholly unnecessary. Furthermore, it should generally be considered harmful as those…

Hello, Recruiter!

Hello Recruiter! Thank you very much for your message and your consideration. In order for me to consider the role more fully and determine if a call is warranted, would you please provide more information? Please send over a JD/role description including the following: The specific company that is hiring How they see the role and its associated responsibilities fitting into the future of the…

Developing Your AI BS Detector

Introduction I gave a talk at MaRS on this topic. The event was put on by Steve O’Neil and his team, who all did an excellent job. The venue was packed to standing-room only with a fantastic audience of 300-400 people. The goal of the event was to have a discussion around “Rational AI in the Enterprise.” I think all of the speakers did a wonderful job of honoring the topic. We…

Serverless with Lambda, API Gateway, and Go

Intro Some time ago I made TinySite and I wrote an article about building the Biggest Smallest Website . As part of that work, I also built CompressTest in order to provide some insight on size of data post-compression for a few of the compress methods in the Go standard library. Those services were running on EC2 instances via Elastic Beanstalk, and while the cost wasn’t great, I have other…

Writing the job description

Writing the job description Ahh, the job description. It is the face of your company on job search sites. It sets the tone for all the rest of the hiring process that follows. It has the power to make or break your hiring success. It’s a shame they’re so often badly written. A good job description isn’t so different from a bad one. Mostly, it just has some of the letters in…

The biggest smallest website

Introduction I was surfing the web and, as is often the case, I stumbled upon a cool project: the FastestWebsiteEver . It’s “the greatest website to ever fit in a single TCP packet.” I had a think about that for a minute, and checked out the actual site, and noticed that it’s approximately 1130 bytes transferred. Now depending on how fresh you are on your OSI Model , you…

From Enterprise Decentralization, to Tokenization, and Beyond!

Note: This is post which I co-authord with Don Gossman and is cross-posted to the Ocean Protocol site . We are putting together a blog series that tackles the lowly subject of enterprise transformation. Of particular importance will be data decentralization and how it will drastically change the way in which we interact and leverage data assets in the not-too-distant future (teaser: see Ocean…

Filtering for better tech hiring

Filtering for better tech In a previous article, we discussed a redesigned hiring process based on generating inbound demand coupled with effective automated filters. Ensuring that this process is streamlined requires further filters that determine the quality of your candidates with minimum friction at each step from application to employment. In this post, we’ll talk a bit more about the…

Rethinking hiring

Rethink hiring: how automation helps tech startups get ahead Hiring is almost always difficult, especially when the hiring process isn’t designed in a way that supports the company’s objectives. In this article I’ll outline a few key points to imagining and redesigning the hiring process. We’ll discuss a focus on generating inbound applicant flow, minimizing steps in the…

Teammate to Team Lead

Introduction Growing organizations go through many changes on the journey of scaling up. A common one is the creation of new teams, and consequently, new team leaders. As startups move from teams of people, to teams of teams, former peers become leaders and must learn to excel in their new role. How do you tackle the challenges of being viewed differently and commanding a new level of respect,…

Faster command line tools with Go

Update After some input from u/epiris on Reddit, I improved the code a bit further by changing the way bytestreams are scanned. Current fastest runtime is 0.308s for 10,512,769 rows, or about 34 Million rows per second. Since the file is 184 Megabytes, this is a processing speed of about 600 Megabytes per second, which is probably close to the read speed limit of my SSD. It all started with a blog…

Enough with the microservices

Tl;dr: Don’t even consider microservices unless you have a system that’s too complex to manage as a monolith. The majority of software systems should be built as a single monolithic application. Do pay attention to good modularity within that monolith, but don’t try to separate it into separate services. – Martin Fowler If you can’t build a well-structured monolith, what makes you think…

Enough with the microservices (Chinese translation)

资深架构师Adam Drake在他的博客上分享了他对微服务的看法,他从自己的经验出发,结合Martin Fowler对微服务的见解,帮助想要采用微服务的公司重新审视微服务。以下内容已获得作者翻译授权,查看英文原文 Enough with the microservices。 简介 关于微服务的优势和劣势已经有过太多的讨论,不过我仍然看到很多成长型初创公司对它进行着盲目崇拜。冒着“重复发明轮子”的风险(Martin Fowler已经写过“Microservice Premium”的文章),我想把我的一些想法写下来,在必要的时候可以发给客户,也希望能够帮助人们避免犯下我之前见过的那些错误。在进行架构或技术选型时,将网络上找到的一些所谓的最佳实践文章作为指南,一旦做出了错误的决定,就要付出惨重的代价。如果能够帮助哪怕一个公司避免犯下这种错误,那么写这篇文章都是值得的。…

Redis Performance Triage Handbook

Intro I do a lot of work with growth-stage startups, and many of them use Redis for all sorts of things. Sometimes as a key/value store for caching, sometimes as a message queue, sometimes as a pub/sub message broker, etc. Redis is a great tool, with great performance, when used properly. However, I’ve often seen cases where it is not used with good performance in mind, often to the…

An Unreasonably Deep Dive into Project Euler Problem 3

Intro I’ve been busy as usual for the last couple of months, and haven’t really had time to extend the Project Euler series after Problem 1 and Problem 2 articles. However, I finally did set aside some time to play around with Problem 3: finding the largest prime factor of a number. Problem Statement The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of…

The Ten-Minute Reorg

I spend a lot of time working with growth-stage startups. I often see similar problems across companies when it comes to scaling up their tech teams. At a certain point, the intuitive way to grow a team breaks down, and a reorganization (“reorg”) is necessary in order to adopt a scalable structure. Where some companies may take months to design and execute a reorg, I prefer to handle…

Press Kit

Professional Bio Adam Drake leads technical business transformations in global and multi-cultural environments through leadership, technology, and data architecture guidance. He has served as a White House Presidential Innovation Fellow, and is an IEEE Senior Member. Adam’s professional background spans a variety of industries including e-commerce, online travel, online marketing, financial…

Contact

I consult on a retainer basis and frequently take speaking engagements. For availability and rates, please email me.

Command and Control

Introduction When I advise organizations, they often ask if I have written down or somehow codified my perspectives on leadership and operations. Until now, the answer has been a polite not yet . I simply didn’t believe I have accumulated sufficient experience to warrant writing something from a position of authority on the topic of leadership and operations in organizations. After much…

I am Here to Win

I’m not here to be right, I’m here to win. That’s a phrase I often keep in mind, especially when I feel my own ego getting the best of me or when I see someone else’s ego affecting their judgment. In this context, win means making progress towards a larger strategic goal, likely by achieving some intermediate objective. So if you are playing to win and not just to be right…

On Confidence

Bearing, presence, gravitas, and authority are all some words used to describe those who project confidence. When I am advising executives and leaders to help them with their teams, one of the topics of concern for them is confidence and how to gain it. Or at the very least, how to project confidence even when it’s not there. The latter seems to be especially concerning to those who are…

On Forecasts

Overview I was meeting with a client recently, and since it was the end of the year and they were in their budgeting process we were discussing forecasting methodologies. They were asking about their marketing function specifically, but the conversation applied more or less to all areas of the business which set targets and/or develop a budget. So basically, the whole business. It’s…

Leadership and Communication

Good leadership is hard to quantify, especially when considering intrinsic qualities like humility (which I argue is the most important quality of all). However, there are external skills which can separate effective and ineffective leaders, and communication is arguably the most fundamental of those externally-visible skills. When a company is small, and everyone fits in a single room, then a…

An Unreasonably Deep Dive into Project Euler Problem 2

First, the problem definition: Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, … By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms. Classic Fibonacci problem, with a slight twist due to…

An Unreasonably Deep Dive into Project Euler Problem 1

Introduction As part of my work in keeping my technical skills sharp, I periodically go back to basics or solve old problems again in order to ensure my foundations are strong. So it was with great fun that I decided to start back at the beginning with Project Euler . One of the techniques I also use for this sort of thing is not just to solve the problem, but to really explore it. Write…

Remembering The Fallen

Those that know me are aware that I have always had great respect for people who have served or are serving in the military. I thought it would be a nice project to create a Twitter bot that would tweet, on a given day, all the US Servicemembers killed in action on that day in prior years. You can view it on Twitter or follow @thedailyfallen directly. I’ve had questions before about simple…

Competitors are Not the Problem

I advise many successful companies, and some of them have grown very quickly to their current size and state. They developed a product or service, matched it with a market, and are experiencing a great deal of success. During the earlier parts of this journey they were acutely aware of the possibility of competitors being able to overtake them or the reality that other competitors really were…

How Do You Punish People?

Introduction The title of this post is literally the first question I received from someone when I was doing leadership advising at a very successful company. The company was dominant in their market and were continuing to grow internationally. The person who asked me the question was intelligent and had previously worked for a large technology organization before taking on their current role…

Culture Red Flags: Who is *They*?

Over the years I’ve advised many companies on how to improve their leadership capabilities in order to cultivate a more effective corporate culture and thereby achieve growth. One thing which is absolutely necessary for a company to thrive is for the culture to support collaboration and a sense of shared purpose. You need unit cohesion. You need the shared feeling that we are all one group,…

What is Your Current Salary?

I’ve probably hired hundreds of people in my career and I also do a fair bit of mentoring for new technology professionals, especially new Data Scientists and Data Engineers, Software engineers, and similar roles. One thing that often comes up is looking for new jobs and how to go about that process. For more junior candidates especially, you are at risk of getting asked a very dangerous…

A Hackish System Command Service in Go

When building data products, often the end result is either a recurring report or an API which allows for an interface with other services. In these cases, the product might be run by a cron job, or even manually, depending on the situation. When the product is part of (more frequently, at the end of) a larger data processing pipeline, this can become inefficient or problematic since steps earlier…

Are your Functions Total?

In recent years, and for a variety of reasons, functional programming has become an increasingly popular topic. Languages like Haskell, Scala, Clojure, and others, have had huge gains in popularity and consequently there have been many large-scale projects written in some of these languages. There has also been increasing pressure to move programming more towards the rigor of mathematics,…

Hooked: How to Build Habit-Forming Products

I recently finished a book called Hooked: How to Build Habit-Forming Products by Nir Eyal. The book overall expresses a nice framework for considering products and services, whether or not they should be habit-forming in the first place, and if so how to go about making that happen. The framework is very useful in that it allows for organizations to have a common language they can use to speak…

A Quick Overview on the Kaggle Competition for Avito

Introduction I didn’t have much time for this competition, so didn’t invest much into feature engineering, creating ensembles or other things. As I participated in the Avazu competition as well, which included the use of tinrtgu’s now-famous code , I decided to use the same approach here. Background The overall goal of the competition is to analyze user behavior in order to…

Transitioning to a Data-Driven Organization

Introduction I gave a talk at the CDO Summit in Singapore on 18 June and thought it may be worthwhile to address some of the points and provide additional detail on the slides I used . Sections below are listed by slide content and provide extra explanation. Kardashev Scale This is simply applying the Kardashev Scale of technological advancement to the advancement of data usage in organizations.…

Makespan Minimization for Unrelated Parallel Machines with Maintenance Windows

It’s a bit late, but last year during the Christmas break, Kaggle had a very interesting competition for the season. The story was that the toy list at Santa’s workshop was long, and elves had to make all the toys, with some constraints on their productivity rating and rest intervals. This is an adaptation of the classic problem of minimizing makespan, though with additional…

On Two-Sided Markets

Many technology companies can be viewed in the context of a two-sided marketplace (TSM), a special case of a multi-sided marketplace (MSM). This view has interesting implications for the dynamics of the business in addition to how product strategy and prioritization is decided. Having worked for over 15 years in TSM environments from Online Travel, to Affiliate Marketing at Zanox, mobile ad…