Sign in with Twitter


Eric Elliott @_ericelliott San Francisco, CA

Make some magic. Beware of fake crypto-scam bots. No DMs. Have an opportunity for me? Contact my agent, @JS_Cheerleader

13,035 Following   56,730 Followers   39,251 Tweets

Joined Twitter 3/14/08

Code reviews are best for bug prevention, not bug catching. The magic comes from the knowledge sharing.Check out the "Functors and Categories" blog post that became a chapter in the "Composing Software" book:… removed dozens of features from an already simple test framework. Result: Testing zen. #JavaScript #TDDFunctional Programming is used extensively in every modern JavaScript application I've seen. Do you know what it is… is the #1 question people flunk on in JS interviews that leads to rejection or less pay: #JavaScriptThanks for the mention @JS_Cheerleader @_ericelliott! 💜 Something very special and exciting is in the works - mains…
Retweeted by Eric Elliott
me: do you want it done quickly or do you want it done right? manager: yes
Retweeted by Eric ElliottAfter a decade investment and infrastructure building, the first batch of mainstream crypto-powered apps could expl…
Retweeted by Eric ElliottSpying on @_ericelliott teaching a mentee. #javascript
Retweeted by Eric ElliottWhat is @_ericelliott up to? You're about to find out.
Retweeted by Eric ElliottRedux tips: * Use action creators & selectors to decouple action logic from dispatch callers * Always use TDD software design is composition: the act of breaking complex problems down into smaller problems and composing t… can simplify complex reducers and help keep them pure. #JavaScript #FunctionalProgrammingHighest rated qualities of software developers: 1. Problem solving 2. Skills 3. Mentorship/Teaching 4. Learning and tech leaders should read this book to better understand how our minds trick us. Developers are prone… tip: See a mysterious error in your dev console? Try rebuilding and restarting your app. Refresh the browser and try again. @Brewnode Outside of machine code and assembly languages, a noop can be optimized away. If you want a chip NOP, you…
Last call for the #Ethereum Istanbul fork. In approximately 4 days mainnet is updating. Please make sure your nodes…
Retweeted by Eric ElliottLearning TDD with unit tests doesn't happen overnight. You aren't just learning how to test. You're learning proper…"Brave went from 8.7 million monthly active users in October to 10.4 million MAU at the end of November, a 19% incr…
Retweeted by Eric ElliottThere are serious security problems with traditional username/password authentication for apps. Handling password a… delivery is the first step on the road to High Velocity Development #JavaScriptWhat's all the hype about immutability and functional programming? #JavaScriptSenior mentors play an indispensable role on development teams. hooks have replaced my use of React classes and render props, but I'm still using HOCs to compose behaviors s… User Authentication and Security @_ericelliott @JS_Cheerleader
Retweeted by Eric ElliottA change to your app's theme should not require changes to every page in the app. Instead of hard-coding colors in…
Retweeted by Eric Elliott @bsgreenb @meijer_s No. Organizing by type is when you say, "CSS goes in /styles, HTML goes in /templates, controll…! 🎉
Retweeted by Eric ElliottNoop: no-op. A function which does nothing and returns nothing interesting. @bsgreenb @meijer_s I do.
A dead giveaway that a function is impure is if it makes sense to call it without using its return value. For pure functions, that's a noop.How code review, automated testing, pairing, knowledge sharing, and CI helped improve software quality for Ableton…
Retweeted by Eric ElliottA function that returns a promise is probably not pure. Async implies side-effects, and promises are eager. @dre4success @carlmultimedia Because people suck at conducting interviews.Spying on @_ericelliott tackling a tough problem with a student. A 🐶outside broke into a he…
Retweeted by Eric Elliott3) It will be a matter of time before many of these innovative tech will make their way back into the traditional W…
Retweeted by Eric Elliott2) @fortmatic as well as many exciting wallet projects in the #Ethereum dApp ecosystem are on the cutting-edge, lev…
Retweeted by Eric Elliott1) Key-based authentication becoming mainstream is inevitable. Key pairs are asymmetric and “random” (hard to crack…
Retweeted by Eric Elliott @vre2h @iquardt @dprophecyguy @drboolean @carlmultimedia Or reverse a linked list. Or invert a binary tree. @carlmultimedia Yes, but also NO. The way most people teach and study algorithms and data structures really has not… developer study guide: * JS syntax, keywords, operators * Built-in APIs (esp. Array map, filter, reduce) * Rest/… is the motivation and core feature of object oriented programming. It's used to protect React compone…'t let the title fool you. "What is a Promise?" Is a deep dive that will help even experienced promise users. authentication is the future! 🔑 Apps should be built like dApps. Many thanks to @_ericelliott
Retweeted by Eric Elliott @GenuineRex There's an even better future in store than the mTLS you might know. Coming soon to an app near you... @WBratches Here's a hint: @jlaracena Here's a hint: is @_ericelliott up to? You're about to find out. #javascript
Retweeted by Eric ElliottPassword-only is obsolete! Improving User Authentication and Security by @ericelliott #JavaScript @fortmatic
Retweeted by Eric ElliottFiles you edit together should live together. Don't organize files by type, organize by feature.
As you make your app more testable, it should also make the app simpler and more maintainable. technology is finally allowing us to abandon the long-broken username/password authentication model. In the… Arrow funcs can't bind `this`: const double = () => this.x * 2; const numDouble = double.bind({ x: 5 }); numDouble(); // NaN #js @JFThatsABug @TalJoffe Encapsulation from OOP can also help avoid coupling code to implementation details, and obje… @JFThatsABug @TalJoffe No. Functional programming affords declarative, flexible flow control, while procedural code…'t abstract too early. Wait until you've copied and pasted a couple times. You need example use-cases to create good abstractions.A monad lets you compose functions which need to do more than simply return a value, e.g., process a network reques… solve a problem well, start with a good enough understanding of the requirements to write good unit tests. #tddIf I inherit a big component and it mixes side effects, business rules, and presentation, I'll sometimes scrap it a… way to deliver tremendous value to your org: Small page load time improvements can have big bottom-line impact. #JavaScript
): Major.Minor.Patch :) Breaking.Feature.Fix #JavaScriptMentorship multiplies the value of your knowledge: If you can't teach it, knowing it is a lot less valuable."For each desired change, make the change easy (warning: this may be hard), then make the easy change." ~ Kent Beck @JFThatsABug @TalJoffe Both OOP (encapsulation + message passing) and functional programming (pure functions) avoid… @JFThatsABug @TalJoffe Procedural is fine for little shell scripts, but with applications, you get concurrency. Non… on @_ericelliott mentoring a student. Yay! #javascript
Retweeted by Eric ElliottIt is Quake 3’s 20th Anniversary today. I still have one of the trade show launch props in my garage.
Retweeted by Eric Elliott
Legacy testing: Need to fix a bug? Start with tests. New feature? Test. Refactor? More tests. Suites grow one test at a time. #tdd #code
What is category theory and what does it have to do with functional programming? favorite modern JS features: * Arrow functions * Array/object destructuring * Rest/Spread * Async/await * [Symbol.iterator]Building or joining a development team? Check out this handy guide to software roles and titles: is book is your shortcut to building apps better. I wish it was available when I was learning how to build com…
Deep experience with one language beats superficial experience with 5 languages.Continuous discovery requires efficient feedback loops between visionary, product, customers, support, and engineering.Continuous discovery -> continuous integration -> continuous delivery. You want them all.Node 6+ has a great debugger built-in: node --inspect-brk source/debug.js Then open chrome://inspect/#devicesAspiring JS application developers should learn: * Closures * Functional programming * Function composition * The prototype chainIf a feature is taking longer than it should, the answer is more visibility. Pair a senior engineer. Open a WIP PR.…
Surprise! When you pay people fairly, product quality improves. $DAI has been added to the Compound protocol— you can now supply and borrow the latest version of…
Retweeted by Eric ElliottMarketing, biz dev, and sales should never dictate deadlines for engineering. If there is a hard deadline, scope mu… Thanksgiving! We're thankful for all the people who bought Composing Software to read over the holidays.…
Retweeted by Eric ElliottTDD reduces fear of the merge button, helps you think about how your code will be used, but my favorite benefit is… improvements to * Watch me use RDD & TDD to build new app features * Watch me add a…, even if you're a former engineer, your engineering team has the best visibility into the tech side to fin… testing should be a continuous process, not an afterthought.
Want to learn Functional Programming in JavaScript? This series is the surface cruise and the deep dive: @urfagundem If you get that error on, please report it: If you get… includes the whole user experience, including discovery, onboarding, using, and sharing.All engineering leaders should have some understanding of how their work impacts KPIs. Share a KPI dashboard with the engineering team.Tech leads should be involved in the product discovery process.IMO, all engineering managers and tech product managers should be programming literate for empathy, but trust engineers to do their job.Fear of change is the enemy of developer productivity. TDD is the enemy of developer fear.
Retweeted by Eric ElliottEngineers should understand business objectives. Knowing why a feature is being built can aid understanding and reduce confusion and bugs.
@ploeh @StefanHoutzager @YaroslavBigus @davidfowl Different kinds of tests serve different purposes. You definitely… like to keep product teams relatively small. I top it out at 7-10 members per team. @vivainio Yes. Sortof. It's something we put in front of users to validate what we're building towards. Is should b…