Software Engineering Experience
Compiler Engineer, Scala Center at EPFL, Aug 2019 - Now My work centres on improving the developer experience using the Scala 3 and 2 compilers, and surrounding tooling: - Static Code Analysis with “TASTy Query”: implemented a new library providing semantic queries of Scala code.
- Forward compatibility of Scala 2 with Scala 3:
- implemented TASTy reader in Scala 2 compiler, enabling incremental migration of builds to Scala 3.
- Better integration with build tools & faster build times for Scala 3:
- adapt Scala 3 compiler so that multi-module projects can be pipeline-compiled with increased parallelism.
- experimental two-pass compilation with parallel batch final pass
- added incremental compilation support for various new Scala 3 features.
- implemented various performance-profiled optimisations to compiler code.
- Scala 3 Compiler integration with IDEs:
- Implemented reporting of compilation progress, and cooperative cancellation by the user (per file, per phase).
- new phase to emit SemanticDB files (fast-access cache of symbols in a workspace)
- Improved metaprogramming capabilities of Scala 3:
- Support dependent types and generic tuples in typeclass derivation framework.
- Mentored student project to support default parameters in typeclass derivation framework.
- Finalised enum feature for Scala 3: added support for serialisation, type inference, inlining and match types.
- Redesigned Scala website:
- New homepage: added code examples, motivational text based on proven use cases for Scala.
- Better UX: streamlined navigation, tabs to compare Scala 2 and 3.
- Content authoring: wrote various blog posts, documentation, educational videos, social media announcements.
- Building Scala Community: Restarted local meetups, led Advent of Code participation, mentored at hacking events.
|
Java Developer Intern, Essensys Ltd., July 2017 - July 2018 - Built a Java streaming processor for phone records, bringing real-time revenue rating, windowed spam alerting, and a new algorithm for preventing over-allocation of extensions.
- Maintained server backend, improved type-safety of Java code, migrated code away from deprecated dependencies.
|
PHP Developer Intern, Stellarise Ltd., June 2016 - Aug 2016 - Created the customer portal for a cloud subscription service. Full stack development using MVC architecture and RESTful API’s for Stripe, Xero and Mailchimp; used Stripe webhooks. Tools used: PHP, MySQL, Git, Maven, JIRA
|
Technical Skills Keywords
Scala | Developer Tooling | JavaScript | React | Frontend Engineer | Java | Backend Engineer | Haskell | Python | Functional Programming | Compiler Design | Test Driven Development | Spring Boot | Reactive Streams | PHP
Education
University of Bath, UK, Oct 2015 - June 2019 Bachelor in Computer Science, BSc. degree first-class, supervised by Prof. Guy McCusker - Relevant Modules: Compilers, Logic and Semantics of Programming Languages, Artificial Intelligence, Intelligent Agents, Data Structures, Advanced Algorithms, Cognitive Systems, Networking, Functional Programming
|
Conference Talks
Mar 2024, Scalar, Warsaw PL, “Mirrors for operations, not data” - boosting productivity with metaprogramming. |
Jul 2023, Scala Days, Seattle US, “How does Incremental Compilation Work with Scala 3”, “Closing panel” |
Oct 2022, Scala.IO, Paris FR, “Discover TASTy Query” - library for semantic analysis of Scala code |
Jan 2020, F(by), Minsk BY, “Taste the difference with Scala 3” - explaining the upcoming Scala 3 migration. |