David Ellis work email
- Valid
- Valid
David Ellis personal email
- Valid
- Valid
David Ellis phone numbers
Solve Problems So They Remain Solved...But If They Aren't Changing, You Aren't Solving ThemThat's the conclusion I've come to after four years in a startup. The kinds of problems seems to go through several phases.First are the feature debts, things your code should be doing but isn't yet and you had no idea originally that you'd need to do that, so you work hard on that and to meet deadlines you accrue technical debt.The technical debt will continue to accrue until it either causes a fire or you've satisfied all feature needs for a while, and then you can go clean up the code, but again to meet deadlines you'll take some shortcuts and focus on clarity over speed and accrue performance debt.This is the right choice as most code can stay here indefinitely, nowadays, and easily-understood code is easier to develop new features on without accumulating as much tech debt as before. But sometimes the performance debt comes to bite you, especially if the debt is not just at the algorithm-level but the architecture-level (the distinction is mainly on how many LOC are needed to modify it and if it has to cross executable boundaries). It is very easy to replace this performance debt with new feature debt, optimizing the code to only handle the current featureset and then running into a wall the next time you're asked to add in new features and starting this cycle all over again.Capacity planning can help here, by forcing you to run into performance problems early, but I'm not sure if the cycle ever ends until the software has actually matured and no new significant feature development is required.In any case, once some set of software has reached the maturity stage, I'm not the right person for that job. I won't move on to another project until it shows that level of stability (minimal-to-no alerts, feature development that has no architectural impact at all, and predictable capacity planning) but once proven, I will. There are always new problems to solve.
-
Co-Founder And CtoAlan Technologies Apr 2023 - PresentSan Francisco Bay Area, UsBuilt the Marsha AI Programming Language* Simple, markdown-based syntax to describe what a function should do with a few examples of usage to generate working Python code.* Generates code and a test suite for said code, and iterates with the test suite and an LLM until the tests passes. -
Co-Founder And CtoAlan Technologies Sep 2021 - Apr 2023San Francisco Bay Area, UsBuilt IaSQL - Managing your Cloud Infrastructure via SQL* Infrastructure as Data - AWS infrastructure represented as PostgreSQL tables and relations/dependencies as simple foreign key joins* Two-way Source of Truth - By creating an idempotent representation of the cloud and database information, coupled with an audit log of database changes, mutations of cloud infrastructure outside of IaSQL are properly imported into the Postgres database while changes by users in the Postgres database can be simultaneously executed back into the cloud, providing a resiliency beyond Terraform.* Easy import - due to the above feature, you can connect to any existing AWS account and immediately begin managing it, no need to write any source code first. -
Co-Founder And CtoAlan Technologies Feb 2020 - Sep 2021San Francisco Bay Area, UsBuilt a beta form of the Alan Programming Language - an implicitly parallel, safe programming language* Syntax inspired by Typescript, type system inspired by Rust, exploring the limits of a barely-Turing-incomplete language with the goals of automatically inferring all types at compile time (almost completed) and preventing many runtime errors like infinite loops (completed), integer overflows (completed), buffer overflows (completed), and parallelization/clustering decision making (many advances listed below).* Static analysis to determine an exact dependency graph of source code, encoded in custom bytecode format, to give runtime the ability to automatically parallelize execution where it makes sense. Primarily used to segment IO-bound opcodes from CPU-bound, parallelizing the IO-bound operations.* Built-in clustering for transparent IPC between nodes, autoscaling by load across multiple nodes in one or more region across AWS/GCP/Azure (all of them simultaneously if desired), and a built-in rendezvoushash-based distributed hash table "datastore" (with region-aware replication and routing) that could be used similarly to memcache or (because we control the language and runtime) a distributed compute mode that would determine if it is worth it to transport the thread of execution (and its closure scope) to the node with the data or pull the data to the current node to perform the execution to automatically minimize latency.While we demonstrated that you could have an ergonomic language that automatically parallelizes and distributes your code, confirms type safety without (most) annotations, serialization into JSON without Turing completeness, and got our beta runtime faster than CPython in testing, we proved (to ourselves, at least) that you cannot parse arbitrary data without Turing completeness, so we have shelved the language for the time being until/unless we can add limited Turing completeness without compromising automatic parallelization. -
Principal Software EngineerCardash Oct 2017 - Nov 2019Menlo Park, Ca, UsWorked primarily on backend and devops projects at CarDash.* Implemented many backend (and a couple of web frontend) services in support of exploratory efforts at CarDash.* Implemented automated pricing algorithms for car repair procedures based on historical data and real-time parts pricing.* Implemented scheduled maintenance procedure lookups to accelerate and automate estimates for customers.* Improved developer speed and eliminated some architectural antipatterns by switching to microservices (the trade-off was net positive, that is).* Reduced datacenter spend by replacing Elastic Beanstalk managed backends with a classic Bastion + Server Pool deployment system.* Introduced an RFC procedure on the team for large or contentious changes, along with a template to make sure all major technical and business concerns are addressed.* Improved monitoring and on-call to catch outages more quickly. Sub-1-minute response time and sub-5-minute recovery time the target (and sometimes reality). -
Senior Software Engineer IiUber Technologies Sep 2012 - Oct 2017San Francisco, California, UsWorked on many parts of the core of Uber:The core dispatching system for over a year primarily on scaling and integration of new features between app and backend services.The "Share My ETA" feature for a few months primarily on its data ingest architecture (ported to Kafka from Redis Pubsub).Part of the original UberPool team for 6 months refactoring the dispatching system to handle multiple clients on the same trip and integrating the matching algorithms.Supply forecasting and positioning for about 4 months working primarily on data processing (kafka and HTTP sources).The surge pricing team for a year and a half architecting the new surge pipeline, helping develop 2 new surge algorithms, including the new UberEats surge, and helping write a new spatial indexing algorithm in C (H3: https://github.com/uber/h3).The UberEATS pricing team for 9 months rearchitecting the various pricing systems into a unified, horizontally-scalable, 4-layer stack to improve reliability, monitoring, and experimentation. This allows the team to accelerate engineering and data science efforts with confidence that their efforts won't break other parallel efforts with respect to price within the EATS org. -
Graduate Research AssistantUniversity Of Central Florida Aug 2007 - Apr 2013Research work on Gate Oxide Breakdown and Electrostatic Discharge
-
Database Analyst ProgrammerUniversity Of Central Florida 2010 - 2012Developed internal applications using MS SQL Server, ColdFusion, and Javascript.
-
Chief ArchitectStealth Startup Mar 2011 - Aug 2012First developer and chief architect of technology stack for a friend's stealth startup. Consists of a collection of services accessed via JSON-RPC. These services are Node.js front-ends to MongoDB databases, Solr search engines, ImageMagick, and various Amazon AWS services (EC2, S3, SES).This is coalesced with an Express-based Node.js service that runs the actual website, which is designed to be stateless (state pushed into session store) so multiple can be spun up and reversed proxied (NginX or Lighttpd, currently Lighttpd but looking at transition). The Express-based service uses jQuery extensively for interactive elements as well as the views with jQuery Templates.I wrote several supporting libraries (most open-source and visible below, some not) in support of this, but have only been able to work in spare time because it's an unfunded startup.
-
InternIntersil May 2006 - Jul 2006Koto-Ku, Toyosu, Tokyo, JpESD Test Chip Layout Automation
David Ellis Skills
David Ellis Education Details
-
Central Florida (Ucf)Electrical Engineering -
University Of Central FloridaComputer Engineering
Frequently Asked Questions about David Ellis
What company does David Ellis work for?
David Ellis works for Alan Technologies
What is David Ellis's role at the current company?
David Ellis's current role is Co-Founder and CTO at Alan Technologies.
What is David Ellis's email address?
David Ellis's email address is is****@****ail.com
What is David Ellis's direct phone number?
David Ellis's direct phone number is +138633*****
What schools did David Ellis attend?
David Ellis attended Central Florida (Ucf), University Of Central Florida.
What are some of David Ellis's interests?
David Ellis has interest in Civil Rights And Social Action, Politics, Education, Science And Technology, Human Rights.
What skills is David Ellis known for?
David Ellis has skills like Device Characterization, Software Development, Characterization, Simulations, Latex, Semiconductors, C, Experimentation, Node.js, Sql, Mongodb, Perl.
Free Chrome Extension
Find emails, phones & company data instantly
Aero Online
Your AI prospecting assistant
Select data to include:
0 records × $0.02 per record
Download 750 million emails and 100 million phone numbers
Access emails and phone numbers of over 750 million business users. Instantly download verified profiles using 20+ filters, including location, job title, company, function, and industry.
Start your free trial