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…
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…
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…
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…
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.
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…
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…
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…
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…
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…
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…
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…
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…
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! 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…
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…
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 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…
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…
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 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…
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…
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,…
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…
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…
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…
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…
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…
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…
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’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…
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…
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…
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…
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…
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…
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…
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…
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…
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,…
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…
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…
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,…
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…
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…
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.…
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…
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…