What I know
- “Make it as simple as possible, but not simpler”
- “Right tool for the job”
- “Do one thing but do it well”
- “Ask why five times”
- The Pareto principle.
- The Hofstadter’s law.
- Translating between business and engineering languages.
- Sharing knowledge and helping other developers.
- Seeing problems early on.
- Generalizing and simplifying.
- Java: since 1990s.
- Python: since 1990s.
- SQL: since 1990s.
- Microservices, SOA, distributed architectures.
- Testing: unit, functional, integration.
React, EC2, S3, EMR, AWS Lambda, Spark, Scala.
I wish I could use these more
- Functional and reactive approaches.
- Machine learning.
- Kotlin, Typescript, Scala, Rust, Haskell.
What I try to avoid
- Full-time people management.
- Heavy multitasking.
- Quickly producing throwaway prototypes.
- Releasing on a Friday night (unless many releases a day are routine).
- C++, Go, PHP, MongoDB as centerpieces of my work.
Where I worked
Click Therapeutics: 2019-2020
- Architecture work on authentication and authorization.
- Architecture work on a local development environment.
- Implementing and maintaining backend services.
- Designing and implementing pieces of Web frontend.
- Improving engineering processes.
- Conducting and actively improving hiring interviews.
- ES6, React, Node.js, Python, Postgres, Docker. AWS (EC2, Lambda, CloudFormation, etc).
GrubHub, Inc: 2016-2019
- Mostly data integration with third parties.
- Python, Java, SQL, Cassandra, Spark, queues. AWS, SOA.
Handshake Corp: 2016
- Work on the backend of a sales support product.
EPAM Systems: 2011-2016
- Contractor for Google NYC. Various internal tools.
- Worked on PyCharm since inception until release 1.2.
- Java, Python (great many variants). A distributed team.
- Various jobs and gigs involving programming all the way back to 1992.
- MD in Computer Engineering from Samara State Aerospace University, 1995.